I am unable to build a m68hc11 cross-compiler on 64-bit architectures. xgcc generates an internal compiler error during the build of libgcc2.
Here is a reduced testcase: typedef struct { char a; int b; } foo; void ice() { int c; foo * bar; // one of the two following instructions causes ICE bar->b = (c << 7L); bar->b = (c | 1); } and the output error: fp-bit.c: In function `ice': fp-bit.c:15: error: insn does not satisfy its constraints: (insn 13 12 14 0 0x20000000002dc720 (parallel [ (set (mem/s/j:SI (plus:HI (mem:HI (plus:HI (reg/f:HI 9 *_.frame) (const_int 7 [0x7])) [0 S2 A8]) (const_int 1 [0x1])) [0 <variable>.b+0 S4 A8]) (reg:SI 0 x [54])) (clobber (scratch:HI)) ]) 20 {movsi_internal} (nil) (nil)) fp-bit.c:15: internal compiler error: in final_scan_insn, at final.c:2722 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. Please note that if the a and b declarations are swapped, the source is built without problem. I also tested this code on other 64-bit architectures (amd64 and alpha) and the problem is not present. -- Summary: ICE when building a m68hc11 cross-compiler on ia64 Product: gcc Version: 3.3.5 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: ciceron at gcc dot gnu dot org ReportedBy: aurelien at aurel32 dot net CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: ia64-unknown-linux-gnu GCC host triplet: ia64-unknown-linux-gnu GCC target triplet: m68hc11 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19724