[cfe-commits] r126897 - /cfe/trunk/lib/Analysis/CFG.cpp

Ted Kremenek kremenek at apple.com
Wed Mar 2 16:35:57 PST 2011


+1.

All the enum cases were enumerated, and I want a compiler warning (from Clang) to tell us when we miss updating the switch statement instead of waiting for an assertion failure.  A 'default' case removes this checking.

On Mar 2, 2011, at 3:33 PM, John McCall wrote:

> On Mar 2, 2011, at 3:25 PM, Matt Beaumont-Gay wrote:
>> Author: matthewbg
>> Date: Wed Mar  2 17:25:06 2011
>> New Revision: 126897
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=126897&view=rev
>> Log:
>> Keep GCC from complaining about falling off the end of the function.
>> 
>> Modified:
>>   cfe/trunk/lib/Analysis/CFG.cpp
>> 
>> Modified: cfe/trunk/lib/Analysis/CFG.cpp
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Analysis/CFG.cpp?rev=126897&r1=126896&r2=126897&view=diff
>> ==============================================================================
>> --- cfe/trunk/lib/Analysis/CFG.cpp (original)
>> +++ cfe/trunk/lib/Analysis/CFG.cpp Wed Mar  2 17:25:06 2011
>> @@ -2774,6 +2774,7 @@
>> 
>> const CXXDestructorDecl *CFGImplicitDtor::getDestructorDecl() const {
>>  switch (getKind()) {
>> +    default: assert(0 && "Unknown CFGElement");
>>    case CFGElement::Invalid:
>>    case CFGElement::Statement:
>>    case CFGElement::Initializer:
> 
> The general style in Clang is (1) to use llvm_unreachable(msg) instead of assert(0 && msg) and (2) to not add default cases to switches which are supposed to be exhaustive.  Please move this to after the switch and follow it with a return 0.
> 
> John.
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits





More information about the cfe-commits mailing list