diff options
author | Nick Clifton <nickc@redhat.com> | 2001-08-01 14:37:47 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2001-08-01 14:37:47 +0000 |
commit | 39c183c149bdfa422b5ae634deee800bb3524897 (patch) | |
tree | 0ecd22d3afdc3879d0b617f65a6c000cf0dbc278 /ld/testsuite/ld-cdtest | |
parent | 22a517d05e4ed2e29fb56b70599c7d9c3ac86c4e (diff) | |
download | gdb-39c183c149bdfa422b5ae634deee800bb3524897.zip gdb-39c183c149bdfa422b5ae634deee800bb3524897.tar.gz gdb-39c183c149bdfa422b5ae634deee800bb3524897.tar.bz2 |
Do not require any exception support library. Check results against NRV.
Diffstat (limited to 'ld/testsuite/ld-cdtest')
-rw-r--r-- | ld/testsuite/ld-cdtest/cdtest-nrv.dat | 13 | ||||
-rw-r--r-- | ld/testsuite/ld-cdtest/cdtest.exp | 57 |
2 files changed, 53 insertions, 17 deletions
diff --git a/ld/testsuite/ld-cdtest/cdtest-nrv.dat b/ld/testsuite/ld-cdtest/cdtest-nrv.dat new file mode 100644 index 0000000..d3f871f --- /dev/null +++ b/ld/testsuite/ld-cdtest/cdtest-nrv.dat @@ -0,0 +1,13 @@ +Constructing Foo(1) "static_foo" +Constructing Foo(2) "static_foo" +Constructing Foo(3) "automatic_foo" +Constructing Foo(4) "default-foo" +Constructing Foo(5) "other_foo1" +Constructing Foo(6) "other_foo2" +Copying Foo(5) "other_foo1" to Foo(6) +Destructing Foo(6) "other_foo1" (remaining foos: 5) +Destructing Foo(5) "other_foo1" (remaining foos: 4) +Destructing Foo(4) "default-foo" (remaining foos: 3) +Destructing Foo(3) "automatic_foo" (remaining foos: 2) +Destructing Foo(2) "static_foo" (remaining foos: 1) +Destructing Foo(1) "static_foo" (remaining foos: 0) diff --git a/ld/testsuite/ld-cdtest/cdtest.exp b/ld/testsuite/ld-cdtest/cdtest.exp index 76f8291..1c51f0d 100644 --- a/ld/testsuite/ld-cdtest/cdtest.exp +++ b/ld/testsuite/ld-cdtest/cdtest.exp @@ -1,5 +1,5 @@ # Expect script for LD cdtest Tests -# Copyright 1993, 1994, 1995, 1997 Free Software Foundation, Inc. +# Copyright 1993, 1994, 1995, 1997, 2001 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -35,35 +35,55 @@ if { [which $CXX] == 0 } { return } -if { ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir/$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] - || ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir/$subdir/cdtest-bar.cc tmpdir/cdtest-bar.o] - || ![ld_compile "$CXX $CXXFLAGS -fgnu-linker" $srcdir/$subdir/cdtest-main.cc tmpdir/cdtest-main.o] } { +if { ![ld_compile "$CXX $CXXFLAGS -fgnu-linker -fno-exceptions" $srcdir/$subdir/cdtest-foo.cc tmpdir/cdtest-foo.o] + || ![ld_compile "$CXX $CXXFLAGS -fgnu-linker -fno-exceptions" $srcdir/$subdir/cdtest-bar.cc tmpdir/cdtest-bar.o] + || ![ld_compile "$CXX $CXXFLAGS -fgnu-linker -fno-exceptions" $srcdir/$subdir/cdtest-main.cc tmpdir/cdtest-main.o] } { unresolved $test1 unresolved $test2 return } +set expected_output "$srcdir/$subdir/cdtest.dat" + if ![ld_link $ld tmpdir/cdtest {tmpdir/cdtest-foo.o tmpdir/cdtest-bar.o tmpdir/cdtest-main.o}] { fail $test1 } else { - send_log "tmpdir/cdtest >tmpdir/cdtest.out\n" - verbose "tmpdir/cdtest >tmpdir/cdtest.out" + send_log "tmpdir/cdtest >tmpdir/cdtest.out\n" + verbose "tmpdir/cdtest >tmpdir/cdtest.out" catch "exec tmpdir/cdtest >tmpdir/cdtest.out" exec_output + if ![string match "" $exec_output] then { send_log "$exec_output\n" verbose "$exec_output" 1 + fail $test1 } else { - send_log "diff tmpdir/cdtest.out $srcdir/$subdir/cdtest.dat\n" - verbose "diff tmpdir/cdtest.out $srcdir/$subdir/cdtest.dat" - catch "exec diff tmpdir/cdtest.out $srcdir/$subdir/cdtest.dat" exec_output + send_log "diff tmpdir/cdtest.out $expected_output\n" + verbose "diff tmpdir/cdtest.out $expected_output" + catch "exec diff tmpdir/cdtest.out $expected_output" exec_output set exec_output [prune_warnings $exec_output] + if ![string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" 1 + + send_log "Checking against Named Return Value optimization\n" + verbose "Checking against Named Return Value optimization" 1 + + set expected_output "$srcdir/$subdir/cdtest-nrv.dat" + + send_log "diff tmpdir/cdtest.out $expected_output\n" + verbose "diff tmpdir/cdtest.out $expected_output" + catch "exec diff tmpdir/cdtest.out $expected_output" exec_output + set exec_output [prune_warnings $exec_output] + } + if [string match "" $exec_output] then { pass $test1 } else { send_log "$exec_output\n" - verbose "$exec_output" 1 + verbose "$exec_output" 1 + fail $test1 } } @@ -75,24 +95,27 @@ if ![ld_relocate $ld tmpdir/cdtest.o {-Ur tmpdir/cdtest-foo.o tmpdir/cdtest-bar. if ![ld_link $ld tmpdir/cdtest tmpdir/cdtest.o] { fail $test2 } else { - send_log "tmpdir/cdtest >tmpdir/cdtest.out\n" - verbose "tmpdir/cdtest >tmpdir/cdtest.out" + send_log "tmpdir/cdtest >tmpdir/cdtest.out\n" + verbose "tmpdir/cdtest >tmpdir/cdtest.out" catch "exec tmpdir/cdtest >tmpdir/cdtest.out" exec_output + if ![string match "" $exec_output] then { send_log "$exec_output\n" - verbose "$exec_output" 1 + verbose "$exec_output" 1 + fail $test2 } else { - send_log "diff tmpdir/cdtest.out $srcdir/$subdir/cdtest.dat\n" - verbose "diff tmpdir/cdtest.out $srcdir/$subdir/cdtest.dat" - catch "exec diff tmpdir/cdtest.out $srcdir/$subdir/cdtest.dat" exec_output + send_log "diff tmpdir/cdtest.out $expected_output\n" + verbose "diff tmpdir/cdtest.out $expected_output" + catch "exec diff tmpdir/cdtest.out $expected_output" exec_output set exec_output [prune_warnings $exec_output] if [string match "" $exec_output] then { pass $test2 } else { send_log "$exec_output\n" - verbose "$exec_output" 1 + verbose "$exec_output" 1 + fail $test2 } } |