From 9384de77bbc8edf5e7c7c1a84e79cd29588cdee9 Mon Sep 17 00:00:00 2001 From: Michael Woerister Date: Sat, 14 Dec 2013 17:12:59 +0100 Subject: [PATCH] debuginfo: Add comment on is_local_to_unit parameter. --- src/librustc/middle/trans/debuginfo.rs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/librustc/middle/trans/debuginfo.rs b/src/librustc/middle/trans/debuginfo.rs index 2a1aada6d24b..0783d5b418f2 100644 --- a/src/librustc/middle/trans/debuginfo.rs +++ b/src/librustc/middle/trans/debuginfo.rs @@ -690,6 +690,13 @@ pub fn create_function_debug_context(cx: &mut CrateContext, // Clang sets this parameter to the opening brace of the function's block, so let's do this too. let scope_line = span_start(cx, top_level_block.span).line; + + // The is_local_to_unit flag indicates whether a function is local to the current compilation + // unit (i.e. if it is *static* in the C-sense). The *reachable* set should provide a good + // approximation of this, as it contains everything that might leak out of the current crate + // (by being externally visible or by being inlined into something externally visible). It might + // better to use the `exported_items` set from `driver::CrateAnalysis` in the future, but (atm) + // this set is not available in the translation pass. let is_local_to_unit = !cx.reachable.contains(&fn_ast_id); let fn_metadata = function_name.with_c_str(|function_name| {