Bug 22001

Summary: ICE while building cross compiler
Product: gcc Reporter: Scott Newell <newell>
Component: targetAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: normal CC: gcc-bugs, kazu, luke.powell, newell, opera.wang+gnu, tobutaz
Priority: P2 Keywords: build, ice-on-valid-code
Version: 4.0.0   
Target Milestone: 4.2.0   
Host: Target: m68k-rtems
Build: Known to work:
Known to fail: Last reconfirmed:
Bug Depends on:    
Bug Blocks: 23442    

Description Scott Newell 2005-06-10 14:00:40 UTC
Compiler info:
/home/newell/rtems/tools/b-gcc/gcc/xgcc -v
Using built-in specs.
Target: m68k-rtems
Configured with: ../gcc-4.0.0/configure --target=m68k-rtems --with-gnu-as 
--with-gnu-ld --with-newlib --verbose --enable-threads --enable-languages=c 
--prefix=/usr/rtems
Thread model: rtems
gcc version 4.0.0


Command line:
/home/newell/rtems/tools/b-gcc/gcc/xgcc -v -save-temps 
-B/home/newell/rtems/tools/b-gcc/gcc/ -nostdinc 
-B/home/newell/rtems/tools/b-gcc/m68k-rtems/newlib/ -isystem 
/home/newell/rtems/tools/b-gcc/m68k-rtems/newlib/targ-include -isystem 
/home/newell/rtems/tools/gcc-4.0.0/newlib/libc/include 
-B/usr/rtems/m68k-rtems/bin/ -B/usr/rtems/m68k-rtems/lib/ -isystem 
/usr/rtems/m68k-rtems/include -isystem /usr/rtems/m68k-rtems/sys-include -O2 -I.
./../gcc-4.0.0/gcc/../newlib/libc/sys/rtems/include -DIN_GCC -DCROSS_COMPILE   
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes 
-Wold-style-definition  -isystem ./include   -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 
-D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -I. -I. -I../../gcc-4.0.0/gcc -I../..
/gcc-4.0.0/gcc/. -I../../gcc-4.0.0/gcc/../include -I./../intl -I../../gcc-4.0.
0/gcc/../libcpp/include  -m68000 -DL_fixdfdi -c ../../gcc-4.0.0/gcc/libgcc2.c -o 
libgcc/m68000/_fixdfdi.o


Compiler ICE message:
Reading specs from /home/newell/rtems/tools/b-gcc/gcc/specs
Target: m68k-rtems
Configured with: ../gcc-4.0.0/configure --target=m68k-rtems --with-gnu-as 
--with-gnu-ld --with-newlib --verbose --enable-threads --enable-languages=c 
--prefix=/usr/rtems
Thread model: rtems
gcc version 4.0.0
 /home/newell/rtems/tools/b-gcc/gcc/cc1 -E -quiet -nostdinc -v -I../../gcc-4.0.
0/gcc/../newlib/libc/sys/rtems/include -I. -I. -I../../gcc-4.0.0/gcc -I../..
/gcc-4.0.0/gcc/. -I../../gcc-4.0.0/gcc/../include -I./../intl -I../../gcc-4.0.
0/gcc/../libcpp/include -iprefix /home/newell/rtems/tools/b-gcc/gcc/..
/lib/gcc/m68k-rtems/4.0.0/ -isystem /home/newell/rtems/tools/b-gcc/gcc/include 
-DIN_GCC -DCROSS_COMPILE -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 
-D__GCC_FLOAT_NOT_NEEDED -Dinhibit_libc -DL_fixdfdi -isystem 
/home/newell/rtems/tools/b-gcc/m68k-rtems/newlib/targ-include -isystem 
/home/newell/rtems/tools/gcc-4.0.0/newlib/libc/include -isystem 
/usr/rtems/m68k-rtems/include -isystem /usr/rtems/m68k-rtems/sys-include 
-isystem ./include ../../gcc-4.0.0/gcc/libgcc2.c -m68000 -W -Wall 
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition 
-fworking-directory -O2 -fpch-preprocess -o libgcc2.i
ignoring nonexistent directory 
"/home/newell/rtems/tools/b-gcc/m68k-rtems/newlib/targ-include"
ignoring nonexistent directory "/usr/rtems/m68k-rtems/include"
ignoring nonexistent directory "/usr/rtems/m68k-rtems/sys-include"
ignoring duplicate directory "./include"
ignoring duplicate directory "."
ignoring duplicate directory "../../gcc-4.0.0/gcc/."
#include "..." search starts here:
#include <...> search starts here:
 ../../gcc-4.0.0/gcc/../newlib/libc/sys/rtems/include
 .
 ../../gcc-4.0.0/gcc
 ../../gcc-4.0.0/gcc/../include
 ./../intl
 ../../gcc-4.0.0/gcc/../libcpp/include
 /home/newell/rtems/tools/b-gcc/gcc/include
 /home/newell/rtems/tools/gcc-4.0.0/newlib/libc/include
End of search list.
 /home/newell/rtems/tools/b-gcc/gcc/cc1 -fpreprocessed libgcc2.i -quiet 
-dumpbase libgcc2.c -m68000 -auxbase-strip libgcc/m68000/_fixdfdi.o -g -O2 -W 
-Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes 
-Wold-style-definition -version -o libgcc2.s
GNU C version 4.0.0 (m68k-rtems)
        compiled by GNU C version 3.3.2 (propolice).
GGC heuristics: --param ggc-min-expand=35 --param ggc-min-heapsize=41666
../../gcc-4.0.0/gcc/libgcc2.c: In function '__fixdfdi':
../../gcc-4.0.0/gcc/libgcc2.c:1256: internal compiler error: in do_SUBST, at 
combine.c:462
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.


Preprocessed source:

# 1 "../../gcc-4.0.0/gcc/libgcc2.c"
# 1 "/home/newell/rtems/tools/b-gcc/gcc//"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "../../gcc-4.0.0/gcc/libgcc2.c"
# 35 "../../gcc-4.0.0/gcc/libgcc2.c"
# 1 "./auto-host.h" 1
# 36 "../../gcc-4.0.0/gcc/libgcc2.c" 2




# 1 "./tconfig.h" 1



# 1 "../../gcc-4.0.0/gcc/../include/ansidecl.h" 1
# 5 "./tconfig.h" 2
# 41 "../../gcc-4.0.0/gcc/libgcc2.c" 2
# 1 "../../gcc-4.0.0/gcc/tsystem.h" 1
# 47 "../../gcc-4.0.0/gcc/tsystem.h"
# 1 "/home/newell/rtems/tools/b-gcc/gcc/include/stddef.h" 1 3 4
# 152 "/home/newell/rtems/tools/b-gcc/gcc/include/stddef.h" 3 4
typedef long int ptrdiff_t;
# 214 "/home/newell/rtems/tools/b-gcc/gcc/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 326 "/home/newell/rtems/tools/b-gcc/gcc/include/stddef.h" 3 4
typedef long int wchar_t;
# 48 "../../gcc-4.0.0/gcc/tsystem.h" 2
# 1 "/home/newell/rtems/tools/b-gcc/gcc/include/float.h" 1 3 4
# 49 "../../gcc-4.0.0/gcc/tsystem.h" 2




extern void *malloc (size_t);



extern void free (void *);



extern int atexit (void (*)(void));



extern void abort (void) __attribute__ ((__noreturn__));



extern size_t strlen (const char *);



extern void *memcpy (void *, const void *, size_t);



extern void *memset (void *, int, size_t);
# 42 "../../gcc-4.0.0/gcc/libgcc2.c" 2
# 1 "../../gcc-4.0.0/gcc/coretypes.h" 1
# 65 "../../gcc-4.0.0/gcc/coretypes.h"
struct _dont_use_rtx_here_;
struct _dont_use_rtvec_here_;
union _dont_use_tree_here_;
# 43 "../../gcc-4.0.0/gcc/libgcc2.c" 2
# 1 "./tm.h" 1
# 10 "./tm.h"
# 1 "../../gcc-4.0.0/gcc/config/m68k/m68k.h" 1
# 118 "../../gcc-4.0.0/gcc/config/m68k/m68k.h"
extern int target_flags;
# 531 "../../gcc-4.0.0/gcc/config/m68k/m68k.h"
enum reg_class {
  NO_REGS, DATA_REGS,
  ADDR_REGS, FP_REGS,
  GENERAL_REGS, DATA_OR_FP_REGS,
  ADDR_OR_FP_REGS, ALL_REGS,
  LIM_REG_CLASSES };
# 558 "../../gcc-4.0.0/gcc/config/m68k/m68k.h"
extern enum reg_class regno_reg_class[];
# 1258 "../../gcc-4.0.0/gcc/config/m68k/m68k.h"
extern const char *m68k_library_id_string;
extern int m68k_last_compare_had_fp_operands;
# 11 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/m68k/m68k-none.h" 1
# 12 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/m68k/m68kelf.h" 1
# 13 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/dbxelf.h" 1
# 14 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/elfos.h" 1
# 15 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/m68k/m68kemb.h" 1
# 16 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/m68k/m68020-elf.h" 1
# 17 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/m68k/rtemself.h" 1
# 18 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/config/rtems.h" 1
# 19 "./tm.h" 2
# 1 "../../gcc-4.0.0/gcc/defaults.h" 1
# 20 "./tm.h" 2
# 44 "../../gcc-4.0.0/gcc/libgcc2.c" 2
# 56 "../../gcc-4.0.0/gcc/libgcc2.c"
# 1 "../../gcc-4.0.0/gcc/libgcc2.h" 1
# 34 "../../gcc-4.0.0/gcc/libgcc2.h"
#pragma GCC visibility push(default)


extern int __gcc_bcmp (const unsigned char *, const unsigned char *, size_t);
extern void __clear_cache (char *, char *);
extern void __eprintf (const char *, const char *, unsigned int, const char *)
  __attribute__ ((__noreturn__));

struct exception_descriptor;
extern short int __get_eh_table_language (struct exception_descriptor *);
extern short int __get_eh_table_version (struct exception_descriptor *);
# 95 "../../gcc-4.0.0/gcc/libgcc2.h"
typedef int QItype __attribute__ ((mode (QI)));
typedef unsigned int UQItype __attribute__ ((mode (QI)));
typedef int HItype __attribute__ ((mode (HI)));
typedef unsigned int UHItype __attribute__ ((mode (HI)));


typedef int SItype __attribute__ ((mode (SI)));
typedef unsigned int USItype __attribute__ ((mode (SI)));


typedef int DItype __attribute__ ((mode (DI)));
typedef unsigned int UDItype __attribute__ ((mode (DI)));
# 116 "../../gcc-4.0.0/gcc/libgcc2.h"
typedef float SFtype __attribute__ ((mode (SF)));
typedef _Complex float SCtype __attribute__ ((mode (SC)));


typedef float DFtype __attribute__ ((mode (DF)));
typedef _Complex float DCtype __attribute__ ((mode (DC)));


typedef float XFtype __attribute__ ((mode (XF)));
typedef _Complex float XCtype __attribute__ ((mode (XC)));






typedef int word_type __attribute__ ((mode (__word__)));
# 268 "../../gcc-4.0.0/gcc/libgcc2.h"
extern DItype __muldi3 (DItype, DItype);
extern DItype __divdi3 (DItype, DItype);
extern UDItype __udivdi3 (UDItype, UDItype);
extern UDItype __umoddi3 (UDItype, UDItype);
extern DItype __moddi3 (DItype, DItype);




extern UDItype __udivmoddi4 (UDItype, UDItype, UDItype *);




extern DItype __negdi2 (DItype);


extern DItype __lshrdi3 (DItype, word_type);
extern DItype __ashldi3 (DItype, word_type);
extern DItype __ashrdi3 (DItype, word_type);




extern USItype __udiv_w_sdiv (USItype *, USItype, USItype, USItype);


extern word_type __cmpdi2 (DItype, DItype);
extern word_type __ucmpdi2 (DItype, DItype);

extern SItype __absvsi2 (SItype);
extern SItype __addvsi3 (SItype, SItype);
extern SItype __subvsi3 (SItype, SItype);
extern SItype __mulvsi3 (SItype, SItype);
extern SItype __negvsi2 (SItype);
extern DItype __absvdi2 (DItype);
extern DItype __addvdi3 (DItype, DItype);
extern DItype __subvdi3 (DItype, DItype);
extern DItype __mulvdi3 (DItype, DItype);
extern DItype __negvdi2 (DItype);
# 318 "../../gcc-4.0.0/gcc/libgcc2.h"
extern DItype __fixsfdi (SFtype);
extern SFtype __floatdisf (DItype);
extern USItype __fixunssfsi (SFtype);
extern DItype __fixunssfdi (SFtype);
extern SFtype __powisf2 (SFtype, SItype);
extern SCtype __divsc3 (SFtype, SFtype, SFtype, SFtype);
extern SCtype __mulsc3 (SFtype, SFtype, SFtype, SFtype);


extern DItype __fixdfdi (DFtype);
extern DFtype __floatdidf (DItype);
extern USItype __fixunsdfsi (DFtype);
extern DItype __fixunsdfdi (DFtype);
extern DFtype __powidf2 (DFtype, SItype);
extern DCtype __divdc3 (DFtype, DFtype, DFtype, DFtype);
extern DCtype __muldc3 (DFtype, DFtype, DFtype, DFtype);



extern DItype __fixxfdi (XFtype);
extern DItype __fixunsxfdi (XFtype);
extern XFtype __floatdixf (DItype);
extern USItype __fixunsxfsi (XFtype);
extern XFtype __powixf2 (XFtype, SItype);
extern XCtype __divxc3 (XFtype, XFtype, XFtype, XFtype);
extern XCtype __mulxc3 (XFtype, XFtype, XFtype, XFtype);
# 359 "../../gcc-4.0.0/gcc/libgcc2.h"
  struct DWstruct {SItype high, low;};
# 368 "../../gcc-4.0.0/gcc/libgcc2.h"
typedef union
{
  struct DWstruct s;
  DItype ll;
} DWunion;

# 1 "../../gcc-4.0.0/gcc/longlong.h" 1
# 1315 "../../gcc-4.0.0/gcc/longlong.h"
extern const UQItype __clz_tab[] __attribute__ ((__visibility__ ("hidden")));
# 375 "../../gcc-4.0.0/gcc/libgcc2.h" 2


extern int __clzdi2 (UDItype);
extern int __clzsi2 (USItype);
extern int __ctzsi2 (USItype);
extern int __ffssi2 (USItype);
extern int __ffsdi2 (DItype);
extern int __ctzdi2 (UDItype);
extern int __popcountsi2 (USItype);
extern int __popcountdi2 (UDItype);
extern int __paritysi2 (USItype);
extern int __paritydi2 (UDItype);


extern void __enable_execute_stack (void *);


#pragma GCC visibility pop
# 57 "../../gcc-4.0.0/gcc/libgcc2.c" 2
# 1250 "../../gcc-4.0.0/gcc/libgcc2.c"
DItype
__fixdfdi (DFtype a)
{
  if (a < 0)
    return - __fixunsdfdi (-a);
  return __fixunsdfdi (a);
}
Comment 1 Opera Wang 2005-08-02 04:41:24 UTC
Same error with gcc-3.4.2 & target=m68k-elf, thread model:single
Comment 2 Andrew Pinski 2005-10-14 13:39:19 UTC
*** Bug 24366 has been marked as a duplicate of this bug. ***
Comment 3 Kazu Hirata 2006-05-08 16:09:10 UTC
Not reproducible with mainline.
Comment 4 Kazu Hirata 2006-05-08 16:10:10 UTC
Not reproducible with mainline.