Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Detect panic strategy using rustc --print cfg #102134

Merged
merged 5 commits into from
Sep 23, 2022
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion src/test/ui/async-await/async-fn-size-moved-locals.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
//
// See issue #59123 for a full explanation.

// ignore-emscripten (sizes don't match)
// needs-unwind Size of Futures change on panic=abort
// run-pass

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
// error-pattern: thread 'main' panicked at '`async fn` resumed after panicking'
// edition:2018
// ignore-wasm no panic or subprocess support
// ignore-emscripten no panic or subprocess support
flba-eb marked this conversation as resolved.
Show resolved Hide resolved

#![feature(generators, generator_trait)]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// Check that partially moved from function parameters are dropped after the
// named bindings that move from them.

// ignore-wasm32-bare compiled with panic=abort by default

use std::{panic, cell::RefCell};

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/builtin-clone-unwind.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

#![allow(unused_variables)]
#![allow(unused_imports)]
// ignore-wasm32-bare compiled with panic=abort by default

// Test that builtin implementations of `Clone` cleanup everything
// in case of unwinding.
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/catch-unwind-bang.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

fn worker() -> ! {
panic!()
Expand Down
3 changes: 0 additions & 3 deletions src/test/ui/cfg/cfg-panic.rs
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
// build-pass
// compile-flags: -C panic=unwind
// needs-unwind
// ignore-emscripten no panic_unwind implementation
// ignore-wasm32 no panic_unwind implementation
// ignore-wasm64 no panic_unwind implementation


#[cfg(panic = "abort")]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

#![deny(rust_2021_incompatible_closure_captures)]
//~^ NOTE: the lint level is defined here
// ignore-wasm32-bare compiled with panic=abort by default
#![feature(fn_traits)]
#![feature(never_type)]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@

#![deny(rust_2021_incompatible_closure_captures)]
//~^ NOTE: the lint level is defined here
// ignore-wasm32-bare compiled with panic=abort by default
#![feature(fn_traits)]
#![feature(never_type)]

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
error: changes to closure capture in Rust 2021 will affect which traits the closure implements
--> $DIR/mir_calls_to_shims.rs:21:38
--> $DIR/mir_calls_to_shims.rs:20:38
|
LL | let result = panic::catch_unwind(move || {
| ^^^^^^^
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/drop/dynamic-drop-async.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
// run-pass
// needs-unwind
// edition:2018
// ignore-wasm32-bare compiled with panic=abort by default

#![allow(unused)]

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/drop/dynamic-drop.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

#![feature(generators, generator_trait)]

Expand Down
3 changes: 0 additions & 3 deletions src/test/ui/drop/repeat-drop.rs
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare no unwinding panic
// ignore-avr no unwinding panic
// ignore-nvptx64 no unwinding panic

static mut CHECK: usize = 0;

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/extern-flag/empty-extern-arg.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// compile-flags: --extern std=
// error-pattern: extern location for std does not exist
// needs-unwind since it affects the error output
// ignore-emscripten compiled with panic=abort, personality not required
flba-eb marked this conversation as resolved.
Show resolved Hide resolved

fn main() {}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// ignore-emscripten no threads support

// rust-lang/rust#64655: with panic=unwind, a panic from a subroutine
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// ignore-emscripten no threads support

// rust-lang/rust#64655: with panic=unwind, a panic from a subroutine
Expand Down
2 changes: 0 additions & 2 deletions src/test/ui/generator/panic-drops-resume.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

// run-pass
// needs-unwind
// ignore-wasm no unwind support
// ignore-emscripten no unwind support

#![feature(generators, generator_trait)]

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/generator/panic-drops.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// run-pass
// needs-unwind

// ignore-wasm32-bare compiled with panic=abort by default

#![feature(generators, generator_trait)]

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/generator/panic-safe.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// run-pass
// needs-unwind

// ignore-wasm32-bare compiled with panic=abort by default

#![feature(generators, generator_trait)]

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/generator/resume-after-return.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// run-pass
// needs-unwind

// ignore-wasm32-bare compiled with panic=abort by default

#![feature(generators, generator_trait)]

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/intrinsics/panic-uninitialized-zeroed.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// revisions: mir thir strict
// [thir]compile-flags: -Zthir-unsafeck
// [strict]compile-flags: -Zstrict-init-checks
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/issues/issue-14875.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

// Check that values are not leaked when a dtor panics (#14875)

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/issues/issue-29948.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

use std::panic;

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/issues/issue-43853.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

use std::panic;

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/issues/issue-46519.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// compile-flags:--test -O

// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

#[test]
#[should_panic(expected = "creating inhabited type")]
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/iterators/iter-count-overflow-debug.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// run-pass
// only-32bit too impatient for 2⁶⁴ items
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// compile-flags: -C debug_assertions=yes -C opt-level=3

use std::panic;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/iterators/iter-position-overflow-debug.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// run-pass
// only-32bit too impatient for 2⁶⁴ items
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// compile-flags: -C debug_assertions=yes -C opt-level=3

use std::panic;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/iterators/iter-step-overflow-debug.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// compile-flags: -C debug_assertions=yes

use std::panic;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/iterators/iter-sum-overflow-debug.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// compile-flags: -C debug_assertions=yes

use std::panic;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/iterators/iter-sum-overflow-overflow-checks.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// compile-flags: -C overflow-checks

use std::panic;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/macros/macro-comma-behavior-rpass.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
// compile-flags: --test -C debug_assertions=yes
// revisions: std core

// ignore-wasm32-bare compiled with panic=abort by default
#![cfg_attr(core, no_std)]

#[cfg(core)]
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/mir/mir_calls_to_shims.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

#![feature(fn_traits)]
#![feature(never_type)]
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/mir/mir_codegen_calls_diverging_drops.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// run-fail
// error-pattern:diverging_fn called
// error-pattern:0 dropped
// ignore-emscripten no processes
// needs-unwind this test checks that a destructor is called after panicking

struct Droppable(u8);
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/mir/mir_drop_order.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

use std::cell::RefCell;
use std::panic;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/mir/mir_drop_panics.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// needs-unwind
// error-pattern:panic 1
// error-pattern:drop 2
// ignore-emscripten no processes

struct Droppable(u32);
impl Drop for Droppable {
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/mir/mir_let_chains_drop_order.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

// See `mir_drop_order.rs` for more information

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// run-pass
// compile-flags: -C debug_assertions=yes
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// ignore-emscripten dies with an LLVM error

use std::panic;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/panic-handler/weak-lang-item.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// error-pattern: `#[panic_handler]` function required, but not found
// error-pattern: language item required, but not found: `eh_personality`
// needs-unwind since it affects the error output
// ignore-emscripten compiled with panic=abort, personality not required
flba-eb marked this conversation as resolved.
Show resolved Hide resolved

#![no_std]

Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/panic-handler/weak-lang-item.stderr
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
error[E0259]: the name `core` is defined multiple times
--> $DIR/weak-lang-item.rs:9:1
--> $DIR/weak-lang-item.rs:8:1
|
LL | extern crate core;
| ^^^^^^^^^^^^^^^^^^ `core` reimported here
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/panic-runtime/need-abort-got-unwind.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// needs-unwind
// error-pattern:is incompatible with this crate's strategy of `unwind`
// aux-build:needs-abort.rs
// ignore-wasm32-bare compiled with panic=abort by default

extern crate needs_abort;

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/panic-runtime/transitive-link-a-bunch.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
// aux-build:wants-panic-runtime-abort.rs
// aux-build:panic-runtime-lang-items.rs
// error-pattern: is not compiled with this crate's panic strategy `unwind`
// ignore-wasm32-bare compiled with panic=abort by default

#![no_std]
#![no_main]
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/panic-runtime/want-unwind-got-abort.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
// error-pattern:is not compiled with this crate's panic strategy `unwind`
// aux-build:panic-runtime-abort.rs
// aux-build:panic-runtime-lang-items.rs
// ignore-wasm32-bare compiled with panic=abort by default

#![no_std]
#![no_main]
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/panic-runtime/want-unwind-got-abort2.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
// aux-build:panic-runtime-abort.rs
// aux-build:wants-panic-runtime-abort.rs
// aux-build:panic-runtime-lang-items.rs
// ignore-wasm32-bare compiled with panic=abort by default

#![no_std]
#![no_main]
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/panic-while-printing.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-emscripten no subprocess support

#![feature(internal_output_capture)]

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/privacy/reachable-unnameable-items.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// run-pass
// ignore-wasm32-bare compiled with panic=abort by default
// needs-unwind
// aux-build:reachable-unnameable-items.rs

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/proc-macro/expand-with-a-macro.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// needs-unwind
// aux-build:expand-with-a-macro.rs

// ignore-wasm32-bare compiled with panic=abort by default

#![deny(warnings)]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
// run-pass
// needs-unwind

// ignore-wasm32-bare compiled with panic=abort by default

#![feature(test)]

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/rfc-2091-track-caller/std-panic-locations.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// revisions: default mir-opt
//[mir-opt] compile-flags: -Zmir-opt-level=4

Expand Down
1 change: 0 additions & 1 deletion src/test/ui/rfcs/rfc1857-drop-order.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

#![allow(dead_code, unreachable_code)]

Expand Down
3 changes: 0 additions & 3 deletions src/test/ui/runtime/rt-explody-panic-payloads.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
// needs-unwind
// ignore-emscripten no processes
// ignore-sgx no processes
// ignore-wasm32-bare no unwinding panic
// ignore-avr no unwinding panic
// ignore-nvptx64 no unwinding panic

use std::env;
use std::process::Command;
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/test-attrs/test-panic-while-printing.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// compile-flags:--test
// run-pass
// needs-unwind
// ignore-emscripten no subprocess support

use std::fmt;
use std::fmt::{Display, Formatter};
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/test-attrs/test-should-fail-good-message.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// run-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default
// compile-flags: --test
#[test]
#[should_panic(expected = "foo")]
Expand Down
1 change: 0 additions & 1 deletion src/test/ui/unwind-abis/ffi-unwind-calls-lint.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
// build-pass
// needs-unwind
// ignore-wasm32-bare compiled with panic=abort by default

#![feature(c_unwind)]
#![warn(ffi_unwind_calls)]
Expand Down
Loading