2002-05-22 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 22 May 2002 16:15:18 +0000 (16:15 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 22 May 2002 16:15:18 +0000 (16:15 +0000)
* dwarf2dbg.c (dwarf2_emit_insn): Emit only one line symbol
for one .loc for compiler.

gas/ChangeLog
gas/dwarf2dbg.c

index 1547fa0..331a179 100644 (file)
@@ -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
index 115f6fa..608d7f6 100644 (file)
@@ -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