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