summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/ReachableCode.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2014-02-27 05:42:07 +0000
committerTed Kremenek <kremenek@apple.com>2014-02-27 05:42:07 +0000
commit35883155bb7c211d05510d819e4ea63a4a420ac4 (patch)
tree4574794e31bfa4db1d4a00e4cea26387715a38c6 /clang/lib/Analysis/ReachableCode.cpp
parent5346e75966778a50951ab89227f6a46451d232c9 (diff)
downloadbcm5719-llvm-35883155bb7c211d05510d819e4ea63a4a420ac4.tar.gz
bcm5719-llvm-35883155bb7c211d05510d819e4ea63a4a420ac4.zip
[-Wunreachable-code] Don't warn about unreachable 'default:' cases.
They are covered by -Wcovered-switch-default. llvm-svn: 202349
Diffstat (limited to 'clang/lib/Analysis/ReachableCode.cpp')
-rw-r--r--clang/lib/Analysis/ReachableCode.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Analysis/ReachableCode.cpp b/clang/lib/Analysis/ReachableCode.cpp
index 599779871f8..046c9f4792b 100644
--- a/clang/lib/Analysis/ReachableCode.cpp
+++ b/clang/lib/Analysis/ReachableCode.cpp
@@ -284,6 +284,12 @@ void DeadCodeScan::reportDeadCode(const CFGBlock *B,
if (isBreakPrecededByNoReturn(B, S))
return;
+ // Was this an unreachable 'default' case? Such cases are covered
+ // by -Wcovered-switch-default, if the user so desires.
+ const Stmt *Label = B->getLabel();
+ if (Label && isa<DefaultStmt>(Label))
+ return;
+
SourceRange R1, R2;
SourceLocation Loc = GetUnreachableLoc(S, R1, R2);
CB.HandleUnreachable(Loc, R1, R2);
OpenPOWER on IntegriCloud