On Mon, Sep 17, 2007 at 10:50:17AM -0700, Janis Johnson wrote:
> Bootstrap of powerpc64-linux fails building libgfortran with:
> 
> /home/janis/gcc_trunk_anonsvn/gcc/libgfortran/io/read.c: In function 
> 'set_integer':
> /home/janis/gcc_trunk_anonsvn/gcc/libgfortran/io/read.c:81: internal compiler 
> error: in set_variable_part, at var-tracking.c:2381
> Please submit a full bug report, with preprocessed source if appropriate.
> See <http://gcc.gnu.org/bugs.html> for instructions.
> 
> My last successful build was revision 128522; earliest known break
> was 128536, still breaks with 128551.

My guess is that this is a long standing latent bug with var-tracking
on big endian machines, we saw it a few times with gcc-4.1.x-RH as well.
The problem is that after optimizing some subregs we can have negative
offsets in MEM_OFFSET of some REG vars (e.g. when a QImode user decl
is held in the least significant bits of SImode or DImode register)
and var-tracking is very upset about that.  Haven't had time to
try to fix this though.
First of all it should be clear whether those negative MEM_OFFSETs
are ok or not in RTL.

        Jakub

Reply via email to