This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]