2009-06-09 Jakub Jelinek 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 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