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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits