aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@bitrange.com>2014-05-10 02:50:01 +0200
committerHans-Peter Nilsson <hp@bitrange.com>2014-05-10 02:52:14 +0200
commiteae25ec5773e12af107e65fcf0c94a54bc5180ae (patch)
tree584bbe1178f76697d0cea1e843819b9027d8c0f3 /ld/testsuite
parentb1f02b89ed9e9c68eab6f645e19634315a6525c4 (diff)
downloadgdb-eae25ec5773e12af107e65fcf0c94a54bc5180ae.zip
gdb-eae25ec5773e12af107e65fcf0c94a54bc5180ae.tar.gz
gdb-eae25ec5773e12af107e65fcf0c94a54bc5180ae.tar.bz2
Fix freeing of link_info.hash
ld: * ldlang.c (lang_finish): Don't call bfd_link_hash_table_free here. (output_bfd_hash_table_free_fn): New variable. (open_output): Save the _bfd_link_hash_table_free function for the output_bfd into output_bfd_hash_table_free_fn. * ldmain.c (ld_cleanup): If set, call output_bfd_hash_table_free_fn on link_info.hash. * ldlang.h (output_bfd_hash_table_free_fn): Declare. ld/testsuite: * ld-mmix/wrap1.d, ld-mmix/wrap1a.s, ld-mmix/wrap1b.s, ld-mmix/wrap1c.s, ld-mmix/wrap2.d, ld-mmix/wrap3.d, ld-mmix/wrap3a.s, ld-mmix/wrap3b.s, ld-mmix/wrap4.d: New tests.
Diffstat (limited to 'ld/testsuite')
-rw-r--r--ld/testsuite/ChangeLog7
-rw-r--r--ld/testsuite/ld-mmix/wrap1.d21
-rw-r--r--ld/testsuite/ld-mmix/wrap1a.s2
-rw-r--r--ld/testsuite/ld-mmix/wrap1b.s4
-rw-r--r--ld/testsuite/ld-mmix/wrap1c.s4
-rw-r--r--ld/testsuite/ld-mmix/wrap2.d21
-rw-r--r--ld/testsuite/ld-mmix/wrap3.d21
-rw-r--r--ld/testsuite/ld-mmix/wrap3a.s2
-rw-r--r--ld/testsuite/ld-mmix/wrap3b.s4
-rw-r--r--ld/testsuite/ld-mmix/wrap4.d21
10 files changed, 107 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index ed50efa..021d17c 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2014-05-10 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * ld-mmix/wrap1.d, ld-mmix/wrap1a.s, ld-mmix/wrap1b.s,
+ ld-mmix/wrap1c.s, ld-mmix/wrap2.d, ld-mmix/wrap3.d,
+ ld-mmix/wrap3a.s, ld-mmix/wrap3b.s, ld-mmix/wrap4.d: New
+ tests.
+
2014-05-09 H.J. Lu <hongjiu.lu@intel.com>
* ld-x86-64/tlsbin.dd: Replace data32 with data16.
diff --git a/ld/testsuite/ld-mmix/wrap1.d b/ld/testsuite/ld-mmix/wrap1.d
new file mode 100644
index 0000000..02d7bef
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap1.d
@@ -0,0 +1,21 @@
+#source: start.s
+#source: wrap1a.s
+#source: wrap1b.s
+#source: wrap1c.s
+#ld: -m mmo --wrap deal
+#as: -no-expand
+#objdump: -d
+
+.*: file format mmo
+
+Disassembly of section \.text:
+
+0+ <(_start|Main)>:
+ 0: e3fd0001 setl \$253,0x1
+ 4: f2000001 pushj \$0,8 <__wrap_deal>
+
+0+8 <__wrap_deal>:
+ 8: f0000001 jmp c <deal>
+
+0+c <deal>:
+ c: fd000000 swym 0,0,0
diff --git a/ld/testsuite/ld-mmix/wrap1a.s b/ld/testsuite/ld-mmix/wrap1a.s
new file mode 100644
index 0000000..88a5cd2
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap1a.s
@@ -0,0 +1,2 @@
+ .text
+ pushj $0,deal
diff --git a/ld/testsuite/ld-mmix/wrap1b.s b/ld/testsuite/ld-mmix/wrap1b.s
new file mode 100644
index 0000000..367aea0
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap1b.s
@@ -0,0 +1,4 @@
+ .text
+ .globl __wrap_deal
+__wrap_deal:
+ jmp __real_deal
diff --git a/ld/testsuite/ld-mmix/wrap1c.s b/ld/testsuite/ld-mmix/wrap1c.s
new file mode 100644
index 0000000..a7678d4
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap1c.s
@@ -0,0 +1,4 @@
+ .text
+ .globl deal
+deal:
+ swym 0
diff --git a/ld/testsuite/ld-mmix/wrap2.d b/ld/testsuite/ld-mmix/wrap2.d
new file mode 100644
index 0000000..49b4d3b
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap2.d
@@ -0,0 +1,21 @@
+#source: start.s
+#source: wrap1a.s
+#source: wrap1b.s
+#source: wrap1c.s
+#ld: -m elf64mmix --wrap deal
+#as: -no-expand
+#objdump: -d
+
+.*: file format elf64-mmix
+
+Disassembly of section \.text:
+
+0+ <(_start|Main)>:
+ 0: e3fd0001 setl \$253,0x1
+ 4: f2000001 pushj \$0,8 <__wrap_deal>
+
+0+8 <__wrap_deal>:
+ 8: f0000001 jmp c <deal>
+
+0+c <deal>:
+ c: fd000000 swym 0,0,0
diff --git a/ld/testsuite/ld-mmix/wrap3.d b/ld/testsuite/ld-mmix/wrap3.d
new file mode 100644
index 0000000..80b20f1
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap3.d
@@ -0,0 +1,21 @@
+#source: start.s
+#source: wrap3a.s
+#source: wrap3b.s
+#source: wrap1c.s
+#ld: -m mmo
+#as: -no-expand
+#objdump: -d
+
+.*: file format mmo
+
+Disassembly of section \.text:
+
+0+ <(_start|Main)>:
+ 0: e3fd0001 setl \$253,0x1
+ 4: f2000001 pushj \$0,8 <__wrap_deal>
+
+0+8 <__wrap_deal>:
+ 8: f0000001 jmp c <deal>
+
+0+c <deal>:
+ c: fd000000 swym 0,0,0
diff --git a/ld/testsuite/ld-mmix/wrap3a.s b/ld/testsuite/ld-mmix/wrap3a.s
new file mode 100644
index 0000000..7192a93
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap3a.s
@@ -0,0 +1,2 @@
+ .text
+ pushj $0,__wrap_deal
diff --git a/ld/testsuite/ld-mmix/wrap3b.s b/ld/testsuite/ld-mmix/wrap3b.s
new file mode 100644
index 0000000..6a8a606
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap3b.s
@@ -0,0 +1,4 @@
+ .text
+ .globl __wrap_deal
+__wrap_deal:
+ jmp deal
diff --git a/ld/testsuite/ld-mmix/wrap4.d b/ld/testsuite/ld-mmix/wrap4.d
new file mode 100644
index 0000000..a64578d
--- /dev/null
+++ b/ld/testsuite/ld-mmix/wrap4.d
@@ -0,0 +1,21 @@
+#source: start.s
+#source: wrap3a.s
+#source: wrap3b.s
+#source: wrap1c.s
+#ld: -m elf64mmix
+#as: -no-expand
+#objdump: -d
+
+.*: file format elf64-mmix
+
+Disassembly of section \.text:
+
+0+ <(_start|Main)>:
+ 0: e3fd0001 setl \$253,0x1
+ 4: f2000001 pushj \$0,8 <__wrap_deal>
+
+0+8 <__wrap_deal>:
+ 8: f0000001 jmp c <deal>
+
+0+c <deal>:
+ c: fd000000 swym 0,0,0