about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEduard-Mihai Burtescu <edy.burt@gmail.com>2020-02-03 12:14:05 +0200
committerEduard-Mihai Burtescu <edy.burt@gmail.com>2020-02-03 12:14:22 +0200
commite35dfad5b8cfe12555c6b7459c75d4b78280bfb2 (patch)
tree7a455cf993d68d7e8e8299bf3c7f3c9ab906649c
parentf4b74773c730e7afb6e81aa90df3ddade7442b60 (diff)
downloadrust-e35dfad5b8cfe12555c6b7459c75d4b78280bfb2.tar.gz
rust-e35dfad5b8cfe12555c6b7459c75d4b78280bfb2.zip
rustc_codegen_llvm: avoid redundant calls to span_start.
-rw-r--r--src/librustc_codegen_llvm/debuginfo/mod.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/librustc_codegen_llvm/debuginfo/mod.rs b/src/librustc_codegen_llvm/debuginfo/mod.rs
index 87af9b9c88d..c4a52a73e25 100644
--- a/src/librustc_codegen_llvm/debuginfo/mod.rs
+++ b/src/librustc_codegen_llvm/debuginfo/mod.rs
@@ -290,7 +290,8 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
         // Get the linkage_name, which is just the symbol name
         let linkage_name = mangled_name_of_instance(self, instance);
 
-        let scope_line = span_start(self, span).line;
+        // FIXME(eddyb) does this need to be separate from `loc.line` for some reason?
+        let scope_line = loc.line;
 
         let function_name = CString::new(name).unwrap();
         let linkage_name = SmallCStr::new(&linkage_name.name.as_str());
@@ -547,10 +548,9 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
         variable_kind: VariableKind,
         span: Span,
     ) -> &'ll DIVariable {
-        let file = span_start(self, span).file;
-        let file_metadata = file_metadata(self, &file.name, dbg_context.defining_crate);
-
         let loc = span_start(self, span);
+        let file_metadata = file_metadata(self, &loc.file.name, dbg_context.defining_crate);
+
         let type_metadata = type_metadata(self, variable_type, span);
 
         let (argument_index, dwarf_tag) = match variable_kind {