diff options
author | Chris Lattner <sabre@nondot.org> | 2008-07-21 22:17:28 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-07-21 22:17:28 +0000 |
commit | 7caeabd868d46cf4e68478c6e9136dae4e735d21 (patch) | |
tree | 9988137f38a9fd308fc641b15f8cd91f79cffd2e /lib/Parse/ParseDecl.cpp | |
parent | 465172f304248a9aab6f2c398a836ce4e25efbbf (diff) |
minor cleanup to the actions interface to pass around SmallVectorImpl instead
of a specific smallvector size.
Fix protocol lists to pass down proper location info, so we get diagnostics
like this:
t.m:3:35: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever'
@interface NSWhatever : NSObject <NSCopying>
^
instead of this:
t.m:3:44: error: cannot find protocol definition for 'NSCopying', referenced by 'NSWhatever'
@interface NSWhatever : NSObject <NSCopying>
^
Add a new IdentifierLocPair typedef which is just a pair<IdentifierInfo*, SourceLocation>
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53883 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Parse/ParseDecl.cpp')
-rw-r--r-- | lib/Parse/ParseDecl.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index 95344c438e..1ac26a309f 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -413,8 +413,11 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) { ConsumeToken(); // The identifier if (Tok.is(tok::less)) { SourceLocation endProtoLoc; - llvm::SmallVector<IdentifierInfo *, 8> ProtocolRefs; + llvm::SmallVector<IdentifierLocPair, 8> ProtocolRefs; ParseObjCProtocolReferences(ProtocolRefs, endProtoLoc); + + // FIXME: New'ing this here seems wrong, why not have the action do + // it? llvm::SmallVector<DeclTy *, 8> *ProtocolDecl = new llvm::SmallVector<DeclTy *, 8>; DS.setProtocolQualifiers(ProtocolDecl); @@ -553,7 +556,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) { case tok::less: if (!DS.hasTypeSpecifier()) { SourceLocation endProtoLoc; - llvm::SmallVector<IdentifierInfo *, 8> ProtocolRefs; + llvm::SmallVector<IdentifierLocPair, 8> ProtocolRefs; ParseObjCProtocolReferences(ProtocolRefs, endProtoLoc); llvm::SmallVector<DeclTy *, 8> *ProtocolDecl = new llvm::SmallVector<DeclTy *, 8>; |