[1/7,gas] dwarf2: Fix calculation of line info offset

Message ID 20190310182158.23705-2-ceggers@gmx.de
State New
Headers show
Series
  • gas: Fixes for DWARF2 debug info with OCTETS_PER_BYTE>1
Related show

Commit Message

Christian Eggers March 10, 2019, 6:21 p.m.
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).

This change should not affect existing targets as all targets currently
using DWARF2 have 8 bit per byte.

Signed-off-by: Christian Eggers <ceggers@gmx.de>

---
 gas/ChangeLog   | 4 ++++
 gas/dwarf2dbg.c | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

-- 
2.16.4

Patch

diff --git a/gas/ChangeLog b/gas/ChangeLog
index 3508c5a038..688f562b5d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,7 @@ 
+2019-03-10  Christian Eggers  <ceggers@gmx.de>
+
+	* dwarf2dbg.c (dwarf2_emit_insn): Fix calculation of line info offset.
+
 2019-02-27  Matthew Malcomson  <matthew.malcomson@arm.com>
 
 	* testsuite/gas/aarch64/dotproduct.d: Use multiple "as" lines.
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
index ff7a743630..45d86a6ee3 100644
--- a/gas/dwarf2dbg.c
+++ b/gas/dwarf2dbg.c
@@ -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 ();
 }