OSDN Git Service

Fix PR savannah/1417:
authorciceron <ciceron>
Sun, 1 Dec 2002 13:25:05 +0000 (13:25 +0000)
committerciceron <ciceron>
Sun, 1 Dec 2002 13:25:05 +0000 (13:25 +0000)
* ld-m68hc11/bug-1417.s: New test.
* ld-m68hc11/bug-1417.d: Likewise.

ld/testsuite/ChangeLog
ld/testsuite/ld-m68hc11/bug-1417.d [new file with mode: 0644]
ld/testsuite/ld-m68hc11/bug-1417.s [new file with mode: 0644]

index 0d835d4..2f8179b 100644 (file)
@@ -1,3 +1,9 @@
+2002-12-01  Stephane Carrez  <stcarrez@nerim.fr>
+
+       Fix PR savannah/1417:
+       * ld-m68hc11/bug-1417.s: New test.
+       * ld-m68hc11/bug-1417.d: Likewise.
+
 2002-11-28  Jakub Jelinek  <jakub@redhat.com>
 
        * ld-i386/tlsnopic.rd: Change NOTYPE to TLS for UND sg* symbols.
diff --git a/ld/testsuite/ld-m68hc11/bug-1417.d b/ld/testsuite/ld-m68hc11/bug-1417.d
new file mode 100644 (file)
index 0000000..d1e7c42
--- /dev/null
@@ -0,0 +1,15 @@
+#source: bug-1417.s
+#as: -m68hc11
+#ld: --relax
+#objdump: -d --prefix-addresses -r
+#target: m6811-*-* m6812-*-*
+
+.*: +file format elf32-m68hc11
+
+Disassembly of section .text:
+0+8000 <_start> tst    0+ <__bss_size>
+0+8003 <_start\+0x3> bne       0+8008 <L1>
+0+8005 <_start\+0x5> jsr       0+800c <foo>
+0+8008 <L1> bset       \*0+ <__bss_size> \#\$04
+0+800b <L2> rts
+0+800c <foo> rts
diff --git a/ld/testsuite/ld-m68hc11/bug-1417.s b/ld/testsuite/ld-m68hc11/bug-1417.s
new file mode 100644 (file)
index 0000000..2b3e6a1
--- /dev/null
@@ -0,0 +1,21 @@
+;;; Bug #1417: Branch wrong after linker relaxation
+;;; http://savannah.gnu.org/bugs/?func=detailbug&bug_id=1417&group_id=2424
+;;; 
+       .sect .text
+       .globl _start
+_start:
+       tst     table
+       bne     L1              ; Branch was adjusted but it must not
+       jsr     foo
+L1:
+       .relax  L2
+       ldx     #table          ; Instruction removed
+       bset    0,x #4          ; Changed to bset *table #4
+L2:
+       rts
+foo:
+       rts
+
+       .sect .page0
+       .globl table
+table: .long 0