diff --git a/gas/ChangeLog b/gas/ChangeLog index 35550ec0ce..383bae32f2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2011-09-08 Richard Sandiford + + PR gas/13167 + * dwarf2dbg.c (dwarf2_flush_pending_lines): Use symbol_temp_new_now. + 2011-09-05 Richard Sandiford PR gas/13024 diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c index e95f74866c..76f5e84f53 100644 --- a/gas/dwarf2dbg.c +++ b/gas/dwarf2dbg.c @@ -313,7 +313,7 @@ dwarf2_flush_pending_lines (symbolS *label) struct line_entry *e; if (!label) - label = symbol_temp_new (now_seg, 0, frag_now); + label = symbol_temp_new_now (); for (e = pending_lines; e; e = e->next) e->label = label; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 2a70ae7db6..3985ae639a 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2011-09-08 Richard Sandiford + + PR gas/13167 + * gas/ia64/pr13167.d, gas/ia64/pr13167.s: New test. + * gas/ia64/ia64.exp: Run it. + 2011-09-07 Andreas Schwab * gas/m68k/all.exp: Run "mode5" test also with -mcpu=5200. diff --git a/gas/testsuite/gas/ia64/ia64.exp b/gas/testsuite/gas/ia64/ia64.exp index 221b8d4794..669a1125cc 100644 --- a/gas/testsuite/gas/ia64/ia64.exp +++ b/gas/testsuite/gas/ia64/ia64.exp @@ -94,4 +94,7 @@ if [istarget "ia64-*"] then { run_dump_test "slotcount" } + if { [istarget "ia64-*-elf*"] || [istarget "ia64-*-linux*"] } { + run_dump_test "pr13167" + } } diff --git a/gas/testsuite/gas/ia64/pr13167.d b/gas/testsuite/gas/ia64/pr13167.d new file mode 100644 index 0000000000..d75c7e921d --- /dev/null +++ b/gas/testsuite/gas/ia64/pr13167.d @@ -0,0 +1,43 @@ +#readelf: -wl + +Raw dump of debug contents of section \.debug_line: + + Offset: 0x0 + Length: 51 + DWARF Version: 2 + Prologue Length: 26 + Minimum Instruction Length: 1 + Initial value of 'is_stmt': 1 + Line Base: -5 + Line Range: 14 + Opcode Base: 13 + + Opcodes: + Opcode 1 has 0 args + Opcode 2 has 1 args + Opcode 3 has 1 args + Opcode 4 has 1 args + Opcode 5 has 1 args + Opcode 6 has 0 args + Opcode 7 has 0 args + Opcode 8 has 0 args + Opcode 9 has 1 args + Opcode 10 has 0 args + Opcode 11 has 0 args + Opcode 12 has 1 args + + The Directory Table is empty\. + + The File Name Table: + Entry Dir Time Size Name + 1 0 0 0 x\.c + + Line Number Statements: + Extended opcode 2: set Address to 0x1 + Special opcode 8: advance Address by 0 to 0x1 and Line by 3 to 4 + Special opcode 216: advance Address by 15 to 0x10 and Line by 1 to 5 + Special opcode 228: advance Address by 16 to 0x20 and Line by -1 to 4 + Advance PC by 16 to 0x30 + Extended opcode 1: End of Sequence + + diff --git a/gas/testsuite/gas/ia64/pr13167.s b/gas/testsuite/gas/ia64/pr13167.s new file mode 100644 index 0000000000..920f11fbca --- /dev/null +++ b/gas/testsuite/gas/ia64/pr13167.s @@ -0,0 +1,9 @@ + .file 1 "x.c" + mov r1 = r35 + .loc 1 4 0 + nop 0 + mov r36 = r8 + br.call.sptk.many b0 = _U_Qfcnvff_quad_to_sgl# + .loc 1 5 0 + .loc 1 4 0 + mov r1 = r35