This is the mail archive of the gcc-bugs@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]

[Bug bootstrap/36108] New: [4.4 Regression]: revision 134865 breaks gcc bootstrap


Revision 134865:

http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01945.html

breaks gcc bootstrap:

cc1: warnings being treated as errors
/export/gnu/src/gcc/gcc/gcc/real.c: In function ?real_to_integer2?:
/export/gnu/src/gcc/gcc/gcc/real.c:1387: error: array subscript is negative
/export/gnu/src/gcc/gcc/gcc/real.c: In function ?real_from_integer?:
/export/gnu/src/gcc/gcc/gcc/real.c:2066: error: array subscript is negative
make[5]: *** [real.o] Error 1
make[5]: *** Waiting for unfinished jobs....

The code looks like

      if ((8 * 8) == (8 * 8)) 
 {
   high = t.sig[((128 + (8 * 8)) / (8 * 8))-1];
   low = t.sig[((128 + (8 * 8)) / (8 * 8))-2];
 }
      else  
 {
   ((void)(!((8 * 8) == 2*(8 * 8)) ? fancy_abort
("/export/gnu/src/gcc/gcc/gcc/real.c", 1380, __FUNCTION__), 0 : 0));
   high = t.sig[((128 + (8 * 8)) / (8 * 8))-1];
   high = high << ((8 * 8) - 1) << 1; 
   high |= t.sig[((128 + (8 * 8)) / (8 * 8))-2];

   low = t.sig[((128 + (8 * 8)) / (8 * 8))-3];
   low = low << ((8 * 8) - 1) << 1; 
   low |= t.sig[((128 + (8 * 8)) / (8 * 8))-4];
 }

We have

low |= t.sig[((128 + (8 * 8)) / (8 * 8))-4];

which is

low |= t.sig[-1];

But it never reached.


-- 
           Summary: [4.4 Regression]: revision 134865 breaks gcc bootstrap
           Product: gcc
           Version: 4.3.0
            Status: UNCONFIRMED
          Severity: blocker
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: hjl dot tools at gmail dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36108


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