diff options
Diffstat (limited to 'clang/lib/Analysis/ReachableCode.cpp')
-rw-r--r-- | clang/lib/Analysis/ReachableCode.cpp | 6 |
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); |