about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2018-12-02 18:09:26 +0100
committerbjorn3 <bjorn3@users.noreply.github.com>2019-03-29 17:17:12 +0100
commitab8f1527e485d0de49139ca7b9d42c320991a53b (patch)
tree563ca8e6f54fd7e422f113c3ea732ce94a45c655
parentf1fe9253e2b9ed072af6bc2d80feb6be0ffee8a5 (diff)
downloadrust-ab8f1527e485d0de49139ca7b9d42c320991a53b.tar.gz
rust-ab8f1527e485d0de49139ca7b9d42c320991a53b.zip
Remove internal mutability from source_locations_enabled
-rw-r--r--src/librustc_codegen_llvm/debuginfo/mod.rs6
-rw-r--r--src/librustc_codegen_llvm/debuginfo/source_loc.rs2
-rw-r--r--src/librustc_codegen_ssa/debuginfo.rs9
-rw-r--r--src/librustc_codegen_ssa/mir/mod.rs2
4 files changed, 9 insertions, 10 deletions
diff --git a/src/librustc_codegen_llvm/debuginfo/mod.rs b/src/librustc_codegen_llvm/debuginfo/mod.rs
index c0869bb889a..c262167d920 100644
--- a/src/librustc_codegen_llvm/debuginfo/mod.rs
+++ b/src/librustc_codegen_llvm/debuginfo/mod.rs
@@ -32,7 +32,7 @@ use rustc_codegen_ssa::debuginfo::{FunctionDebugContext, MirDebugScope, Variable
     VariableKind, FunctionDebugContextData};
 
 use libc::c_uint;
-use std::cell::{Cell, RefCell};
+use std::cell::RefCell;
 use std::ffi::CString;
 
 use syntax_pos::{self, Span, Pos};
@@ -158,7 +158,7 @@ impl DebugInfoBuilderMethods<'tcx> for Builder<'a, 'll, 'tcx> {
         variable_kind: VariableKind,
         span: Span,
     ) {
-        assert!(!dbg_context.get_ref(span).source_locations_enabled.get());
+        assert!(!dbg_context.get_ref(span).source_locations_enabled);
         let cx = self.cx();
 
         let file = span_start(cx, span).file;
@@ -327,7 +327,7 @@ impl DebugInfoMethods<'tcx> for CodegenCx<'ll, 'tcx> {
         // Initialize fn debug context (including scope map and namespace map)
         let fn_debug_context = FunctionDebugContextData {
             fn_metadata,
-            source_locations_enabled: Cell::new(false),
+            source_locations_enabled: false,
             defining_crate: def_id.krate,
         };
 
diff --git a/src/librustc_codegen_llvm/debuginfo/source_loc.rs b/src/librustc_codegen_llvm/debuginfo/source_loc.rs
index f7620e11c23..dec93a65dba 100644
--- a/src/librustc_codegen_llvm/debuginfo/source_loc.rs
+++ b/src/librustc_codegen_llvm/debuginfo/source_loc.rs
@@ -30,7 +30,7 @@ pub fn set_source_location<D>(
         FunctionDebugContext::RegularContext(ref data) => data
     };
 
-    let dbg_loc = if function_debug_context.source_locations_enabled.get() {
+    let dbg_loc = if function_debug_context.source_locations_enabled {
         debug!("set_source_location: {}", bx.sess().source_map().span_to_string(span));
         let loc = span_start(bx.cx(), span);
         InternalDebugLocation::new(scope.unwrap(), loc.line, loc.col.to_usize())
diff --git a/src/librustc_codegen_ssa/debuginfo.rs b/src/librustc_codegen_ssa/debuginfo.rs
index c4531ff90ae..aa7cdbed994 100644
--- a/src/librustc_codegen_ssa/debuginfo.rs
+++ b/src/librustc_codegen_ssa/debuginfo.rs
@@ -1,6 +1,5 @@
 use syntax_pos::{BytePos, Span};
 use rustc::hir::def_id::CrateNum;
-use std::cell::Cell;
 
 pub enum FunctionDebugContext<D> {
     RegularContext(FunctionDebugContextData<D>),
@@ -36,10 +35,10 @@ impl<D> FunctionDebugContext<D> {
 /// they are disabled when beginning to codegen a new function. This functions
 /// switches source location emitting on and must therefore be called before the
 /// first real statement/expression of the function is codegened.
-pub fn start_emitting_source_locations<D>(dbg_context: &FunctionDebugContext<D>) {
+pub fn start_emitting_source_locations<D>(dbg_context: &mut FunctionDebugContext<D>) {
     match *dbg_context {
-        FunctionDebugContext::RegularContext(ref data) => {
-            data.source_locations_enabled.set(true)
+        FunctionDebugContext::RegularContext(ref mut data) => {
+            data.source_locations_enabled = true;
         },
         _ => { /* safe to ignore */ }
     }
@@ -47,7 +46,7 @@ pub fn start_emitting_source_locations<D>(dbg_context: &FunctionDebugContext<D>)
 
 pub struct FunctionDebugContextData<D> {
     pub fn_metadata: D,
-    pub source_locations_enabled: Cell<bool>,
+    pub source_locations_enabled: bool,
     pub defining_crate: CrateNum,
 }
 
diff --git a/src/librustc_codegen_ssa/mir/mod.rs b/src/librustc_codegen_ssa/mir/mod.rs
index 62bbfa316b5..15597542d49 100644
--- a/src/librustc_codegen_ssa/mir/mod.rs
+++ b/src/librustc_codegen_ssa/mir/mod.rs
@@ -334,7 +334,7 @@ pub fn codegen_mir<'a, 'tcx: 'a, Bx: BuilderMethods<'a, 'tcx>>(
     // Up until here, IR instructions for this function have explicitly not been annotated with
     // source code location, so we don't step into call setup code. From here on, source location
     // emitting should be enabled.
-    debuginfo::start_emitting_source_locations(&fx.debug_context);
+    debuginfo::start_emitting_source_locations(&mut fx.debug_context);
 
     let rpo = traversal::reverse_postorder(&mir);
     let mut visited = BitSet::new_empty(mir.basic_blocks().len());