authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-21 01:04:43-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-09-21 01:04:43-04:00
log0d9174750298574cd293869d255ae59e540d0ebb
tree0b77e04b2f62a7d757846db23e27f6a91f76a09b
parenteba45b0013bf06849ac55d99b4a20d44624c7016

parse-c: null statements


2 files changed, 10 insertions(+), 4 deletions(-)

src/parsec.cpp+2-4
...@@ -1811,7 +1811,8 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s...@@ -1811,7 +1811,8 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s
1811 return trans_if_statement(c, block, (IfStmt *)stmt);1811 return trans_if_statement(c, block, (IfStmt *)stmt);
1812 case Stmt::CallExprClass:1812 case Stmt::CallExprClass:
1813 return trans_call_expr(c, result_used, block, (CallExpr *)stmt);1813 return trans_call_expr(c, result_used, block, (CallExpr *)stmt);
18141814 case Stmt::NullStmtClass:
1815 return skip_add_to_block_node;
1815 case Stmt::MemberExprClass:1816 case Stmt::MemberExprClass:
1816 return trans_member_expr(c, block, (MemberExpr *)stmt);1817 return trans_member_expr(c, block, (MemberExpr *)stmt);
1817 case Stmt::CaseStmtClass:1818 case Stmt::CaseStmtClass:
...@@ -2181,9 +2182,6 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s...@@ -2181,9 +2182,6 @@ static AstNode *trans_stmt(Context *c, bool result_used, AstNode *block, Stmt *s
2181 case Stmt::MSDependentExistsStmtClass:2182 case Stmt::MSDependentExistsStmtClass:
2182 emit_warning(c, stmt->getLocStart(), "TODO handle C MSDependentExistsStmtClass");2183 emit_warning(c, stmt->getLocStart(), "TODO handle C MSDependentExistsStmtClass");
2183 return nullptr;2184 return nullptr;
2184 case Stmt::NullStmtClass:
2185 emit_warning(c, stmt->getLocStart(), "TODO handle C NullStmtClass");
2186 return nullptr;
2187 case Stmt::OMPAtomicDirectiveClass:2185 case Stmt::OMPAtomicDirectiveClass:
2188 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPAtomicDirectiveClass");2186 emit_warning(c, stmt->getLocStart(), "TODO handle C OMPAtomicDirectiveClass");
2189 return nullptr;2187 return nullptr;
test/parsec.zig+8
...@@ -460,4 +460,12 @@ pub fn addCases(cases: &tests.ParseCContext) {...@@ -460,4 +460,12 @@ pub fn addCases(cases: &tests.ParseCContext) {
460 \\ return (??foo).field;460 \\ return (??foo).field;
461 \\}461 \\}
462 );462 );
463
464 cases.add("null statements",
465 \\void foo(void) {
466 \\ ;;;;;
467 \\}
468 ,
469 \\export fn foo() {}
470 );
463}471}