[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