the attached program, distilled from newlib's k_standard.c file, causes an ICE at any optimization level. nathan@garibaldi:270>./cc1 bug.i -quiet bug.i: In function 'Foo': bug.i:5: internal compiler error: in gen_lowpart_general, at rtlhooks.c:59 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions.
Created attachment 8763 [details] testcase from newlib
Confirmed.
Subject: Bug 21283 Author: sayle Date: Sun Apr 23 17:44:46 2006 New Revision: 113198 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113198 Log: PR target/21283 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on a SImode SUBREG of a floating point register after no_new_pseudos. Modified: trunk/gcc/ChangeLog trunk/gcc/config/fr30/fr30.md
This has now been fixed on mainline. I've confirmed that a cross-compiler to fr30-elf can currently compile all of newlib without problems. If anyone has an fr30 board or a simulator to check the testsuite that would be great.
Subject: Bug 21283 Author: sayle Date: Mon Apr 24 05:31:28 2006 New Revision: 113215 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=113215 Log: PR target/21283 * config/fr30/fr30.md (define_split): Avoid calling gen_lowpart on a SImode SUBREG of a floating point register after no_new_pseudos. Modified: branches/gcc-4_1-branch/gcc/ChangeLog branches/gcc-4_1-branch/gcc/config/fr30/fr30.md
This has now been fixed on the 4.1 branch. Unfortunately, its difficult to determine whether this patch is still needed on the 4.0 branch, or if other backports are also required, as libiberty and top-level configure are now incompatible between the gcc-4_0-branch and mainline "src", making an uberbaum build of a 4.0 cross-compiler almost impossible.
Will not be fixed in 4.1.1; adjust target milestone to 4.1.2.
Actually this was fixed in 4.1.1 so changing the milestone again.
Fixed in GCC-4.1.1 Won't fix for GCC-4.0.x