more evidence that failing to detect ICE's is a significant problem
Joe Buck
jbuck@synopsys.com
Sat Aug 8 00:13:00 GMT 1998
The failure to detect ICE's hides a g++ regression (1.0.3a -> 1.1)
on i586-pc-linux-gnulibc1. Details:
I just ran tests for 19980803 on my Red Hat 4.2 box
(i586-pc-linux-gnulibc1, with binutils 2.9.1 and --enable-shared).
The g++ tests appeared to come out perfect:
=== g++ Summary ===
# of expected passes 4132
# of expected failures 85
# of untested testcases 7
/home/jbuck/egcs-work/egcs-linux/gcc/testsuite/../xgcc version
egcs-2.91.53 19980803 (gcc2 ss-980609 experimental)
However, inspection of g++.log reveals that there was one internal
compiler error, for g++.pt/explicit69.C .
>From g++.log:
output is:
/home/jbuck/egcs-work/egcs/gcc/testsuite/g++.old-deja/g++.pt/explicit69.C:2:
Internal compiler error.
/home/jbuck/egcs-work/egcs/gcc/testsuite/g++.old-deja/g++.pt/explicit69.C:2:
Please submit a full bug report to `egcs-bugs@cygnus.com'.
XFAIL: g++.pt/explicit69.C not a template instantiation (test for errors,
line 2
)
PASS: g++.pt/explicit69.C (test for excess errors)
Note that "test for excess errors" style tests give a PASS when the
compiler barfs. This is a really simple test case: the line
template class x {};
kills the compiler. THe compiler dies at line 1122 of cp/pt.c:
1119 /* This should not be an instantiation; explicit
1120 instantiation directives can only occur at the top
1121 level. */
1122 my_friendly_assert (!explicit_instantiation, 0);
This is a regression from egcs-1.0.3, which does not have this bug.
However, a strict comparison of .sum files would have missed the
regression.
More information about the Gcc
mailing list