authorgravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-11-27 18:47:49+02:00
committergravatar for git@vexu.euVeikka Tuominen <git@vexu.eu> 2022-11-30 15:14:33+02:00
log4def9c4a9b384a5980086825bcb849a88438912b
treebf8269d98e362096dfe313c300b3542d80c6993a
parent6310186d52ae4e7bccf40326a98916695192b543

cbe: operand of address of operator must be an lvalue


2 files changed, 9 insertions(+), 3 deletions(-)

src/codegen/c.zig+9-1
......@@ -3788,10 +3788,18 @@ fn airBitcast(f: *Function, inst: Air.Inst.Index) !CValue {
37883788 const local = try f.allocLocal(inst_ty, .Mut);
37893789 try writer.writeAll(";\n");
37903790
3791 const operand_lval = if (operand == .constant) blk: {
3792 const operand_local = try f.allocLocal(f.air.typeOf(ty_op.operand), .Const);
3793 try writer.writeAll(" = ");
3794 try f.writeCValue(writer, operand, .Initializer);
3795 try writer.writeAll(";\n");
3796 break :blk operand_local;
3797 } else operand;
3798
37913799 try writer.writeAll("memcpy(&");
37923800 try f.writeCValue(writer, local, .Other);
37933801 try writer.writeAll(", &");
3794 try f.writeCValue(writer, operand, .Other);
3802 try f.writeCValue(writer, operand_lval, .Other);
37953803 try writer.writeAll(", sizeof(");
37963804 try f.renderTypecast(writer, inst_ty);
37973805 try writer.writeAll("));\n");
test/behavior/floatop.zig-2
......@@ -798,7 +798,6 @@ test "comptime fixed-width float non-zero divided by zero produces signed Inf" {
798798 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
799799 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
800800 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
801 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
802801
803802 inline for (.{ f16, f32, f64, f80, f128 }) |F| {
804803 const pos = @as(F, 1) / @as(F, 0);
......@@ -897,7 +896,6 @@ test "nan negation f80" {
897896 if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO
898897 if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO
899898 if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO
900 if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO
901899
902900 const nan_comptime = comptime math.nan(f80);
903901 const neg_nan_comptime = -nan_comptime;