Commit 2928b01afc

Andrew Kelley <superjoe30@gmail.com>
2018-11-06 02:03:16
fix broken cli test and translate-c: support no-op cast
1 parent 0a495aa
Changed files (2)
src/translate_c.cpp
@@ -1700,8 +1700,7 @@ static AstNode *trans_implicit_cast_expr(Context *c, TransScope *scope, const Im
             emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_LValueBitCast");
             return nullptr;
         case CK_NoOp:
-            emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_NoOp");
-            return nullptr;
+            return trans_expr(c, ResultUsedYes, scope, stmt->getSubExpr(), TransRValue);
         case CK_BaseToDerived:
             emit_warning(c, stmt->getBeginLoc(), "TODO handle C translation cast CK_BaseToDerived");
             return nullptr;
test/cli.zig
@@ -127,5 +127,6 @@ fn testGodboltApi(zig_exe: []const u8, dir_path: []const u8) error!void {
 
     const out_asm = try std.io.readFileAlloc(a, example_s_path);
     assertOrPanic(std.mem.indexOf(u8, out_asm, "square:") != null);
-    assertOrPanic(std.mem.indexOf(u8, out_asm, "imul\tedi, edi") != null);
+    assertOrPanic(std.mem.indexOf(u8, out_asm, "mov\teax, edi") != null);
+    assertOrPanic(std.mem.indexOf(u8, out_asm, "imul\teax, edi") != null);
 }