File tree 2 files changed +18
-10
lines changed
2 files changed +18
-10
lines changed 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