Commit f90d17cc4d

Andrew Kelley <andrew@ziglang.org>
2019-06-18 20:44:25
fix bitcast
1 parent 077f9df
Changed files (1)
src
src/ir.cpp
@@ -23195,14 +23195,19 @@ static IrInstruction *ir_analyze_ptr_cast(IrAnalyze *ira, IrInstruction *source_
             }
         }
 
-        IrInstruction *result = ir_const(ira, source_instr, dest_type);
+        IrInstruction *result;
+        if (ptr->value.data.x_ptr.mut == ConstPtrMutInfer) {
+            result = ir_build_ptr_cast_gen(ira, source_instr, dest_type, ptr, safety_check_on);
+        } else {
+            result = ir_const(ira, source_instr, dest_type);
+        }
         copy_const_val(&result->value, val, true);
         result->value.type = dest_type;
 
         // Keep the bigger alignment, it can only help-
         // unless the target is zero bits.
         if (src_align_bytes > dest_align_bytes && type_has_bits(dest_type)) {
-            result =  ir_align_cast(ira, result, src_align_bytes, false);
+            result = ir_align_cast(ira, result, src_align_bytes, false);
         }
 
         return result;