r178820 - [analyzer] Fully-covered switch for families in isTrackedFamily()
Anton Yartsev
anton.yartsev at gmail.com
Thu Apr 4 19:14:01 PDT 2013
On 05.04.2013 4:41, Jordan Rose wrote:
> :-) A fully-covered switch in LLVM does not include a "default" case. We do put an llvm_unreachable after the switch to appease older GCCs' -Wreturn-type, but the point of the covered switch is so that we get a warning when a new enum value is added.
Got it. Fixed at r178831.
>
>
> On Apr 4, 2013, at 17:31 , Anton Yartsev <anton.yartsev at gmail.com> wrote:
>
>> Author: ayartsev
>> Date: Thu Apr 4 19:31:02 2013
>> New Revision: 178820
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=178820&view=rev
>> Log:
>> [analyzer] Fully-covered switch for families in isTrackedFamily()
>>
>> Modified:
>> cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
>>
>> Modified: cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp?rev=178820&r1=178819&r2=178820&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (original)
>> +++ cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp Thu Apr 4 19:31:02 2013
>> @@ -1068,13 +1068,24 @@ ProgramStateRef MallocChecker::FreeMemAu
>> }
>>
>> bool MallocChecker::isTrackedFamily(AllocationFamily Family) const {
>> - if (Family == AF_Malloc &&
>> - (!Filter.CMallocOptimistic && !Filter.CMallocPessimistic))
>> - return false;
>> -
>> - if ((Family == AF_CXXNew || Family == AF_CXXNewArray) &&
>> - !Filter.CNewDeleteChecker)
>> - return false;
>> + switch (Family) {
>> + case AF_Malloc: {
>> + if (!Filter.CMallocOptimistic && !Filter.CMallocPessimistic)
>> + return false;
>> + break;
>> + }
>> + case AF_CXXNew:
>> + case AF_CXXNewArray: {
>> + if (!Filter.CNewDeleteChecker)
>> + return false;
>> + break;
>> + }
>> + case AF_None: {
>> + return true;
>> + }
>> + default:
>> + llvm_unreachable("unhandled family");
>> + }
>>
>> return true;
>> }
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
--
Anton
More information about the cfe-commits
mailing list