diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/SemaCXX/warn-unreachable.cpp | 19 |
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; +} + |