aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-mmix/pr12815-1.d7
-rw-r--r--ld/testsuite/ld-mmix/pr12815-1.ld14
-rw-r--r--ld/testsuite/ld-mmix/pr12815-1.s26
-rw-r--r--ld/testsuite/ld-mmix/pr12815-2.d7
-rw-r--r--ld/testsuite/ld-mmix/pr12815-2.s14
6 files changed, 74 insertions, 0 deletions
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index e42e167..8400fd1 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2011-07-25 Hans-Peter Nilsson <hp@bitrange.com>
+
+ PR ld/12815
+ * ld-mmix/pr12815-1.d, ld-mmix/pr12815-1.s, ld-mmix/pr12815-1.ld,
+ ld-mmix/pr12815-2.d, ld-mmix/pr12815-2.s: New tests.
+
2011-07-24 Catherine Moore <clm@codesourcery.com>
Chao-ying Fu <fu@mips.com>
Maciej W. Rozycki <macro@codesourcery.com>
diff --git a/ld/testsuite/ld-mmix/pr12815-1.d b/ld/testsuite/ld-mmix/pr12815-1.d
new file mode 100644
index 0000000..41680b9
--- /dev/null
+++ b/ld/testsuite/ld-mmix/pr12815-1.d
@@ -0,0 +1,7 @@
+#as: -no-predefined-syms -x
+#ld: -e 0x1000 -m elf64mmix -T $srcdir/$subdir/pr12815-1.ld
+#error: invalid input relocation.*objcopy.*"-mno-base-addresses".*truncated
+
+# Check that we emit a meaningful error message rather than SEGV when
+# someone attempts linking to the "binary" output format with
+# -mbase-addresses in effect.
diff --git a/ld/testsuite/ld-mmix/pr12815-1.ld b/ld/testsuite/ld-mmix/pr12815-1.ld
new file mode 100644
index 0000000..1658cd3
--- /dev/null
+++ b/ld/testsuite/ld-mmix/pr12815-1.ld
@@ -0,0 +1,14 @@
+OUTPUT_FORMAT("binary")
+ENTRY(start)
+SECTIONS
+{
+ . = 0x8000000000100000;
+ .text : AT(ADDR(.text) - 0x8000000000100000)
+ {
+ *(.text)
+ *(.data)
+ *(.rodata*)
+ *(COMMON*)
+ *(.bss*)
+ }
+}
diff --git a/ld/testsuite/ld-mmix/pr12815-1.s b/ld/testsuite/ld-mmix/pr12815-1.s
new file mode 100644
index 0000000..b03fa61
--- /dev/null
+++ b/ld/testsuite/ld-mmix/pr12815-1.s
@@ -0,0 +1,26 @@
+# 1 "m.c"
+! mmixal:= 8H LOC Data_Section
+ .text ! mmixal:= 9H LOC 8B
+ .data ! mmixal:= 8H LOC 9B
+ .p2align 2
+ LOC @+(4-@)&3
+foo IS @
+ TETRA #2
+ .text ! mmixal:= 9H LOC 8B
+ .p2align 2
+ LOC @+(4-@)&3
+ .global main
+main IS @
+ SUBU $254,$254,8
+ STOU $253,$254,0
+ ADDU $253,$254,8
+ LDT $0,foo
+ ADDU $0,$0,1
+ SET $0,$0
+ STTU $0,foo
+ SETL $0,0
+ LDO $253,$254,0
+ ADDU $254,$254,8
+ POP 1,0
+
+ .data ! mmixal:= 8H LOC 9B
diff --git a/ld/testsuite/ld-mmix/pr12815-2.d b/ld/testsuite/ld-mmix/pr12815-2.d
new file mode 100644
index 0000000..47966a3
--- /dev/null
+++ b/ld/testsuite/ld-mmix/pr12815-2.d
@@ -0,0 +1,7 @@
+#as: -no-predefined-syms -x
+#ld: -e 0x1000 --defsym bar=0x100000000 -m elf64mmix -T $srcdir/$subdir/pr12815-1.ld
+#error: invalid input relocation.*objcopy.*"-no-expand".*truncated
+
+# Check that we emit a meaningful error message rather than SEGV when
+# someone attempts linking to the "binary" output format with
+# expanding PUSHJ insns, expecting relaxation to work.
diff --git a/ld/testsuite/ld-mmix/pr12815-2.s b/ld/testsuite/ld-mmix/pr12815-2.s
new file mode 100644
index 0000000..16d9ad9
--- /dev/null
+++ b/ld/testsuite/ld-mmix/pr12815-2.s
@@ -0,0 +1,14 @@
+# 1 "m.c"
+! mmixal:= 8H LOC Data_Section
+ .text ! mmixal:= 9H LOC 8B
+ .p2align 2
+ LOC @+(4-@)&3
+ .global main
+main IS @
+ GET $0,rJ
+ PUSHJ $1,bar
+ PUSHJ $1,bar
+ PUT rJ,$0
+ POP 1,0
+
+ .data ! mmixal:= 8H LOC 9B