]> granicus.if.org Git - clang/commitdiff
Fix: <rdar://problem/7021553> clang -fsyntax-only crashes (in ParseDeclarationSpecifi...
authorTed Kremenek <kremenek@apple.com>
Tue, 30 Jun 2009 22:19:00 +0000 (22:19 +0000)
committerTed Kremenek <kremenek@apple.com>
Tue, 30 Jun 2009 22:19:00 +0000 (22:19 +0000)
Another case where we should use SmallVector::data() instead of taking the
address of element 0 of a SmallVector when the SmallVector has no elements.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74556 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Parse/ParseDecl.cpp

index ff602e8ba79b0a380fbd710f8fa4ec00df0aa758..4a3532c4103ba421fa380e9b9540c630e691b69a 100644 (file)
@@ -802,7 +802,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
       SourceLocation EndProtoLoc;
       llvm::SmallVector<DeclPtrTy, 8> ProtocolDecl;
       ParseObjCProtocolReferences(ProtocolDecl, false, EndProtoLoc);
-      DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size());
+      DS.setProtocolQualifiers(ProtocolDecl.data(), ProtocolDecl.size());
       
       DS.SetRangeEnd(EndProtoLoc);
       continue;
@@ -859,7 +859,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
       SourceLocation EndProtoLoc;
       llvm::SmallVector<DeclPtrTy, 8> ProtocolDecl;
       ParseObjCProtocolReferences(ProtocolDecl, false, EndProtoLoc);
-      DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size());
+      DS.setProtocolQualifiers(ProtocolDecl.data(), ProtocolDecl.size());
       
       DS.SetRangeEnd(EndProtoLoc);
 
@@ -1066,7 +1066,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS,
         SourceLocation EndProtoLoc;
         llvm::SmallVector<DeclPtrTy, 8> ProtocolDecl;
         ParseObjCProtocolReferences(ProtocolDecl, false, EndProtoLoc);
-        DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size());
+        DS.setProtocolQualifiers(ProtocolDecl.data(), ProtocolDecl.size());
         DS.SetRangeEnd(EndProtoLoc);
 
         Diag(Loc, diag::warn_objc_protocol_qualifier_missing_id)
@@ -1179,7 +1179,7 @@ bool Parser::ParseOptionalTypeSpecifier(DeclSpec &DS, int& isInvalid,
     SourceLocation EndProtoLoc;
     llvm::SmallVector<DeclPtrTy, 8> ProtocolDecl;
     ParseObjCProtocolReferences(ProtocolDecl, false, EndProtoLoc);
-    DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size());
+    DS.setProtocolQualifiers(ProtocolDecl.data(), ProtocolDecl.size());
     
     DS.SetRangeEnd(EndProtoLoc);
     return true;