Commit b6c8fead00

Andrew Kelley <andrew@ziglang.org>
2020-01-10 01:29:51
fix regression in global const alignment
1 parent fbcee58
Changed files (3)
src/analyze.cpp
@@ -9303,7 +9303,9 @@ bool type_has_optional_repr(ZigType *ty) {
 }
 
 void copy_const_val(ZigValue *dest, ZigValue *src) {
+    uint32_t prev_align = dest->llvm_align;
     memcpy(dest, src, sizeof(ZigValue));
+    dest->llvm_align = prev_align;
     if (src->special != ConstValSpecialStatic)
         return;
     dest->parent.id = ConstParentIdNone;
src/ir.cpp
@@ -17052,6 +17052,7 @@ static IrInstruction *ir_analyze_alloca(IrAnalyze *ira, IrInstruction *source_in
 
     ZigValue *pointee = create_const_vals(1);
     pointee->special = ConstValSpecialUndef;
+    pointee->llvm_align = align;
 
     IrInstructionAllocaGen *result = ir_build_alloca_gen(ira, source_inst, align, name_hint);
     result->base.value->special = ConstValSpecialStatic;
test/stage1/behavior.zig
@@ -24,7 +24,7 @@ comptime {
     _ = @import("behavior/bugs/1500.zig");
     _ = @import("behavior/bugs/1607.zig");
     _ = @import("behavior/bugs/1735.zig");
-    //_ = @import("behavior/bugs/1741.zig");
+    _ = @import("behavior/bugs/1741.zig");
     _ = @import("behavior/bugs/1851.zig");
     _ = @import("behavior/bugs/1914.zig");
     _ = @import("behavior/bugs/2006.zig");