aboutsummaryrefslogtreecommitdiff
path: root/ld/testsuite/ld-scripts
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2012-12-18 13:38:10 +0000
committerAlan Modra <amodra@gmail.com>2012-12-18 13:38:10 +0000
commit8d708c8cad07b1d961c7d0a30040116d79134e92 (patch)
tree58b50117f0f7fe9f9e31f4d7cadf71bf5b03a3c5 /ld/testsuite/ld-scripts
parent15bc576af199430c68593286e2e58e43451b8c30 (diff)
downloadgdb-8d708c8cad07b1d961c7d0a30040116d79134e92.zip
gdb-8d708c8cad07b1d961c7d0a30040116d79134e92.tar.gz
gdb-8d708c8cad07b1d961c7d0a30040116d79134e92.tar.bz2
PR ld/14962
* ld-scripts/pr14962.d, * ld-scripts/pr14962.t, * ld-scripts/pr14962a.s, * ld-scripts/pr14962b.s: New test. * ld-scripts/expr.exp: Run it.
Diffstat (limited to 'ld/testsuite/ld-scripts')
-rw-r--r--ld/testsuite/ld-scripts/expr.exp1
-rw-r--r--ld/testsuite/ld-scripts/pr14962.d11
-rw-r--r--ld/testsuite/ld-scripts/pr14962.t8
-rw-r--r--ld/testsuite/ld-scripts/pr14962a.s10
-rw-r--r--ld/testsuite/ld-scripts/pr14962b.s4
5 files changed, 34 insertions, 0 deletions
diff --git a/ld/testsuite/ld-scripts/expr.exp b/ld/testsuite/ld-scripts/expr.exp
index ea5002f..0f92d97 100644
--- a/ld/testsuite/ld-scripts/expr.exp
+++ b/ld/testsuite/ld-scripts/expr.exp
@@ -24,3 +24,4 @@ run_dump_test expr1
run_dump_test expr2
run_dump_test sane1
run_dump_test assign-loc
+run_dump_test pr14962
diff --git a/ld/testsuite/ld-scripts/pr14962.d b/ld/testsuite/ld-scripts/pr14962.d
new file mode 100644
index 0000000..616836d
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962.d
@@ -0,0 +1,11 @@
+#ld: -Ttext=0x1000 -Tdata=0x2000 -T pr14962.t
+#source: pr14962a.s
+#source: pr14962b.s
+#nm: -n
+#notarget: rx-*-*
+# the reference to x would normally generate a cross-reference error
+# but the linker script converts x to absolute to avoid the error
+
+#...
+0+2000 A x
+#pass
diff --git a/ld/testsuite/ld-scripts/pr14962.t b/ld/testsuite/ld-scripts/pr14962.t
new file mode 100644
index 0000000..f399acd
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962.t
@@ -0,0 +1,8 @@
+NOCROSSREFS ( .text .data )
+x = ABSOLUTE(x);
+SECTIONS
+{
+ .text : { *(.text) }
+ .data : { *(.data) }
+ /DISCARD/ : { *(*) }
+}
diff --git a/ld/testsuite/ld-scripts/pr14962a.s b/ld/testsuite/ld-scripts/pr14962a.s
new file mode 100644
index 0000000..abaaaa6
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962a.s
@@ -0,0 +1,10 @@
+ .globl main
+ .globl start
+ .globl _start
+ .globl __start
+ .text
+main:
+start:
+_start:
+__start:
+ .dc.a x
diff --git a/ld/testsuite/ld-scripts/pr14962b.s b/ld/testsuite/ld-scripts/pr14962b.s
new file mode 100644
index 0000000..db27d76
--- /dev/null
+++ b/ld/testsuite/ld-scripts/pr14962b.s
@@ -0,0 +1,4 @@
+ .data
+ .globl x
+x:
+ .dc.a x