From 1bc5bbf39a26d2604884216a511bd51aec1784f6 Mon Sep 17 00:00:00 2001 From: Ted Kremenek Date: Tue, 30 Jun 2009 22:19:00 +0000 Subject: [PATCH] Fix: clang -fsyntax-only crashes (in ParseDeclarationSpecifiers ... from ParseObjCTypeName) 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 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/Parse/ParseDecl.cpp b/lib/Parse/ParseDecl.cpp index ff602e8ba7..4a3532c410 100644 --- a/lib/Parse/ParseDecl.cpp +++ b/lib/Parse/ParseDecl.cpp @@ -802,7 +802,7 @@ void Parser::ParseDeclarationSpecifiers(DeclSpec &DS, SourceLocation EndProtoLoc; llvm::SmallVector 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 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 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 ProtocolDecl; ParseObjCProtocolReferences(ProtocolDecl, false, EndProtoLoc); - DS.setProtocolQualifiers(&ProtocolDecl[0], ProtocolDecl.size()); + DS.setProtocolQualifiers(ProtocolDecl.data(), ProtocolDecl.size()); DS.SetRangeEnd(EndProtoLoc); return true; -- 2.50.1