aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2009-06-09 15:12:45 +0000
committerJakub Jelinek <jakub@redhat.com>2009-06-09 15:12:45 +0000
commit1fbfe7852a66c02f029e9020a962ba65edb4c59a (patch)
tree5f3c5b0a2042f21560611983aebef8b6c2c845f9
parent2009-06-09 Tristan Gingold <gingold@adacore.com> (diff)
downloadbinutils-gdb-1fbfe7852a66c02f029e9020a962ba65edb4c59a.tar.gz
binutils-gdb-1fbfe7852a66c02f029e9020a962ba65edb4c59a.tar.bz2
binutils-gdb-1fbfe7852a66c02f029e9020a962ba65edb4c59a.zip
* 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.
-rw-r--r--gas/ChangeLog6
-rw-r--r--gas/dw2gencfi.c5
-rw-r--r--gas/testsuite/ChangeLog7
-rw-r--r--gas/testsuite/gas/cfi/cfi-common-7.d22
-rw-r--r--gas/testsuite/gas/cfi/cfi-common-7.s6
-rw-r--r--gas/testsuite/gas/cfi/cfi.exp1
6 files changed, 45 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 23ba55bcb4b..8922aa04e0b 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,9 @@
+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.
+
2009-06-08 Dave Korn <dave.korn.cygwin@gmail.com>
PR gas/977
diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c
index a9b58d4fbba..639362f292a 100644
--- a/gas/dw2gencfi.c
+++ b/gas/dw2gencfi.c
@@ -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 *insn)
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,
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 38e2b480379..2d92d0575de 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,10 @@
+2009-06-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR gas/10255
+ * gas/cfi/cfi-common-7.d: New test.
+ * gas/cfi/cfi-common-7.s: New.
+ * gas/cfi/cfi.exp: Add cfi-common-7 test.
+
2009-06-08 Dave Korn <dave.korn.cygwin@gmail.com>
* gas/i386/jump.d: Tweak patterns to also match PE platform output.
diff --git a/gas/testsuite/gas/cfi/cfi-common-7.d b/gas/testsuite/gas/cfi/cfi-common-7.d
new file mode 100644
index 00000000000..d222f620e99
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-common-7.d
@@ -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
+#...
diff --git a/gas/testsuite/gas/cfi/cfi-common-7.s b/gas/testsuite/gas/cfi/cfi-common-7.s
new file mode 100644
index 00000000000..02deee080ce
--- /dev/null
+++ b/gas/testsuite/gas/cfi/cfi-common-7.s
@@ -0,0 +1,6 @@
+ .cfi_startproc simple
+ .skip 16
+ .cfi_def_cfa 0, 16
+ .skip 75031
+ .cfi_def_cfa 0, 64
+ .cfi_endproc
diff --git a/gas/testsuite/gas/cfi/cfi.exp b/gas/testsuite/gas/cfi/cfi.exp
index cd36f7fc0a2..0d4c419d0ef 100644
--- a/gas/testsuite/gas/cfi/cfi.exp
+++ b/gas/testsuite/gas/cfi/cfi.exp
@@ -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.