Skip to content

Commit

Permalink
Rollup merge of rust-lang#51980 - est31:columns, r=alexcrichton
Browse files Browse the repository at this point in the history
Emit column info in debuginfo for non msvc like targets

Fixes rust-lang#42921 everywhere except MSVC. This mimics clang behaviour.
  • Loading branch information
pietroalbini authored Jul 3, 2018
2 parents f91b02b + 3779a4c commit 45cd78a
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions src/librustc_codegen_llvm/debuginfo/source_loc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -81,16 +81,22 @@ impl InternalDebugLocation {

pub fn set_debug_location(bx: &Builder, debug_location: InternalDebugLocation) {
let metadata_node = match debug_location {
KnownLocation { scope, line, .. } => {
// Always set the column to zero like Clang and GCC
let col = UNKNOWN_COLUMN_NUMBER;
KnownLocation { scope, line, col } => {
// For MSVC, set the column number to zero.
// Otherwise, emit it. This mimics clang behaviour.
// See discussion in https://github.com/rust-lang/rust/issues/42921
let col_used = if bx.cx.sess().target.target.options.is_like_msvc {
UNKNOWN_COLUMN_NUMBER
} else {
col as c_uint
};
debug!("setting debug location to {} {}", line, col);

unsafe {
llvm::LLVMRustDIBuilderCreateDebugLocation(
debug_context(bx.cx).llcontext,
line as c_uint,
col as c_uint,
col_used,
scope,
ptr::null_mut())
}
Expand Down

0 comments on commit 45cd78a

Please sign in to comment.