parse-c: null statements

This commit is contained in:
Andrew Kelley 2017-09-21 01:04:43 -04:00
parent eba45b0013
commit 0d91747502
2 changed files with 10 additions and 4 deletions

View File

@ -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;

View File

@ -460,4 +460,12 @@ pub fn addCases(cases: &tests.ParseCContext) {
\\ return (??foo).field;
\\}
);
cases.add("null statements",
\\void foo(void) {
\\ ;;;;;
\\}
,
\\export fn foo() {}
);
}