*** empty log message ***
[deliverable/binutils-gdb.git] / gas / dwarf2dbg.c
index 115f6fa8bca0ef4a6dace4a2c49de3663877f06c..94d9f7972ce65489f4ca855333255d632316e4d0 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
@@ -421,7 +428,10 @@ dwarf2_directive_loc (dummy)
 
 #ifndef NO_LISTING
   if (listing)
-    listing_source_line (line);
+    {
+      listing_source_file (files[filenum].filename);
+      listing_source_line (line);
+    }
 #endif
 }
 \f
This page took 0.023441 seconds and 4 git commands to generate.