diff options
author | Ted Kremenek <kremenek@apple.com> | 2014-03-15 06:47:45 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2014-03-15 06:47:45 +0000 |
commit | 9dfe400dc23a73847807a103c0020cf5c38a9820 (patch) | |
tree | 82acc03c7a89682a2b499a65f154e321a41873ed /clang/lib/Analysis/ReachableCode.cpp | |
parent | ad8753c00eac02acf9ef30aceb316721abf7ef6c (diff) | |
download | bcm5719-llvm-9dfe400dc23a73847807a103c0020cf5c38a9820.tar.gz bcm5719-llvm-9dfe400dc23a73847807a103c0020cf5c38a9820.zip |
-Wunreachable-code: treat 'const bool' locals as control values.
llvm-svn: 204001
Diffstat (limited to 'clang/lib/Analysis/ReachableCode.cpp')
-rw-r--r-- | clang/lib/Analysis/ReachableCode.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Analysis/ReachableCode.cpp b/clang/lib/Analysis/ReachableCode.cpp index d297d03775d..71d41bb2839 100644 --- a/clang/lib/Analysis/ReachableCode.cpp +++ b/clang/lib/Analysis/ReachableCode.cpp @@ -236,7 +236,12 @@ static bool isConfigurationValue(const Stmt *S, // We could generalize this to local variables, but it isn't // clear if those truly represent configuration values that // gate unreachable code. - return !VD->hasLocalStorage(); + if (!VD->hasLocalStorage()) + return true; + + // As a heuristic, locals that have been marked 'const' explicitly + // can be treated as configuration values as well. + return VD->getType().isLocalConstQualified(); } return false; } |