diff options
| author | Pietro Albini <pietro@pietroalbini.org> | 2018-07-03 11:31:09 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-07-03 11:31:09 +0200 |
| commit | 45cd78a4cd3f336ca0b00e97ce65363db340eacc (patch) | |
| tree | d6cffddc1cf81b4da1e3aff4b65ef3075dbef240 | |
| parent | f91b02b769ebf38032d6c707366c42cc50e1eb93 (diff) | |
| parent | 3779a4cb74d567153557036c4d86266bc8df196a (diff) | |
Rollup merge of #51980 - est31:columns, r=alexcrichton
Emit column info in debuginfo for non msvc like targets Fixes #42921 everywhere except MSVC. This mimics clang behaviour.
| -rw-r--r-- | src/librustc_codegen_llvm/debuginfo/source_loc.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/librustc_codegen_llvm/debuginfo/source_loc.rs b/src/librustc_codegen_llvm/debuginfo/source_loc.rs index eb37e7f931c..958d09413ed 100644 --- a/src/librustc_codegen_llvm/debuginfo/source_loc.rs +++ b/src/librustc_codegen_llvm/debuginfo/source_loc.rs @@ -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()) } |
