* dwarf2dbg.c (dwarf2_directive_loc): Emit duplicate .loc directives.

* gas/lns/lns-duplicate.d, gas/lns/lns-duplicate.s: New.
	* gas/lns/lns.exp: Run lns-duplicate.
This commit is contained in:
Daniel Jacobowitz 2007-08-29 20:03:43 +00:00
parent 5cee3fe66d
commit 851feff873
6 changed files with 31 additions and 0 deletions

View File

@ -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.

View File

@ -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 ();

View File

@ -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.

View File

@ -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

View File

@ -0,0 +1,5 @@
.loc_mark_labels 1
.file 1 "foo.s"
.loc 1 1 0
.loc 1 2 0
.Llabel:

View File

@ -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...