commit 46b57748a52c32b973903166d40c7ebee53d88c5 (tree)
parent 02f688d710312a43a56a3a24b769778a5aafc5da
Author: Andrew Kelley <andrew@ziglang.org>
Date: Wed, 17 Jun 2020 06:07:53 -0400
stage1: stop emitting memset to undefined when safety is off
Diffstat:
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/codegen.cpp b/src/codegen.cpp
@@ -5583,8 +5583,12 @@ static LLVMValueRef ir_render_memset(CodeGen *g, IrExecutableGen *executable, Ir
bool val_is_undef = value_is_all_undef(g, instruction->byte->value);
LLVMValueRef fill_char;
- if (val_is_undef && ir_want_runtime_safety_scope(g, instruction->base.base.scope)) {
- fill_char = LLVMConstInt(LLVMInt8Type(), 0xaa, false);
+ if (val_is_undef) {
+ if (ir_want_runtime_safety_scope(g, instruction->base.base.scope)) {
+ fill_char = LLVMConstInt(LLVMInt8Type(), 0xaa, false);
+ } else {
+ return nullptr;
+ }
} else {
fill_char = ir_llvm_value(g, instruction->byte);
}