Rollup merge of #89133 - FabianWolff:issue-79546, r=michaelwoerister

Fix ICE with `--cap-lints=allow` and `-Zfuel=...=0`

Fixes #79546.
This commit is contained in:
the8472 2021-09-22 19:03:24 +02:00 committed by GitHub
commit 3bdc894486
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -902,7 +902,12 @@ impl Session {
let mut fuel = self.optimization_fuel.lock();
ret = fuel.remaining != 0;
if fuel.remaining == 0 && !fuel.out_of_fuel {
self.warn(&format!("optimization-fuel-exhausted: {}", msg()));
if self.diagnostic().can_emit_warnings() {
// We only call `msg` in case we can actually emit warnings.
// Otherwise, this could cause a `delay_good_path_bug` to
// trigger (issue #79546).
self.warn(&format!("optimization-fuel-exhausted: {}", msg()));
}
fuel.out_of_fuel = true;
} else if fuel.remaining > 0 {
fuel.remaining -= 1;

View File

@ -0,0 +1,8 @@
// Regression test for the ICE described in #79546.
// compile-flags: --cap-lints=allow -Zfuel=issue79546=0
// check-pass
#![crate_name="issue79546"]
struct S;
fn main() {}