From 8723f287726073b43d3946838d930ce108d52988 Mon Sep 17 00:00:00 2001 From: Florian Hahn Date: Sun, 18 Jun 2017 16:58:54 +0100 Subject: [PATCH] rustc: Check if def_path_hash_to_def_id is populated before accessing it. Without this patch, there is an ICE when running rustc with RUST_LOG=debug. This patch updates extract_def_id to check if the map has been populated before accessing it. This fixes the problem, but maybe we do not need to compute the incremental hashes maps in the first place when we are not in incremental mode? --- src/librustc/dep_graph/dep_node.rs | 10 +++++----- src/test/run-pass/rustc-rust-log.rs | 13 +++++++++++++ 2 files changed, 18 insertions(+), 5 deletions(-) create mode 100644 src/test/run-pass/rustc-rust-log.rs diff --git a/src/librustc/dep_graph/dep_node.rs b/src/librustc/dep_graph/dep_node.rs index b061663148d..92efeb7fd86 100644 --- a/src/librustc/dep_graph/dep_node.rs +++ b/src/librustc/dep_graph/dep_node.rs @@ -257,11 +257,11 @@ macro_rules! define_dep_nodes { pub fn extract_def_id(&self, tcx: TyCtxt) -> Option { if self.kind.can_reconstruct_query_key() { let def_path_hash = DefPathHash(self.hash); - tcx.def_path_hash_to_def_id - .as_ref() - .unwrap() - .get(&def_path_hash) - .cloned() + if let Some(ref def_path_map) = tcx.def_path_hash_to_def_id.as_ref() { + def_path_map.get(&def_path_hash).cloned() + } else { + None + } } else { None } diff --git a/src/test/run-pass/rustc-rust-log.rs b/src/test/run-pass/rustc-rust-log.rs new file mode 100644 index 00000000000..629387d4cb1 --- /dev/null +++ b/src/test/run-pass/rustc-rust-log.rs @@ -0,0 +1,13 @@ +// Copyright 2017 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// rustc-env:RUST_LOG=debug + +fn main() {}