Closed
Description
Originally from rust-lang/rust#43095 the reason this doesn't "just work" is because of rust-lang/rust#43151 and rust-lang/rust#43150. We should find a workaround in this repository for avoiding those bugs and check this into the test suite:
diff --git a/ci/run.sh b/ci/run.sh
index 9a32ee9..1b2cd7f 100755
--- a/ci/run.sh
+++ b/ci/run.sh
@@ -116,7 +116,7 @@ if [ -z "$DEBUG_LTO_BUILD_DOESNT_WORK" ]; then
RUSTFLAGS="-C debug-assertions=no" \
$cargo rustc --features "$INTRINSICS_FEATURES" --target $1 --example intrinsics -- -C lto
fi
$cargo rustc --features "$INTRINSICS_FEATURES" --target $1 --example intrinsics --release -- -C lto
# Ensure no references to a panicking function
for rlib in $(echo $path); do
@@ -126,6 +126,12 @@ for rlib in $(echo $path); do
if test $? = 0; then
exit 1
fi
+
+ $PREFIX$NM -u $rlib 2>&1 | grep unwind_resume
+
+ if test $? = 0; then
+ exit 1
+ fi
set -ex
done
One possible workaround may be to make these methods (I think the Int::aborting_*
methods) generic with a random type parameter to force codegen to not generate landign pads here. Another "fix" would to actually fix these bugs upstream!
Metadata
Metadata
Assignees
Labels
No labels