Commit 0d91747502

Andrew Kelley <superjoe30@gmail.com>
2017-09-21 07:04:43
parse-c: null statements
1 parent eba45b0
Changed files (2)
src/parsec.cpp
@@ -1811,7 +1811,8 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s
             return trans_if_statement(c, block, (IfStmt *)stmt);
         case Stmt::CallExprClass:
             return trans_call_expr(c, result_used, block, (CallExpr *)stmt);
-
+        case Stmt::NullStmtClass:
+            return skip_add_to_block_node;
         case Stmt::MemberExprClass:
             return trans_member_expr(c, block, (MemberExpr *)stmt);
         case Stmt::CaseStmtClass:
@@ -2181,9 +2182,6 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s
         case Stmt::MSDependentExistsStmtClass:
             emit_warning(c, stmt->getLocStart(), "TODO handle C MSDependentExistsStmtClass");
             return nullptr;
-        case Stmt::NullStmtClass:
-            emit_warning(c, stmt->getLocStart(), "TODO handle C NullStmtClass");
-            return nullptr;
         case Stmt::OMPAtomicDirectiveClass:
             emit_warning(c, stmt->getLocStart(), "TODO handle C OMPAtomicDirectiveClass");
             return nullptr;
test/parsec.zig
@@ -460,4 +460,12 @@ pub fn addCases(cases: &tests.ParseCContext) {
         \\    return (??foo).field;
         \\}
     );
+
+    cases.add("null statements",
+        \\void foo(void) {
+        \\    ;;;;;
+        \\}
+    ,
+        \\export fn foo() {}
+    );
 }