The debuginfo column numbers are 1-based. The value 0 indicates that no
column has been specified. Translate 0-based column numbers to 1-based
when emitting debug information.
parent_scope.scope_metadata.unwrap(),
file_metadata,
loc.line as c_uint,
- loc.col.to_usize() as c_uint,
+ // Loc column is 0-based while debug one is 1-based.
+ loc.col.to_usize() as c_uint + 1,
))
};
debug_context.scopes[scope] = DebugScope {
let col_used = if self.sess().target.target.options.is_like_msvc {
UNKNOWN_COLUMN_NUMBER
} else {
- loc.col.to_usize() as c_uint
+ // Loc column is 0-based while debug one is 1-based.
+ loc.col.to_usize() as c_uint + 1
};
unsafe {
--- /dev/null
+// Verify that emitted debuginfo column nubmers are 1-based. Regression test for issue #65437.
+//
+// ignore-windows
+// compile-flags: -C debuginfo=2
+
+fn main() {
+ unsafe {
+ // CHECK: call void @giraffe(), !dbg [[DBG:!.*]]
+ // CHECK: [[DBG]] = !DILocation(line: 10, column: 9
+ giraffe();
+ }
+}
+
+extern {
+ fn giraffe();
+}