File tree 5 files changed +37
-22
lines changed
5 files changed +37
-22
lines changed Original file line number Diff line number Diff line change 1
1
// Error, the linked empty library is `no_std` and doesn't provide a panic handler.
2
2
3
- //@ dont-require-annotations: ERROR
4
3
//@ dont-check-compiler-stderr
4
+
5
+ // NOTE: fix a panic strategy to prevent differing errors subject to target's default panic strategy
6
+ // which changes between targets. The specific panic strategy doesn't matter for test intention.
7
+ //@ compile-flags: -Cpanic=abort
8
+
5
9
//@ aux-build: cfg_false_lib_no_std_before.rs
6
10
7
11
#![ no_std]
@@ -11,6 +15,3 @@ extern crate cfg_false_lib_no_std_before as _;
11
15
fn main ( ) { }
12
16
13
17
//~? ERROR `#[panic_handler]` function required, but not found
14
- // FIXME: This error is target-dependent, could be served by some "optional error" annotation
15
- // instead of `dont-require-annotations`.
16
- //FIXME~? ERROR unwinding panics are not supported without std
Original file line number Diff line number Diff line change 1
- //FIXME~ ERROR values of the type `[u8; usize::MAX]` are too big for the target architecture
1
+ // ignore-tidy-linelength
2
+ // FIXME(#140620)~ ERROR values of the type `[u8; usize::MAX]` are too big for the target architecture
3
+
2
4
// Make sure the compiler does not ICE when trying to generate the debuginfo name of a type that
3
5
// causes a layout error.
4
6
// This version of the test already ICE'd before the commit that introduce the ICE described in
@@ -18,5 +20,5 @@ pub fn foo() -> usize {
18
20
std:: mem:: size_of :: < Foo < u8 > > ( )
19
21
}
20
22
21
- // FIXME: the error is reported on different lines on different targets
22
- //FIXME~? ERROR values of the type `[u8; usize::MAX]` are too big for the target architecture
23
+ // FIXME(#140620) : the error is reported on different lines on different targets
24
+ //FIXME(#140620) ~? ERROR values of the type `[u8; usize::MAX]` are too big for the target architecture
Original file line number Diff line number Diff line change 1
1
// ignore-tidy-linelength
2
2
//@ build-fail
3
- //@ dont-require-annotations: ERROR
4
3
//@ dont-check-compiler-stderr
5
4
//@ aux-build:panic-runtime-unwind.rs
6
5
//@ aux-build:panic-runtime-unwind2.rs
7
6
//@ aux-build:panic-runtime-lang-items.rs
8
7
8
+ // NOTE: there can be additional errors regarding trying to mix this crate if the precompiled target
9
+ // (such as `wasm32-unknown-unknown` currently unconditionally defaulting to panic=abort) panic
10
+ // strategy differs to abort, then involving a potentially-unwinding `panic_runtime_unwind` that
11
+ // uses a different panic strategy. These errors are important but not to the test intention, which
12
+ // is to check that trying to bring two panic runtimes (`panic_runtime_unwind`) and
13
+ // (`panic_runtime_unwind2`) is prohibited. As such, the additional errors are not checked in this
14
+ // test.
15
+ //@ dont-require-annotations: ERROR
16
+
9
17
#![ no_std]
10
18
#![ no_main]
11
19
@@ -16,7 +24,3 @@ extern crate panic_runtime_lang_items;
16
24
fn main ( ) { }
17
25
18
26
//~? ERROR cannot link together two panic runtimes: panic_runtime_unwind and panic_runtime_unwind2
19
- // FIXME: These errors are target-dependent, could be served by some "optional error" annotation
20
- // instead of `dont-require-annotations`.
21
- //FIXME~? ERROR the linked panic runtime `panic_runtime_unwind2` is not compiled with this crate's panic strategy `abort`
22
- //FIXME~? ERROR the crate `panic_runtime_unwind` requires panic strategy `unwind` which is incompatible with this crate's strategy of `abort`
Original file line number Diff line number Diff line change 1
1
// ignore-tidy-linelength
2
2
//@ build-fail
3
- //@ dont-require-annotations: ERROR
4
3
//@ dont-check-compiler-stderr
5
4
//@ aux-build:panic-runtime-unwind.rs
6
5
//@ compile-flags:-C panic=abort
7
6
7
+ // NOTE: depending on the target's default panic strategy, there can be additional errors that
8
+ // complain about linking two panic runtimes (e.g. precompiled `panic_unwind` if target default
9
+ // panic strategy is unwind, in addition to `panic_runtime_unwind`). These additional errors will
10
+ // not be observed on targets whose default panic strategy is abort, where `panic_abort` is linked
11
+ // in instead.
12
+ //@ dont-require-annotations: ERROR
13
+
8
14
extern crate panic_runtime_unwind;
9
15
10
16
fn main ( ) { }
11
17
12
18
//~? ERROR the linked panic runtime `panic_runtime_unwind` is not compiled with this crate's panic strategy `abort`
13
- // FIXME: These errors are target-dependent, could be served by some "optional error" annotation
14
- // instead of `dont-require-annotations`.
15
- //FIXME~? ERROR cannot link together two panic runtimes: panic_unwind and panic_runtime_unwind
16
- //FIXME~? ERROR the crate `panic_unwind` requires panic strategy `unwind` which is incompatible with this crate's strategy of `abort`
Original file line number Diff line number Diff line change 1
1
// ignore-tidy-linelength
2
2
//@ build-fail
3
- //@ dont-require-annotations: ERROR
4
3
//@ dont-check-compiler-stderr
5
4
//@ aux-build:panic-runtime-unwind.rs
6
5
//@ aux-build:wants-panic-runtime-unwind.rs
7
6
//@ compile-flags:-C panic=abort
8
7
8
+ // Like `want-abort-got-unwind.rs`, this version checks that if the root binary wants abort panic
9
+ // runtime, that the compiler rejects a setup where a dependency crate in the dependency DAG
10
+ // transitively provides an unwind panic runtime (which also is built with `-Cpanic=unwind`, making
11
+ // that potentially-unwinding).
12
+
13
+ // NOTE: similar to `want-abort-got-unwind.rs`, there can be additional errors if the target default
14
+ // panic strategy is unwind, because then the precompiled `panic_unwind` would also be linked in,
15
+ // duplicating `panic_runtime_unwind` (transitively). But those additional errors are not important
16
+ // to test intention.
17
+ //@ dont-require-annotations: ERROR
18
+
9
19
extern crate wants_panic_runtime_unwind;
10
20
11
21
fn main ( ) { }
12
22
13
23
//~? ERROR the linked panic runtime `panic_runtime_unwind` is not compiled with this crate's panic strategy `abort`
14
- // FIXME: These errors are target-dependent, could be served by some "optional error" annotation
15
- // instead of `dont-require-annotations`.
16
- //FIXME~? ERROR cannot link together two panic runtimes: panic_unwind and panic_runtime_unwind
17
- //FIXME~? ERROR the crate `panic_unwind` requires panic strategy `unwind` which is incompatible with this crate's strategy of `abort`
You can’t perform that action at this time.
0 commit comments