aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJanis Johnson <janis187@us.ibm.com>2006-06-06 19:16:14 +0000
committerJanis Johnson <janis@gcc.gnu.org>2006-06-06 19:16:14 +0000
commit6edf8a522985d30615ff15de817b1b47969dc5b9 (patch)
tree45442f6a4ad5c6f38ab726365822ad287450f197
parent32845532e0af2d0aba90b5218feb2fdc47240bc6 (diff)
downloadgcc-6edf8a522985d30615ff15de817b1b47969dc5b9.zip
gcc-6edf8a522985d30615ff15de817b1b47969dc5b9.tar.gz
gcc-6edf8a522985d30615ff15de817b1b47969dc5b9.tar.bz2
gcc-dg.exp (gcc-dg-test-1): Detect and report ICE.
* lib/gcc-dg.exp (gcc-dg-test-1): Detect and report ICE. * lib/gcc-defs.exp (tool_check_compile): Ditto. * lib/fortran-torture.exp (fortran-torture-compile, fortran-torture-execute): Ditto. From-SVN: r114445
-rw-r--r--gcc/testsuite/ChangeLog7
-rw-r--r--gcc/testsuite/lib/fortran-torture.exp12
-rw-r--r--gcc/testsuite/lib/gcc-defs.exp5
-rw-r--r--gcc/testsuite/lib/gcc-dg.exp8
4 files changed, 32 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index f4c04f1..dc457d1 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2006-06-06 Janis Johnson <janis187@us.ibm.com>
+
+ * lib/gcc-dg.exp (gcc-dg-test-1): Detect and report ICE.
+ * lib/gcc-defs.exp (tool_check_compile): Ditto.
+ * lib/fortran-torture.exp (fortran-torture-compile,
+ fortran-torture-execute): Ditto.
+
2006-06-06 Ulrich Weigand <uweigand@de.ibm.com>
PR target/27842
diff --git a/gcc/testsuite/lib/fortran-torture.exp b/gcc/testsuite/lib/fortran-torture.exp
index b4e6194..1827115 100644
--- a/gcc/testsuite/lib/fortran-torture.exp
+++ b/gcc/testsuite/lib/fortran-torture.exp
@@ -87,6 +87,12 @@ proc fortran-torture-compile { src option } {
return
}
+ if [string match "*internal compiler error*" $comp_output] then {
+ gfortran_fail $testcase "$option (internal compiler error)"
+ catch { remote_file build delete $output }
+ return
+ }
+
# We shouldn't get these because of -w, but just in case.
if [string match "*95*:*warning:*" $comp_output] then {
warning "$testcase: (with warnings) $option"
@@ -204,6 +210,12 @@ proc fortran-torture-execute { src } {
catch { remote_file build delete $executable }
continue
}
+
+ if [string match "*internal compiler error*" $comp_output] then {
+ gfortran_fail $testcase "$option (internal compiler error)"
+ catch { remote_file build delete $executable }
+ continue
+ }
# We shouldn't get these because of -w, but just in case.
if [string match "*95*:*warning:*" $comp_output] then {
diff --git a/gcc/testsuite/lib/gcc-defs.exp b/gcc/testsuite/lib/gcc-defs.exp
index 3b60200..e1e3b93 100644
--- a/gcc/testsuite/lib/gcc-defs.exp
+++ b/gcc/testsuite/lib/gcc-defs.exp
@@ -34,6 +34,11 @@ proc ${tool}_check_compile {testcase option objname gcc_output} {
return 0
}
+ if [string match "*internal compiler error*" $gcc_output] then {
+ ${tool}_fail $testcase "$option (internal compiler error)"
+ return 0
+ }
+
# We shouldn't get these because of -w, but just in case.
if [string match "*cc:*warning:*" $gcc_output] then {
warning "$testcase: (with warnings) $option"
diff --git a/gcc/testsuite/lib/gcc-dg.exp b/gcc/testsuite/lib/gcc-dg.exp
index e0640d8..d790396 100644
--- a/gcc/testsuite/lib/gcc-dg.exp
+++ b/gcc/testsuite/lib/gcc-dg.exp
@@ -139,6 +139,14 @@ proc gcc-dg-test-1 { target_compile prog do_what extra_tool_flags } {
set comp_output [$target_compile "$prog" "$output_file" "$compile_type" $options]
+ # Look for an internal compiler error, which sometimes masks the fact
+ # that we didn't get an expected error message. An ICE always fails,
+ # there's no way to XFAIL it.
+ if [string match "*internal compiler error*" $comp_output] {
+ upvar 2 name name
+ fail "$name (internal compiler error)"
+ }
+
if { $do_what == "repo" } {
set object_file "$output_file"
set output_file "[file rootname [file tail $prog]].exe"