PR ld/12815
authorHans-Peter Nilsson <hp@axis.com>
Mon, 25 Jul 2011 01:16:05 +0000 (01:16 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Mon, 25 Jul 2011 01:16:05 +0000 (01:16 +0000)
* 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.

ld/testsuite/ChangeLog
ld/testsuite/ld-mmix/pr12815-1.d [new file with mode: 0644]
ld/testsuite/ld-mmix/pr12815-1.ld [new file with mode: 0644]
ld/testsuite/ld-mmix/pr12815-1.s [new file with mode: 0644]
ld/testsuite/ld-mmix/pr12815-2.d [new file with mode: 0644]
ld/testsuite/ld-mmix/pr12815-2.s [new file with mode: 0644]

index e42e167..8400fd1 100644 (file)
@@ -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 (file)
index 0000000..41680b9
--- /dev/null
@@ -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 (file)
index 0000000..1658cd3
--- /dev/null
@@ -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 (file)
index 0000000..b03fa61
--- /dev/null
@@ -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 (file)
index 0000000..47966a3
--- /dev/null
@@ -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 (file)
index 0000000..16d9ad9
--- /dev/null
@@ -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