zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

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:
Msrc/codegen.cpp | 8++++++--
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); }