binutils/binutils-2.19.51.0.2-pr10255.patch
2009-06-09 15:35:23 +00:00

74 lines
2.5 KiB
Diff

2009-06-09 Jakub Jelinek <jakub@redhat.com>
PR gas/10255
* dw2gencfi.c (output_cfi_insn): Initialize fragment before rs_cfa
to DW_CFA_advance_loc4.
* gas/cfi/cfi-common-7.d: New test.
* gas/cfi/cfi-common-7.s: New.
* gas/cfi/cfi.exp: Add cfi-common-7 test.
--- gas/dw2gencfi.c.jj 2009-01-27 17:50:43.000000000 +0100
+++ gas/dw2gencfi.c 2009-06-09 13:51:19.000000000 +0200
@@ -1,5 +1,6 @@
/* dw2gencfi.c - Support for generating Dwarf2 CFI information.
- Copyright 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+ Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ Free Software Foundation, Inc.
Contributed by Michal Ludvig <mludvig@suse.cz>
This file is part of GAS, the GNU Assembler.
@@ -1001,7 +1002,7 @@ output_cfi_insn (struct cfi_insn_data *i
is already allocated to the frag. This comes from the way
that it scans the .eh_frame section looking first for the
.byte DW_CFA_advance_loc4. */
- frag_more (1);
+ *frag_more (1) = DW_CFA_advance_loc4;
frag_var (rs_cfa, 4, 0, DWARF2_LINE_MIN_INSN_LENGTH << 3,
make_expr_symbol (&exp), frag_now_fix () - 1,
--- gas/testsuite/gas/cfi/cfi.exp.jj 2008-09-25 20:39:42.000000000 +0200
+++ gas/testsuite/gas/cfi/cfi.exp 2009-06-09 14:07:08.000000000 +0200
@@ -89,6 +89,7 @@ if { ![istarget "hppa64*-*"] } then {
run_dump_test "cfi-common-3"
run_dump_test "cfi-common-4"
run_dump_test "cfi-common-5"
+ run_dump_test "cfi-common-7"
}
# MIPS doesn't support PC relative cfi directives.
--- gas/testsuite/gas/cfi/cfi-common-7.d.jj 2009-06-09 13:58:25.000000000 +0200
+++ gas/testsuite/gas/cfi/cfi-common-7.d 2009-06-09 14:04:33.000000000 +0200
@@ -0,0 +1,22 @@
+#readelf: -wf
+#name: CFI common 7
+Contents of the .eh_frame section:
+
+00000000 00000010 00000000 CIE
+ Version: 1
+ Augmentation: "zR"
+ Code alignment factor: .*
+ Data alignment factor: .*
+ Return address column: .*
+ Augmentation data: [01]b
+
+ DW_CFA_nop
+ DW_CFA_nop
+ DW_CFA_nop
+
+00000014 000000(1c|20) 00000018 FDE cie=00000000 pc=.*
+ DW_CFA_advance_loc: 16 to .*
+ DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 16
+ DW_CFA_advance_loc4: 75031 to .*
+ DW_CFA_def_cfa: r0( \([er]ax\)|) ofs 64
+#...
--- gas/testsuite/gas/cfi/cfi-common-7.s.jj 2009-06-09 13:57:19.000000000 +0200
+++ gas/testsuite/gas/cfi/cfi-common-7.s 2009-06-09 13:59:34.000000000 +0200
@@ -0,0 +1,6 @@
+ .cfi_startproc simple
+ .skip 16
+ .cfi_def_cfa 0, 16
+ .skip 75031
+ .cfi_def_cfa 0, 64
+ .cfi_endproc