Skip to content

Commit 69f4bf7

Browse files
debuginfo: Use same behavior as Clang for calculating scope_line parameter when creating function DIEs.
1 parent 45e472a commit 69f4bf7

File tree

1 file changed

+2
-16
lines changed

1 file changed

+2
-16
lines changed

src/librustc/middle/trans/debuginfo.rs

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -651,7 +651,8 @@ pub fn create_function_debug_context(cx: &mut CrateContext,
651651
(function_name.clone(), file_metadata)
652652
};
653653

654-
let scope_line = get_scope_line(cx, top_level_block, loc.line);
654+
// Clang sets this parameter to the opening brace of the function's block, so let's do this too.
655+
let scope_line = span_start(cx, top_level_block.span).line;
655656

656657
let fn_metadata = function_name.with_c_str(|function_name| {
657658
linkage_name.with_c_str(|linkage_name| {
@@ -840,21 +841,6 @@ pub fn create_function_debug_context(cx: &mut CrateContext,
840841

841842
return create_DIArray(DIB(cx), template_params);
842843
}
843-
844-
fn get_scope_line(cx: &CrateContext,
845-
top_level_block: &ast::Block,
846-
default: uint)
847-
-> uint {
848-
match *top_level_block {
849-
ast::Block { stmts: ref statements, .. } if statements.len() > 0 => {
850-
span_start(cx, statements[0].span).line
851-
}
852-
ast::Block { expr: Some(@ref expr), .. } => {
853-
span_start(cx, expr.span).line
854-
}
855-
_ => default
856-
}
857-
}
858844
}
859845

860846
//=-------------------------------------------------------------------------------------------------

0 commit comments

Comments
 (0)