summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-02-07 08:38:28 +0000
committerDouglas Gregor <dgregor@apple.com>2010-02-07 08:38:28 +0000
commitb65a913c35de73c154cf7bd935e3df31c480614b (patch)
tree88ac6c03227829ad7c6e5c91f7190998ae4df873 /clang/lib/Parse
parente83b3aca0bebc2f68bff5c9a02aa78e77f8b1c06 (diff)
downloadbcm5719-llvm-b65a913c35de73c154cf7bd935e3df31c480614b.tar.gz
bcm5719-llvm-b65a913c35de73c154cf7bd935e3df31c480614b.zip
Fix assertion failure when parsing linkage specifications (PR5921),
from Keir Mierle! llvm-svn: 95516
Diffstat (limited to 'clang/lib/Parse')
-rw-r--r--clang/lib/Parse/ParseDeclCXX.cpp2
-rw-r--r--clang/lib/Parse/Parser.cpp1
2 files changed, 2 insertions, 1 deletions
diff --git a/clang/lib/Parse/ParseDeclCXX.cpp b/clang/lib/Parse/ParseDeclCXX.cpp
index c24bafd6d3b..e1c66e236d8 100644
--- a/clang/lib/Parse/ParseDeclCXX.cpp
+++ b/clang/lib/Parse/ParseDeclCXX.cpp
@@ -191,6 +191,8 @@ Parser::DeclPtrTy Parser::ParseLinkage(ParsingDeclSpec &DS,
SourceLocation());
}
+ DS.abort();
+
if (Attr.HasAttr)
Diag(Attr.Range.getBegin(), diag::err_attributes_not_allowed)
<< Attr.Range;
diff --git a/clang/lib/Parse/Parser.cpp b/clang/lib/Parse/Parser.cpp
index f15b39a83e6..2558b667581 100644
--- a/clang/lib/Parse/Parser.cpp
+++ b/clang/lib/Parse/Parser.cpp
@@ -593,7 +593,6 @@ Parser::ParseDeclarationOrFunctionDefinition(ParsingDeclSpec &DS,
if (Tok.is(tok::string_literal) && getLang().CPlusPlus &&
DS.getStorageClassSpec() == DeclSpec::SCS_extern &&
DS.getParsedSpecifiers() == DeclSpec::PQ_StorageClassSpecifier) {
- DS.abort();
DeclPtrTy TheDecl = ParseLinkage(DS, Declarator::FileContext);
return Actions.ConvertDeclToDeclGroup(TheDecl);
}
OpenPOWER on IntegriCloud