diff options
Diffstat (limited to 'lib/Parse/ParseDecl.cpp')
-rw-r--r-- | lib/Parse/ParseDecl.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index 98c2d897d5..5ed1a61769 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -435,12 +435,11 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) { 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); + llvm::SmallVector<DeclTy *, 8> ProtocolDecl; Actions.FindProtocolDeclaration(Loc, &ProtocolRefs[0], ProtocolRefs.size(), - *ProtocolDecl); + ProtocolDecl); + DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size()); DS.SetRangeEnd(EndProtoLoc); @@ -576,12 +575,11 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS) { SourceLocation EndProtoLoc; llvm::SmallVector<IdentifierLocPair, 8> ProtocolRefs; ParseObjCProtocolReferences(ProtocolRefs, EndProtoLoc); - llvm::SmallVector<DeclTy *, 8> *ProtocolDecl = - new llvm::SmallVector<DeclTy *, 8>; - DS.setProtocolQualifiers(ProtocolDecl); + llvm::SmallVector<DeclTy *, 8> ProtocolDecl; Actions.FindProtocolDeclaration(Loc, &ProtocolRefs[0], ProtocolRefs.size(), - *ProtocolDecl); + ProtocolDecl); + DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size()); DS.SetRangeEnd(EndProtoLoc); Diag(Loc, diag::warn_objc_protocol_qualifier_missing_id, |