dwarf2: Fix calculation of line info offset
authorChristian Eggers <ceggers@gmx.de>
Sun, 10 Mar 2019 18:21:52 +0000 (19:21 +0100)
committerAlan Modra <amodra@gmail.com>
Wed, 13 Mar 2019 02:39:03 +0000 (13:09 +1030)
The units of the value returned by "frag_now_fix()" and "size" do not
match. "frag_now_fix()" returns bytes (can be 8, 16 or 32 bit), while
"size" is octets (exactly 8 bit).

* dwarf2dbg.c (dwarf2_emit_insn): Fix calculation of line info offset.

gas/ChangeLog
gas/dwarf2dbg.c

index 2b8215b..174ff54 100644 (file)
@@ -1,3 +1,7 @@
+2019-03-13  Christian Eggers  <ceggers@gmx.de>
+
+       * dwarf2dbg.c (dwarf2_emit_insn): Fix calculation of line info offset.
+
 2019-03-12  Andreas Krebbel  <krebbel@linux.ibm.com>
 
        * testsuite/gas/s390/zarch-arch13.s: Adjust testcase to optable changes.
index ff7a743..45d86a6 100644 (file)
@@ -579,7 +579,7 @@ dwarf2_emit_insn (int size)
 
   dwarf2_where (&loc);
 
-  dwarf2_gen_line_info (frag_now_fix () - size, &loc);
+  dwarf2_gen_line_info ((frag_now_fix_octets () - size) / OCTETS_PER_BYTE, &loc);
   dwarf2_consume_line_info ();
 }