This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
The patch that causes PR 7782: The patch that causes it
- From: Wolfgang Bangerth <bangerth at ticam dot utexas dot edu>
- To: gcc at gcc dot gnu dot org, <gcc-gnats at gcc dot gnu dot org>, <rth at redhat dot com>
- Cc: Craig Rodrigues <rodrigc at attbi dot com>, Volker Reichelt <reichelt at igpm dot rwth-aachen dot de>, Janis Johnson <janis187 at us dot ibm dot com>
- Date: Wed, 11 Dec 2002 11:00:51 -0600 (CST)
- Subject: The patch that causes PR 7782: The patch that causes it
OK, here's the first result of the "regression tracking special team"
(Craig, Janis, me, maybe Volker):
The cause for PR 7782 is this patch:
> 2002-01-10 Richard Henderson <rth@redhat.com>
>
> * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet.
> * reload1.c (delete_output_reload): Zap spill_reg_store. Take
> care not to delete instructions twice.
Here's a testcase:
-----------------
// g++ -O -c PR7782.cc
struct A {
long long x, y;
void bar () const {
A a;
a.y = ~y;
if ((a.x = -y)) ++a.y;
}
void foo (int) const;
};
void A::foo (int i) const {
if (i) bar(); if (i) bar();
}
------------------
Here's the error:
tmp/g> /home/bangerth/tmp/gcc/p/b/gcc/cc1plus -O -quiet PR7782.cc
PR7782.cc: In member function `void A::foo(int) const':
PR7782.cc:18: Internal compiler error in delete_insn, at cfgrtl.c:140
Richard, I understand that the bug may only have been uncovered by your
inserting an assertion, but maybe you can say something about it anyway.
Regards
Wolfgang
PS: I'm sorry that my first "victim" is someone who has, by reviewing all
those patches, helped gcc in such a major way...
-------------------------------------------------------------------------
Wolfgang Bangerth email: bangerth@ticam.utexas.edu
www: http://www.ticam.utexas.edu/~bangerth