diff options
| author | Chris Lattner <sabre@nondot.org> | 2008-11-13 18:52:53 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2008-11-13 18:52:53 +0000 |
| commit | 0046de17e545aa5442ee4a151249008c3043d4a7 (patch) | |
| tree | 1e471c83d24200ba9a8322e8dc4ff23fb12543b6 /llvm/lib/CodeGen/PreAllocSplitting.cpp | |
| parent | f3e388d1bf3f6305b6e8282f8c84dd87b051d24c (diff) | |
| download | bcm5719-llvm-0046de17e545aa5442ee4a151249008c3043d4a7.tar.gz bcm5719-llvm-0046de17e545aa5442ee4a151249008c3043d4a7.zip | |
Fix a couple of suboptimalities in error recovery.
1. In the top level of ParseStatementOrDeclaration, don't eat a } if we
just parsed a statement if it list there. Also, don't even bother
emitting an error about a missing semicolon if the statement had a
bug (an rbrace is fine).
2. In do/while parsing, don't require a 'while' to be present if the do
body didn't parse.
This allows us to generate a clean diagnostic for this code:
t.c:1:22: error: expected expression
void foo (void) { do . while (0); }
^
Thanks to Neil for pointing this out.
llvm-svn: 59256
Diffstat (limited to 'llvm/lib/CodeGen/PreAllocSplitting.cpp')
0 files changed, 0 insertions, 0 deletions

