Package: gcc Version: 3.3.3-2 Severity: normal Hi...
The attached code causes the following behaviour: [EMAIL PROTECTED]:~/tmp$ gcc -O test6.c -o test6 test6.c: In function `float_module21': test6.c:21: internal compiler error: in verify_wide_reg, at flow.c:549 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. test6.c is actually a stripped down and cleaned up version of the preprocessed source code from library/float.c in the Mercury Release of the Day available from: http://www.cs.mu.oz.au/research/mercury/download/files/beta-releases/rotd/mercury-compiler-rotd_2004_03_19_unstable-1.src.rpm (run it through rpm2cpio and extract the resulting cpio archive to get a tarball). The testcase is the output of the Mercury compiler itself, hence the slightly strange code. =) Peter
int MR_is_inf(double); register unsigned int MR_mr1 __asm__ ("edi"); register unsigned int MR_mr2 __asm__ ("ebx"); static void float_module21 (void) { (MR_mr2) = 0; (MR_mr2) = MR_is_inf (0.0); if (!(MR_mr2)) { goto mercury__float__is_nan_or_inf_1_0_i7; } __asm__ __volatile__ ("/* " "mercury__float__is_nan_or_inf_1_0_i7" "*/\n"); mercury__float__is_nan_or_inf_1_0_i7: goto *(((void *) ((MR_mr1)))); }