diff options
| author | Mike Stump <mrs@apple.com> | 2010-01-21 19:51:34 +0000 |
|---|---|---|
| committer | Mike Stump <mrs@apple.com> | 2010-01-21 19:51:34 +0000 |
| commit | d12e495f174d506145b6f04f9b530feb78bf5745 (patch) | |
| tree | 727fdb249eeefa2f9040d124e2a98d5a3ed3e1fa | |
| parent | c18c403670bb384d365610b2df7dfa58e5e3ce38 (diff) | |
| download | bcm5719-llvm-d12e495f174d506145b6f04f9b530feb78bf5745.tar.gz bcm5719-llvm-d12e495f174d506145b6f04f9b530feb78bf5745.zip | |
Improve unreachable code warnings for with respect to c-style casts.
llvm-svn: 94094
| -rw-r--r-- | clang/lib/Sema/SemaChecking.cpp | 5 | ||||
| -rw-r--r-- | clang/test/Sema/warn-unreachable.c | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 9fadd45fbbb..018132c3681 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -2116,6 +2116,11 @@ static SourceLocation GetUnreachableLoc(CFGBlock &b, SourceRange &R1, const ConditionalOperator *CO = cast<ConditionalOperator>(S); return CO->getQuestionLoc(); } + case Expr::CStyleCastExprClass: { + const CStyleCastExpr *CSC = cast<CStyleCastExpr>(S); + R1 = CSC->getSubExpr()->getSourceRange(); + return CSC->getLParenLoc(); + } case Expr::ImplicitCastExprClass: ++sn; goto top; diff --git a/clang/test/Sema/warn-unreachable.c b/clang/test/Sema/warn-unreachable.c index 7c913cafb24..b569b181595 100644 --- a/clang/test/Sema/warn-unreachable.c +++ b/clang/test/Sema/warn-unreachable.c @@ -87,5 +87,8 @@ void test2() { halt() ? // expected-warning {{will never be executed}} dead() : dead(); + case 10: + ( // expected-warning {{will never be executed}} + float)halt(); } } |

