From 9ea48b423d6a7eabaab026a1175da5346f8c2d29 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Mon, 31 Aug 1998 19:49:48 +0000 Subject: [PATCH] * gas/vtable/vtable.exp: New. * gas/vtable/{entry0.s,entry0.d}: New. * gas/vtable/{entry1.s,entry1.d}: New. * gas/vtable/{inherit0.s,inherit0.d}: New. * gas/vtable/{inherit1.s,inherit1.l}: New. --- gas/testsuite/ChangeLog | 8 +++++++ gas/testsuite/gas/vtable/entry0.d | 10 +++++++++ gas/testsuite/gas/vtable/entry0.s | 2 ++ gas/testsuite/gas/vtable/entry1.d | 10 +++++++++ gas/testsuite/gas/vtable/entry1.s | 2 ++ gas/testsuite/gas/vtable/inherit0.d | 10 +++++++++ gas/testsuite/gas/vtable/inherit0.s | 13 ++++++++++++ gas/testsuite/gas/vtable/inherit1.l | 6 ++++++ gas/testsuite/gas/vtable/inherit1.s | 1 + gas/testsuite/gas/vtable/vtable.exp | 33 +++++++++++++++++++++++++++++ 10 files changed, 95 insertions(+) create mode 100644 gas/testsuite/gas/vtable/entry0.d create mode 100644 gas/testsuite/gas/vtable/entry0.s create mode 100644 gas/testsuite/gas/vtable/entry1.d create mode 100644 gas/testsuite/gas/vtable/entry1.s create mode 100644 gas/testsuite/gas/vtable/inherit0.d create mode 100644 gas/testsuite/gas/vtable/inherit0.s create mode 100644 gas/testsuite/gas/vtable/inherit1.l create mode 100644 gas/testsuite/gas/vtable/inherit1.s create mode 100644 gas/testsuite/gas/vtable/vtable.exp diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 9b21525db4b..e211b70dc71 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,11 @@ +Mon Aug 31 12:45:49 1998 Richard Henderson + + * gas/vtable/vtable.exp: New. + * gas/vtable/{entry0.s,entry0.d}: New. + * gas/vtable/{entry1.s,entry1.d}: New. + * gas/vtable/{inherit0.s,inherit0.d}: New. + * gas/vtable/{inherit1.s,inherit1.l}: New. + Thu Aug 20 23:18:06 1998 Ian Lance Taylor * gas/i386/white.l: Revert patch of August 12. diff --git a/gas/testsuite/gas/vtable/entry0.d b/gas/testsuite/gas/vtable/entry0.d new file mode 100644 index 00000000000..6d77125c6b2 --- /dev/null +++ b/gas/testsuite/gas/vtable/entry0.d @@ -0,0 +1,10 @@ +#objdump: -r +#name: vtable entry0 + +.*: +file format .* + +RELOCATION RECORDS FOR \[.text\]: +OFFSET TYPE VALUE +0+0000010 R_.*_GNU_VTENTRY vtbl_a + + diff --git a/gas/testsuite/gas/vtable/entry0.s b/gas/testsuite/gas/vtable/entry0.s new file mode 100644 index 00000000000..36f89e38949 --- /dev/null +++ b/gas/testsuite/gas/vtable/entry0.s @@ -0,0 +1,2 @@ +.text +.vtable_entry vtbl_a, 16 diff --git a/gas/testsuite/gas/vtable/entry1.d b/gas/testsuite/gas/vtable/entry1.d new file mode 100644 index 00000000000..e7b132ba09e --- /dev/null +++ b/gas/testsuite/gas/vtable/entry1.d @@ -0,0 +1,10 @@ +#objdump: -r +#name: vtable entry1 + +.*: +file format .* + +RELOCATION RECORDS FOR \[.text\]: +OFFSET TYPE VALUE +0+0000000 R_.*_GNU_VTENTRY vtbl_a\+0x0+10 + + diff --git a/gas/testsuite/gas/vtable/entry1.s b/gas/testsuite/gas/vtable/entry1.s new file mode 100644 index 00000000000..36f89e38949 --- /dev/null +++ b/gas/testsuite/gas/vtable/entry1.s @@ -0,0 +1,2 @@ +.text +.vtable_entry vtbl_a, 16 diff --git a/gas/testsuite/gas/vtable/inherit0.d b/gas/testsuite/gas/vtable/inherit0.d new file mode 100644 index 00000000000..4687949d2a8 --- /dev/null +++ b/gas/testsuite/gas/vtable/inherit0.d @@ -0,0 +1,10 @@ +#objdump: -r +#name: vtable inherit0 + +.*: +file format .* + +RELOCATION RECORDS FOR \[.data\]: +OFFSET TYPE VALUE +0+0000000 R_.*_GNU_VTINHERIT \*ABS\* +0+0000010 R_.*_GNU_VTINHERIT vtbl_a + diff --git a/gas/testsuite/gas/vtable/inherit0.s b/gas/testsuite/gas/vtable/inherit0.s new file mode 100644 index 00000000000..37f1b952635 --- /dev/null +++ b/gas/testsuite/gas/vtable/inherit0.s @@ -0,0 +1,13 @@ +.data + +.type vtbl_a,@object +vtbl_a: + .space 16 +.size vtbl_a,16 +.vtable_inherit vtbl_a, 0 + +.type vtbl_b,@object +vtbl_b: + .space 16 +.size vtbl_b,16 +.vtable_inherit vtbl_b, vtbl_a diff --git a/gas/testsuite/gas/vtable/inherit1.l b/gas/testsuite/gas/vtable/inherit1.l new file mode 100644 index 00000000000..cbf9d2c1d35 --- /dev/null +++ b/gas/testsuite/gas/vtable/inherit1.l @@ -0,0 +1,6 @@ +.*: Assembler messages: +.*:1: Error: expected `vtbl_a' to have already been set for .vtable_inherit +GAS LISTING.* + + + +1.*vtable_inherit vtbl_a, 0 diff --git a/gas/testsuite/gas/vtable/inherit1.s b/gas/testsuite/gas/vtable/inherit1.s new file mode 100644 index 00000000000..7dd1d2877b7 --- /dev/null +++ b/gas/testsuite/gas/vtable/inherit1.s @@ -0,0 +1 @@ +.vtable_inherit vtbl_a, 0 diff --git a/gas/testsuite/gas/vtable/vtable.exp b/gas/testsuite/gas/vtable/vtable.exp new file mode 100644 index 00000000000..8ef589b61c8 --- /dev/null +++ b/gas/testsuite/gas/vtable/vtable.exp @@ -0,0 +1,33 @@ +# +# vtable tests +# +proc run_list_test { name opts } { + global srcdir subdir + set testname "vtable $name" + set file $srcdir/$subdir/$name + gas_run ${name}.s $opts ">&dump.out" + if { [regexp_diff "dump.out" "${file}.l"] } then { + fail $testname + verbose "output is [file_contents "dump.out"]" 2 + return + } + pass $testname +} + +# Vtable bits are only supported by ELF targets. +if {[istarget "*-*-elf*"] || [istarget "*-*-linux*"]} then { + + run_dump_test "inherit0" + run_list_test "inherit1" "-al" + + # The vtable entry results are different on Rel and Rela targets. + if {[istarget "i*86-*-*"] || [istarget "mips*-*-*"]} then { + + run_dump_test "entry0" + + } else { + + run_dump_test "entry1" + + } +} -- 2.30.2