/// 'extern' string-literal declaration
///
Parser::DeclTy *Parser::ParseLinkage(unsigned Context) {
- assert(Tok.is(tok::string_literal) && "Not a stringliteral!");
+ assert(Tok.is(tok::string_literal) && "Not a string literal!");
llvm::SmallVector<char, 8> LangBuffer;
// LangBuffer is guaranteed to be big enough.
LangBuffer.resize(Tok.getLength());
SourceLocation LBrace, RBrace;
if (Tok.isNot(tok::l_brace)) {
- D = ParseDeclaration(Context);
+ D = ParseDeclarationOrFunctionDefinition();
} else {
LBrace = ConsumeBrace();
while (Tok.isNot(tok::r_brace) && Tok.isNot(tok::eof)) {
}
/// ParseExternalDeclaration:
-/// external-declaration: [C99 6.9]
+/// external-declaration: [C99 6.9], declaration: [C++ dcl.dcl]
/// function-definition
/// declaration
/// [EXT] ';'
/// [OBJC] objc-protocol-definition
/// [OBJC] objc-method-definition
/// [OBJC] @end
-///
+/// [C++] linkage-specification
/// [GNU] asm-definition:
/// simple-asm-expr ';'
///