r313385 - [Analyzer] Check function name size before indexing.
George Karpenkov via cfe-commits
cfe-commits at lists.llvm.org
Fri Sep 15 12:51:26 PDT 2017
Author: george.karpenkov
Date: Fri Sep 15 12:51:26 2017
New Revision: 313385
URL: http://llvm.org/viewvc/llvm-project?rev=313385&view=rev
Log:
[Analyzer] Check function name size before indexing.
https://reviews.llvm.org/D37908
Modified:
cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
cfe/trunk/test/Analysis/retain-release.mm
Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp?rev=313385&r1=313384&r2=313385&view=diff
==============================================================================
--- cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp (original)
+++ cfe/trunk/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp Fri Sep 15 12:51:26 2017
@@ -1211,7 +1211,8 @@ RetainSummaryManager::getFunctionSummary
// Check for release functions, the only kind of functions that we care
// about that don't return a pointer type.
- if (FName[0] == 'C' && (FName[1] == 'F' || FName[1] == 'G')) {
+ if (FName.size() >= 2 &&
+ FName[0] == 'C' && (FName[1] == 'F' || FName[1] == 'G')) {
// Test for 'CGCF'.
FName = FName.substr(FName.startswith("CGCF") ? 4 : 2);
Modified: cfe/trunk/test/Analysis/retain-release.mm
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release.mm?rev=313385&r1=313384&r2=313385&view=diff
==============================================================================
--- cfe/trunk/test/Analysis/retain-release.mm (original)
+++ cfe/trunk/test/Analysis/retain-release.mm Fri Sep 15 12:51:26 2017
@@ -461,3 +461,5 @@ void radar13722286::PrepareBitmap() {
}
}
+// rdar://34210609
+void _() { _(); }; // no-warning
More information about the cfe-commits
mailing list