aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Analysis/ReachableCode.cpp
diff options
context:
space:
mode:
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 5997798..046c9f4 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);