about summary refs log tree commit diff
path: root/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2022-02-13 00:14:52 +0000
committerbors <bors@rust-lang.org>2022-02-13 00:14:52 +0000
commit5c30d6568383916ce97cdf20ceb61a8b9e5bb5a8 (patch)
treef46d936ef6bc64bd6f032bca84e9711a0e572d7b /compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
parent3cfa4def7c87d571bd46d92fed608edf8fad236e (diff)
parent401307759aaf6f1e49c8a2c840a76ae41ec1f865 (diff)
downloadrust-5c30d6568383916ce97cdf20ceb61a8b9e5bb5a8.tar.gz
rust-5c30d6568383916ce97cdf20ceb61a8b9e5bb5a8.zip
Auto merge of #93670 - erikdesjardins:noundef, r=nikic
Apply noundef attribute to &T, &mut T, Box<T>, bool

This doesn't handle `char` because it's a bit awkward to distinguish it from `u32` at this point in codegen.

Note that this _does not_ change whether or not it is UB for `&`, `&mut`, or `Box` to point to undef. It only applies to the pointer itself, not the pointed-to memory.

Fixes (partially) #74378.

r? `@nikic` cc `@RalfJung`
Diffstat (limited to 'compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp')
-rw-r--r--compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
index d871290744f..fb9c5e6a527 100644
--- a/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
+++ b/compiler/rustc_llvm/llvm-wrapper/RustWrapper.cpp
@@ -224,6 +224,8 @@ static Attribute::AttrKind fromRust(LLVMRustAttribute Kind) {
     return Attribute::StackProtectStrong;
   case StackProtect:
     return Attribute::StackProtect;
+  case NoUndef:
+    return Attribute::NoUndef;
   }
   report_fatal_error("bad AttributeKind");
 }