From 1fbfe7852a66c02f029e9020a962ba65edb4c59a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 9 Jun 2009 15:12:45 +0000 Subject: [PATCH] * 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/ChangeLog | 6 ++++++ gas/dw2gencfi.c | 5 +++-- gas/testsuite/ChangeLog | 7 +++++++ gas/testsuite/gas/cfi/cfi-common-7.d | 22 ++++++++++++++++++++++ gas/testsuite/gas/cfi/cfi-common-7.s | 6 ++++++ gas/testsuite/gas/cfi/cfi.exp | 1 + 6 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 gas/testsuite/gas/cfi/cfi-common-7.d create mode 100644 gas/testsuite/gas/cfi/cfi-common-7.s diff --git a/gas/ChangeLog b/gas/ChangeLog index 23ba55bcb4..8922aa04e0 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2009-06-09 Jakub Jelinek + + PR gas/10255 + * dw2gencfi.c (output_cfi_insn): Initialize fragment before rs_cfa + to DW_CFA_advance_loc4. + 2009-06-08 Dave Korn PR gas/977 diff --git a/gas/dw2gencfi.c b/gas/dw2gencfi.c index a9b58d4fbb..639362f292 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 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 38e2b48037..2d92d0575d 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2009-06-09 Jakub Jelinek + + 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 * 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 0000000000..d222f620e9 --- /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 0000000000..02deee080c --- /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 cd36f7fc0a..0d4c419d0e 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. -- 2.34.1