summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/warn-unreachable.cpp
diff options
context:
space:
mode:
authorTed Kremenek <kremenek@apple.com>2014-03-15 06:47:45 +0000
committerTed Kremenek <kremenek@apple.com>2014-03-15 06:47:45 +0000
commit9dfe400dc23a73847807a103c0020cf5c38a9820 (patch)
tree82acc03c7a89682a2b499a65f154e321a41873ed /clang/test/SemaCXX/warn-unreachable.cpp
parentad8753c00eac02acf9ef30aceb316721abf7ef6c (diff)
downloadbcm5719-llvm-9dfe400dc23a73847807a103c0020cf5c38a9820.tar.gz
bcm5719-llvm-9dfe400dc23a73847807a103c0020cf5c38a9820.zip
-Wunreachable-code: treat 'const bool' locals as control values.
llvm-svn: 204001
Diffstat (limited to 'clang/test/SemaCXX/warn-unreachable.cpp')
-rw-r--r--clang/test/SemaCXX/warn-unreachable.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/warn-unreachable.cpp b/clang/test/SemaCXX/warn-unreachable.cpp
index 17f0b9bf528..2370fe0da24 100644
--- a/clang/test/SemaCXX/warn-unreachable.cpp
+++ b/clang/test/SemaCXX/warn-unreachable.cpp
@@ -199,3 +199,22 @@ int test_arithmetic() {
return 2; // expected-warning {{never be executed}}
}
+int test_treat_const_bool_local_as_config_value() {
+ const bool controlValue = false;
+ if (!controlValue)
+ return 1;
+ test_treat_const_bool_local_as_config_value(); // no-warning
+ return 0;
+}
+
+int test_treat_non_const_bool_local_as_non_config_value() {
+ bool controlValue = false;
+ if (!controlValue)
+ return 1;
+ // There is no warning here because 'controlValue' isn't really
+ // a control value at all. The CFG will not treat this
+ // branch as unreachable.
+ test_treat_non_const_bool_local_as_non_config_value(); // no-warning
+ return 0;
+}
+
OpenPOWER on IntegriCloud