summaryrefslogtreecommitdiffstats
path: root/clang/lib/Analysis/ReachableCode.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2014-03-08 02:22:32 +0000
committerTed Kremenek <kremenek@apple.com>2014-03-08 02:22:32 +0000
commitefea63450bae24c08e53d4f599a6d7e776a54605 (patch)
tree6a122445861908ec6a21bb7475ee0d9c51f90ce2 /clang/lib/Analysis/ReachableCode.cpp
parentfcc1417fad167a945596e41cf5f3cdc8c96ee686 (diff)
downloadbcm5719-llvm-efea63450bae24c08e53d4f599a6d7e776a54605.tar.gz
bcm5719-llvm-efea63450bae24c08e53d4f599a6d7e776a54605.zip
[-Wunreachabe-code] Don't warn about unreachable destructors for temporaries.
This can possibly be refined later, but right now the experience is so incomprehensible for a user to understand what is going on this isn't a useful warning. llvm-svn: 203336
Diffstat (limited to 'clang/lib/Analysis/ReachableCode.cpp')
-rw-r--r--clang/lib/Analysis/ReachableCode.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/clang/lib/Analysis/ReachableCode.cpp b/clang/lib/Analysis/ReachableCode.cpp
index 5d74156092c..9191958399b 100644
--- a/clang/lib/Analysis/ReachableCode.cpp
+++ b/clang/lib/Analysis/ReachableCode.cpp
@@ -397,9 +397,11 @@ const Stmt *DeadCodeScan::findDeadCode(const clang::CFGBlock *Block) {
}
if (CFGTerminator T = Block->getTerminator()) {
- const Stmt *S = T.getStmt();
- if (isValidDeadStmt(S))
- return S;
+ if (!T.isTemporaryDtorsBranch()) {
+ const Stmt *S = T.getStmt();
+ if (isValidDeadStmt(S))
+ return S;
+ }
}
return 0;
OpenPOWER on IntegriCloud