[cfe-commits] r62245 - in /cfe/trunk: lib/Sema/CMakeLists.txt lib/Sema/IdentifierResolver.h lib/Sema/Sema.h lib/Sema/SemaCXXScopeSpec.cpp lib/Sema/SemaDecl.cpp lib/Sema/SemaDeclCXX.cpp lib/Sema/SemaExpr.cpp lib/Sema/SemaExprCXX.cpp lib/Sema/SemaLookup.cpp test/Parser/cxx-using-directive.cpp test/SemaCXX/qualified-id-lookup.cpp

Douglas Gregor dgregor at apple.com
Fri Jan 16 13:22:44 PST 2009


On Jan 16, 2009, at 1:15 PM, Chris Lattner wrote:

> On Jan 16, 2009, at 12:50 PM, Douglas Gregor wrote:
>>>> My complaint about putting a default: in there still stands: it  
>>>> suppresses a useful warning, where we've omitted a case, and  
>>>> turns it into a run-time failure.
>>>
>>> Does GCC produce a warning for cases like:
>>>
>>> int foo() {
>>> switch (someenum) {
>>> case <all possible enums>:
>>>  return 0;
>>> }
>>> // no return
>>> }
>>>
>>> About falling off the end of the function?
>>
>> Yeah, it does.
>
> That's bad.  Can we just use default: assert(0) in those cases?


That turns off the warning in the case where you've done:

	switch (someenum) {
	case <all possible enums except the new one someone else added>:
		do something;
	};

	- Doug



More information about the cfe-commits mailing list