Skip to content

Commit 5ce5126

Browse files
committed
Auto merge of #42737 - fhahn:rust-log-crash, r=michaelwoerister
rustc: Check if def_path_hash_to_def_id is populated before accessing. 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?
2 parents 8525eb8 + 8723f28 commit 5ce5126

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

src/librustc/dep_graph/dep_node.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -257,11 +257,11 @@ macro_rules! define_dep_nodes {
257257
pub fn extract_def_id(&self, tcx: TyCtxt) -> Option<DefId> {
258258
if self.kind.can_reconstruct_query_key() {
259259
let def_path_hash = DefPathHash(self.hash);
260-
tcx.def_path_hash_to_def_id
261-
.as_ref()
262-
.unwrap()
263-
.get(&def_path_hash)
264-
.cloned()
260+
if let Some(ref def_path_map) = tcx.def_path_hash_to_def_id.as_ref() {
261+
def_path_map.get(&def_path_hash).cloned()
262+
} else {
263+
None
264+
}
265265
} else {
266266
None
267267
}

src/test/run-pass/rustc-rust-log.rs

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
// Copyright 2017 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
// rustc-env:RUST_LOG=debug
12+
13+
fn main() {}

0 commit comments

Comments
 (0)