Pin panic-in-drop=abort test to old pass manager
This commit is contained in:
parent
31834434a0
commit
51203dc1c4
1 changed files with 8 additions and 1 deletions
|
@ -1,8 +1,15 @@
|
|||
// compile-flags: -Z panic-in-drop=abort -O
|
||||
// compile-flags: -Z panic-in-drop=abort -O -Z new-llvm-pass-manager=no
|
||||
|
||||
// Ensure that unwinding code paths are eliminated from the output after
|
||||
// optimization.
|
||||
|
||||
// This test uses -Z new-llvm-pass-manager=no, because the expected optimization does not happen
|
||||
// on targets using SEH exceptions (i.e. MSVC) anymore. The core issue is that Rust promises that
|
||||
// the drop_in_place() function can't unwind, but implements it in a way that *can*, because we
|
||||
// currently go out of our way to allow longjmps, which also use the unwinding mechanism on MSVC
|
||||
// targets. We should either forbid longjmps, or not assume nounwind, making this optimization
|
||||
// incompatible with the current behavior of running cleanuppads on longjmp unwinding.
|
||||
|
||||
// CHECK-NOT: {{(call|invoke).*}}should_not_appear_in_output
|
||||
|
||||
#![crate_type = "lib"]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue