[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#239569: ICE in verify_wide_reg.



Package: gcc
Version: 3.3.3-2
Severity: normal

Hi...

The attached code causes the following behaviour:
hawkinsp@vice:~/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))));
  
}

Reply to: