From 169a2216185e42ae31f83e580d4dfad1245ddda4 Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Fri, 16 Apr 2021 16:28:54 -0400 Subject: [PATCH] Mark `has_global_allocator` query as `eval_always` Fixes #84252 This query reads from untracked global state in `CStore`. --- compiler/rustc_middle/src/query/mod.rs | 2 ++ src/test/incremental/issue-84252-global-alloc.rs | 12 ++++++++++++ 2 files changed, 14 insertions(+) create mode 100644 src/test/incremental/issue-84252-global-alloc.rs diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs index bac69e282a521..3a44548471117 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -1055,6 +1055,8 @@ rustc_queries! { desc { "checking if the crate is_compiler_builtins" } } query has_global_allocator(_: CrateNum) -> bool { + // This query depends on untracked global state in CStore + eval_always fatal_cycle desc { "checking if the crate has_global_allocator" } } diff --git a/src/test/incremental/issue-84252-global-alloc.rs b/src/test/incremental/issue-84252-global-alloc.rs new file mode 100644 index 0000000000000..d2438df89ff5b --- /dev/null +++ b/src/test/incremental/issue-84252-global-alloc.rs @@ -0,0 +1,12 @@ +// revisions: cfail1 cfail2 +// build-pass + +#![crate_type="lib"] +#![crate_type="cdylib"] + +#[allow(unused_imports)] +use std::alloc::System; + +#[cfg(cfail1)] +#[global_allocator] +static ALLOC: System = System;