aboutsummaryrefslogtreecommitdiff
path: root/lib/Parse/Parser.cpp
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2008-08-05 01:35:17 +0000
committerDaniel Dunbar <daniel@zuster.org>2008-08-05 01:35:17 +0000
commita80f8749f2968d19595ca2544114932bf0ca2c11 (patch)
treefb1a27a8795fa3ac5c6b965cf38d1be74bfe49dc /lib/Parse/Parser.cpp
parent820b03398fdcc8f1f6c60ace55b708e311fa8ce4 (diff)
Add more Parser/Sema support for GCC asm-label extension.
- ActOnDeclarator now takes an additional parameter which is the AsmLabel if used. Its unfortunate that this bubbles up this high, but we cannot just lump it in as an attribute without mistakenly *accepting* it as an attribute. - The actual asm-label itself is, however, encoded as an AsmLabelAttr on the FunctionDecl. - Slightly improved parser error recovery on malformed asm-labels. - CodeGen support still missing... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54339 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/Parser.cpp')
-rw-r--r--lib/Parse/Parser.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/Parse/Parser.cpp b/lib/Parse/Parser.cpp
index ef07d3f08b..9eab4fda15 100644
--- a/lib/Parse/Parser.cpp
+++ b/lib/Parse/Parser.cpp
@@ -670,7 +670,11 @@ Parser::ExprResult Parser::ParseSimpleAsm() {
ExprResult Result = ParseAsmStringLiteral();
- MatchRHSPunctuation(tok::r_paren, Loc);
+ if (Result.isInvalid) {
+ SkipUntil(tok::r_paren);
+ } else {
+ MatchRHSPunctuation(tok::r_paren, Loc);
+ }
return Result;
}