* ld-linkonce/x.s: Use .gcc_except_table instead of .eh_frame
authorAlan Modra <amodra@gmail.com>
Tue, 24 Apr 2007 04:29:03 +0000 (04:29 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 24 Apr 2007 04:29:03 +0000 (04:29 +0000)
to test that entry for deleted function is zeroed.  Add a
somewhat closer to normal .eh_frame to test that fde for
deleted function is removed.
* ld-linkonce/y.s: Likewise.
* ld-linkonce/zeroeh.ld: Place .gcc_except_table too.
* ld-linkonce/zeroehl32.d: Update.

ld/testsuite/ChangeLog
ld/testsuite/ld-linkonce/x.s
ld/testsuite/ld-linkonce/y.s
ld/testsuite/ld-linkonce/zeroeh.ld
ld/testsuite/ld-linkonce/zeroehl32.d

index ad9bcbd9364a507d8faf9cbe9324e2e6403ba5a9..6915ea613f5f3c1e68216ef766690acb4a1655d3 100644 (file)
@@ -1,3 +1,13 @@
+2007-04-24  Alan Modra  <amodra@bigpond.net.au>
+
+       * ld-linkonce/x.s: Use .gcc_except_table instead of .eh_frame
+       to test that entry for deleted function is zeroed.  Add a
+       somewhat closer to normal .eh_frame to test that fde for
+       deleted function is removed.
+       * ld-linkonce/y.s: Likewise.
+       * ld-linkonce/zeroeh.ld: Place .gcc_except_table too.
+       * ld-linkonce/zeroehl32.d: Update.
+
 2007-04-21  Richard Earnshaw  <rearnsha@arm.com>
 
        * ld-arm/arm-app-abs32.d: Convert to unified syntax.
index 6807cfcdeceece237a1aca73f8824c7b07a74d06..d07f73eefe50ed26710707580da3bf1e700f30c4 100644 (file)
@@ -1,8 +1,7 @@
 ;# Main file, x.s, with the program (_start) referring to two
 ;# linkonce functions fn and fn2.  The functions fn and fn2 are
 ;# supposed to be equivalent of C++ template instantiations; the
-;# main file instantiates fn.  There's the equivalent of an FDE
-;# entry in .eh_frame, referring to fn via a local label.
+;# main file instantiates fn.
 
  .text
  .global _start
@@ -20,7 +19,29 @@ fn:
 .Lb:
  .size fn,.Lb-.La
 
- .section .eh_frame,"aw",@progbits
+ .section .gcc_except_table,"aw",@progbits
  .long 2
  .long .La
  .long .Lb-.La
+
+ .section .eh_frame,"aw",@progbits
+.Lframe1:
+ .long .LECIE1-.LSCIE1
+.LSCIE1:
+ .long 0x0
+ .byte 0x1
+ .byte 0
+ .uleb128 0x1
+ .sleb128 -4
+ .byte 0
+ .p2align 2
+.LECIE1:
+
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1
+.LASFDE1:
+ .long .LASFDE1-.Lframe1
+ .long .La
+ .long .Lb-.La
+ .p2align 2
+.LEFDE1:
index b8ae3d29643804d11a4b12ef0f7d8b82a06c9967..c1eb5113998881675f6480aaaf26aa52b8007ddd 100644 (file)
@@ -2,7 +2,7 @@
 ;# that this version of fn has different code, as if compiled
 ;# with different optimization flags than the one in x.s (not
 ;# important for this test, though).  The reference from
-;# .eh_frame to the linkonce-excluded fn2 must be zero, or g++
+;# .gcc_except_table to the linkonce-excluded fn2 must be zero, or g++
 ;# EH will not work.
 
  .section .gnu.linkonce.t.fn2,"ax",@progbits
@@ -23,7 +23,7 @@ fn:
 .Lf:
  .size fn,.Lf-.Le
 
- .section .eh_frame,"aw",@progbits
+ .section .gcc_except_table,"aw",@progbits
  .long 7
  .long .Lc
  .long .Ld-.Lc
@@ -31,3 +31,34 @@ fn:
  .long 0x6066
  .long .Le
  .long .Lf-.Le
+
+ .section .eh_frame,"aw",@progbits
+.Lframe1:
+ .long .LECIE1-.LSCIE1
+.LSCIE1:
+ .long 0x0
+ .byte 0x1
+ .byte 0
+ .uleb128 0x1
+ .sleb128 -4
+ .byte 0
+ .p2align 2
+.LECIE1:
+
+.LSFDE1:
+ .long .LEFDE1-.LASFDE1
+.LASFDE1:
+ .long .LASFDE1-.Lframe1
+ .long .Lc
+ .long .Ld-.Lc
+ .p2align 2
+.LEFDE1:
+
+.LSFDE2:
+ .long .LEFDE2-.LASFDE2
+.LASFDE2:
+ .long .LASFDE2-.Lframe1
+ .long .Le
+ .long .Lf-.Le
+ .p2align 2
+.LEFDE2:
index 6550c17db9c22450f50cd9d2e853f9b63705a19d..b22eaa12c9c700d2beb5e78d0bbac02e216f923c 100644 (file)
@@ -1,4 +1,5 @@
 SECTIONS {
  .text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
- .eh_frame 0x2000 : { *(.eh_frame) }
+ .gcc_except_table 0x2000 : { *(.gcc_except_table) }
+ .eh_frame 0x4000 : { *(.eh_frame) }
 }
index b84ebed370553a1d5e5678af0c5a1b9fedcd5638..5b51836588c08d06c36be6e07267e87165fbd873 100644 (file)
 Contents of section \.text:
  0a00 080a0000 100a0000 01000000 02000000  .*
  0a10 03000000                             .*
-Contents of section \.eh_frame:
+Contents of section \.gcc_except_table:
  2000 02000000 080a0000 08000000 07000000  .*
  2010 100a0000 04000000 66600000 00000000  .*
  2020 04000000                             .*
-#pass
+Contents of section \.eh_frame:
+ 4000 0c000000 00000000 0100017c 00000000  .*
+ 4010 0c000000 14000000 080a0000 08000000  .*
+ 4020 0c000000 24000000 100a0000 04000000  .*
This page took 0.029163 seconds and 4 git commands to generate.