+2002-12-12 Tom Tromey <tromey@redhat.com>
+
+ * libjava.loader/loader.exp (gcj_loader_test_one): Use
+ libjava_prune_warnings.
+ (gcj_loader_run): Likewise.
+ * libjava.mauve/mauve.exp (test_mauve): Use
+ libjava_prune_warnings.
+ (test_mauve_sim): Likewise.
+ * libjava.jni/jni.exp (gcj_jni_compile_c_to_so): Use
+ libjava_prune_warnings.
+ (gcj_jni_build_header): Likewise.
+ * lib/libjava.exp (libjava_prune_warnings): New proc.
+ (gcj_link): Use it.
+ (test_libjava_from_source): Likewise.
+ (test_libjava_from_javac): Likewise.
+
2002-12-08 Tom Tromey <tromey@redhat.com>
Test for PR libgcj/8823:
set tmpdir "/tmp"
}
+# This is like `prune_warnings', but it also prunes away a warning
+# from the bytecode front end that we don't care about.
+proc libjava_prune_warnings {text} {
+ set text [prune_warnings $text]
+ set tlist [split $text \n]
+ set len [llength $tlist]
+ for {set i [expr {$len - 1}]} {$i >= 2} {incr i -1} {
+ if {[string match "*unreachable bytecode*" [lindex $tlist $i]]} {
+ # Delete this line and the previous two lines.
+ set tlist [lreplace $tlist [expr {$i - 2}] $i]
+ incr i -2
+ }
+ }
+ return [join $tlist \n]
+}
+
# This is like `target_compile' but it does some surgery to work
# around stupid DejaGNU bugs. In particular DejaGNU has very poor
# quoting, so for instance a `$' will be re-evaluated at spawn time.
eval lappend arguments $options
}
lappend arguments "additional_flags=--main=$main"
- set x [prune_warnings [libjava_tcompile $files $program executable \
- $arguments]]
+ set x [libjava_prune_warnings \
+ [libjava_tcompile $files $program executable $arguments]]
if {$x != ""} {
verbose "link failure: $x" 2
fail "linking $program"
set removeList [list $executable]
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[libjava_tcompile $srcfile "$executable" $target $args]]
if {[info exists opts(xfail-gcj)]} {
setup_xfail *-*-*
set jvscan [find_jvscan]
verbose "jvscan is $jvscan"
set main_name [string trim \
- [prune_warnings \
+ [libjava_prune_warnings \
[lindex [local_exec "$jvscan --encoding=UTF-8 $srcfile --print-main" "" "" 300] 1]]]
verbose "main name is $main_name"
set class_out [string trim \
- [prune_warnings \
+ [libjava_prune_warnings \
[lindex [local_exec "$jvscan --encoding=UTF-8 $srcfile --list-class" "" "" 300] 1]]]
verbose "class list is $class_out"
if {$mode == "compile"} {
foreach c_file $class_files {
set executable [file rootname [file tail $c_file]].o
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[libjava_tcompile $c_file "$executable" $type $args]]
lappend removeList $executable
if {$x != ""} {
set hack "$hack $stupid"
}
lappend removeList $executable
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[libjava_tcompile $hack "$executable" $type $args]]
}
if {[info exists opts(xfail-byte)]} {
# Find jni.h.
lappend options "additional_flags=-I$srcdir/../include"
- set x [prune_warnings [target_compile $file $soname executable $options]]
+ set x [libjava_prune_warnings \
+ [target_compile $file $soname executable $options]]
if {$x != ""} {
verbose "target_compile failed: $x" 2
fail "$name.c compilation"
proc gcj_jni_build_header {file} {
set gcjh [find_gcjh]
set file [file rootname $file]
- set x [string trim [prune_warnings \
+ set x [string trim [libjava_prune_warnings \
[lindex [local_exec "$gcjh -jni $file" "" "" 300] 1]]]
if {$x != ""} {
verbose "local_exec failed: $x" 2
set errname [file rootname [file tail $srcfile]]
set args [libjava_arguments link]
lappend args "additional_flags=--main=[file rootname [file tail $srcfile]] $srcdir/$subdir/MyLoader.java $objdir/dummy.o"
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[libjava_tcompile $srcfile "$executable" executable $args]]
if { $x != "" } {
set args [libjava_arguments compile]
lappend args "additional_flags=--resource $objdir/dummy.class"
- set x [prune_warnings \
- [libjava_tcompile "$objdir/dummy.class" "$objdir/dummy.o" object $args]]
+ set x [libjava_prune_warnings \
+ [libjava_tcompile "$objdir/dummy.class" "$objdir/dummy.o" object $args]]
if { $x != "" } {
verbose "resource compilation failed: $x" 2
foreach base {DejaGNUTestHarness gnu/testlet/SimpleTestHarness gnu/testlet/TestHarness gnu/testlet/Testlet gnu/testlet/ResourceNotFoundException gnu/testlet/config} {
set file $base.class
set obj $base.o
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[target_compile [pwd]/$file $obj object $compile_args]]
if {$x != ""} then {
fail "Compile $obj"
if {! [file exists $obj]} then {
verbose "compiling $obj for test of $class"
set srcfile [file rootname $obj].class
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[target_compile [pwd]/$srcfile $obj object $compile_args]]
if {$x != ""} then {
fail "Compile $obj for $class"
continue
}
- set x [prune_warnings [target_compile [concat $uses($file) $objlist] \
- $Executable executable $link_args]]
+ set x [libjava_prune_warnings \
+ [target_compile [concat $uses($file) $objlist] \
+ $Executable executable $link_args]]
if {$x != ""} then {
set proc_ok 0
fail "Link for $class"
gnu/testlet/config} {
set file $base.class
set obj $base.o
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[target_compile [pwd]/$file $obj object $compile_args]]
if {$x != ""} then {
fail "Compile $obj"
if {! [file exists $obj]} then {
verbose "compiling $obj for test of $class"
set srcfile [file rootname $obj].class
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[target_compile [pwd]/$srcfile $obj object $compile_args]]
if {$x != ""} then {
fail "Compile $obj for $class"
return 0
}
- set x [prune_warnings \
+ set x [libjava_prune_warnings \
[target_compile gnu/testlet/DejaGNUTestHarness.class \
gnu/testlet/DejaGNUTestHarness.o object $compile_args]]
if {$x != ""} then {
continue
}
- set x [prune_warnings [target_compile [concat $uses($file) $objlist] \
- $Executable executable $link_args]]
+ set x [libjava_prune_warnings \
+ [target_compile [concat $uses($file) $objlist] \
+ $Executable executable $link_args]]
if {$x != ""} then {
set proc_ok 0
fail "Link for $class"