diff options
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/dwarf2dbg.c | 19 |
2 files changed, 18 insertions, 6 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 1547fa0..331a179 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2002-05-22 H.J. Lu <hjl@gnu.org> + + * dwarf2dbg.c (dwarf2_emit_insn): Emit only one line symbol + for one .loc for compiler. + 2002-05-22 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> * config/tc-mips.c (macro): Relax warning, it's toot strict for diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c index 115f6fa..608d7f6 100644 --- a/gas/dwarf2dbg.c +++ b/gas/dwarf2dbg.c @@ -287,12 +287,19 @@ dwarf2_emit_insn (size) struct dwarf2_line_info loc; if (loc_directive_seen) - /* Use the last location established by a .loc directive, not - the value returned by dwarf2_where(). That calls as_where() - which will return either the logical input file name (foo.c) - or the physical input file name (foo.s) and not the file name - specified in the most recent .loc directive (eg foo.h). */ - loc = current; + { + /* Use the last location established by a .loc directive, not + the value returned by dwarf2_where(). That calls as_where() + which will return either the logical input file name (foo.c) + or the physical input file name (foo.s) and not the file name + specified in the most recent .loc directive (eg foo.h). */ + loc = current; + + /* Unless we generate DWARF2 debugging information for each + assembler line, we only emit one line symbol for one LOC. */ + if (debug_type != DEBUG_DWARF2) + loc_directive_seen = false; + } else if (debug_type != DEBUG_DWARF2) return; else |