about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <17426603+bjorn3@users.noreply.github.com>2024-12-18 17:07:48 +0000
committerbjorn3 <17426603+bjorn3@users.noreply.github.com>2024-12-18 17:07:56 +0000
commit9f50fa7e21259b8753c1cdb19ada07a9b2f57514 (patch)
tree8ac8edf622e88bf6786943de3dd3a0327eed5adb
parent67c241e33b00cc33051984925910cb64a9b98779 (diff)
downloadrust-9f50fa7e21259b8753c1cdb19ada07a9b2f57514.tar.gz
rust-9f50fa7e21259b8753c1cdb19ada07a9b2f57514.zip
Ensure user trap code 0 is never used
Cranelift will return None from TrapCode::user(0).

Fixes rust-lang/rustc_codegen_cranelift#1548
-rw-r--r--src/inline_asm.rs2
-rw-r--r--src/intrinsics/simd.rs2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/inline_asm.rs b/src/inline_asm.rs
index 33726056cc1..6ff75f75d3b 100644
--- a/src/inline_asm.rs
+++ b/src/inline_asm.rs
@@ -136,7 +136,7 @@ pub(crate) fn codegen_inline_asm_terminator<'tcx>(
             fx.bcx.ins().jump(destination_block, &[]);
         }
         None => {
-            fx.bcx.ins().trap(TrapCode::user(0 /* unreachable */).unwrap());
+            fx.bcx.ins().trap(TrapCode::user(1 /* unreachable */).unwrap());
         }
     }
 }
diff --git a/src/intrinsics/simd.rs b/src/intrinsics/simd.rs
index e0ebe30752a..6d71b8e8aba 100644
--- a/src/intrinsics/simd.rs
+++ b/src/intrinsics/simd.rs
@@ -1136,7 +1136,7 @@ pub(super) fn codegen_simd_intrinsic_call<'tcx>(
         _ => {
             fx.tcx.dcx().span_err(span, format!("Unknown SIMD intrinsic {}", intrinsic));
             // Prevent verifier error
-            fx.bcx.ins().trap(TrapCode::user(0 /* unreachable */).unwrap());
+            fx.bcx.ins().trap(TrapCode::user(1 /* unreachable */).unwrap());
             return;
         }
     }