diff options
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/dwarf2dbg.c | 5 | ||||
-rw-r--r-- | gas/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/lns/lns-duplicate.d | 10 | ||||
-rw-r--r-- | gas/testsuite/gas/lns/lns-duplicate.s | 5 | ||||
-rw-r--r-- | gas/testsuite/gas/lns/lns.exp | 2 |
6 files changed, 31 insertions, 0 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 21aaf0d..271643f 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,7 @@ +2007-08-29 Daniel Jacobowitz <dan@codesourcery.com> + + * dwarf2dbg.c (dwarf2_directive_loc): Emit duplicate .loc directives. + 2007-08-28 Daniel Jacobowitz <dan@codesourcery.com> * doc/c-arc.texi: Fix typo. diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c index 93b5f48..39e434c 100644 --- a/gas/dwarf2dbg.c +++ b/gas/dwarf2dbg.c @@ -570,6 +570,11 @@ dwarf2_directive_loc (int dummy ATTRIBUTE_UNUSED) { offsetT filenum, line; + /* If we see two .loc directives in a row, force the first one to be + output now. */ + if (loc_directive_seen) + dwarf2_emit_insn (0); + filenum = get_absolute_expression (); SKIP_WHITESPACE (); line = get_absolute_expression (); diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index 8127ac8..39c07f0 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2007-08-29 Daniel Jacobowitz <dan@codesourcery.com> + + * gas/lns/lns-duplicate.d, gas/lns/lns-duplicate.s: New. + * gas/lns/lns.exp: Run lns-duplicate. + 2007-08-29 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/i386.exp: Run x86-64-reg and x86-64-reg-intel. diff --git a/gas/testsuite/gas/lns/lns-duplicate.d b/gas/testsuite/gas/lns/lns-duplicate.d new file mode 100644 index 0000000..badf1a2 --- /dev/null +++ b/gas/testsuite/gas/lns/lns-duplicate.d @@ -0,0 +1,10 @@ +#readelf: -wl +#name: lns-duplicate +Dump of debug contents of section \.debug_line: +#... + Line Number Statements: + Extended opcode 2: set Address to .* + Copy + Set basic block + .* by 1 to 2 +#pass diff --git a/gas/testsuite/gas/lns/lns-duplicate.s b/gas/testsuite/gas/lns/lns-duplicate.s new file mode 100644 index 0000000..9fea2fe --- /dev/null +++ b/gas/testsuite/gas/lns/lns-duplicate.s @@ -0,0 +1,5 @@ + .loc_mark_labels 1 + .file 1 "foo.s" + .loc 1 1 0 + .loc 1 2 0 +.Llabel: diff --git a/gas/testsuite/gas/lns/lns.exp b/gas/testsuite/gas/lns/lns.exp index 2373290..a192361 100644 --- a/gas/testsuite/gas/lns/lns.exp +++ b/gas/testsuite/gas/lns/lns.exp @@ -4,6 +4,8 @@ if ![is_elf_format] then { run_list_test "lns-diag-1" "" +run_dump_test "lns-duplicate" + # ??? Won't work on targets that don't have a bare "nop" insn. # Perhaps we could arrange for an include file or something that # defined a macro... |