diff options
author | Serge Pavlov <sepavloff@gmail.com> | 2013-12-04 03:51:59 +0000 |
---|---|---|
committer | Serge Pavlov <sepavloff@gmail.com> | 2013-12-04 03:51:59 +0000 |
commit | f79bd5cb9db30abc7a153d14297b4c8bf46f6f86 (patch) | |
tree | 90a543288f72dc8548831e2b74852ceca2cd24ee /clang/lib/Parse/ParseStmt.cpp | |
parent | cb7e5df97efa0d5cbe6e51902cd619bec1516f16 (diff) | |
download | bcm5719-llvm-f79bd5cb9db30abc7a153d14297b4c8bf46f6f86.tar.gz bcm5719-llvm-f79bd5cb9db30abc7a153d14297b4c8bf46f6f86.zip |
Fix error recovery in return statement.
This patch fixes PR16989.
llvm-svn: 196352
Diffstat (limited to 'clang/lib/Parse/ParseStmt.cpp')
-rw-r--r-- | clang/lib/Parse/ParseStmt.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Parse/ParseStmt.cpp b/clang/lib/Parse/ParseStmt.cpp index 35c71889c1c..8026f78e80d 100644 --- a/clang/lib/Parse/ParseStmt.cpp +++ b/clang/lib/Parse/ParseStmt.cpp @@ -1730,8 +1730,8 @@ StmtResult Parser::ParseReturnStatement() { << R.get()->getSourceRange(); } else R = ParseExpression(); - if (R.isInvalid()) { // Skip to the semicolon, but don't consume it. - SkipUntil(tok::semi, StopBeforeMatch); + if (R.isInvalid()) { + SkipUntil(tok::r_brace, StopAtSemi | StopBeforeMatch); return StmtError(); } } |