diff --git a/src/parsec.cpp b/src/parsec.cpp index f559773497..af84ff3953 100644 --- a/src/parsec.cpp +++ b/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; diff --git a/test/parsec.zig b/test/parsec.zig index 45282e793a..aed5abada7 100644 --- a/test/parsec.zig +++ b/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() {} + ); }