diff options
author | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-03-22 01:49:19 +0000 |
---|---|---|
committer | Richard Smith <richard-llvm@metafoo.co.uk> | 2017-03-22 01:49:19 +0000 |
commit | bdf93f3e0295240ca9711f3e2c53f7e43deb9645 (patch) | |
tree | ba44aedc61f134ef338f4e418c815fbc097f98e2 /test/SemaCXX/P30636.cpp | |
parent | 1044e5875391a57e9fb899426f8c3a7fb0a9da7a (diff) |
Suppress warning on unreachable [[clang::fallthrough]] within a template instantiation.
We don't know whether some other instantiation of the template might be able to
reach the annotation, so warning on it has a high chance of false positives.
Patch by Ahmed Asadi!
Differential Revision: https://reviews.llvm.org/D31069
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@298477 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/P30636.cpp')
-rw-r--r-- | test/SemaCXX/P30636.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/SemaCXX/P30636.cpp b/test/SemaCXX/P30636.cpp new file mode 100644 index 0000000000..2e2affb0cf --- /dev/null +++ b/test/SemaCXX/P30636.cpp @@ -0,0 +1,20 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 -Wimplicit-fallthrough %s +// expected-no-diagnostics + +template<bool param> +int fallthrough_template(int i) +{ + switch (i) { + case 1: + if (param) + return 3; + [[clang::fallthrough]]; // no warning here, for an unreachable annotation (in the fallthrough_template<true> case) in a template function + case 2: + return 4; + default: + return 5; + } +} + +template int fallthrough_template<true>(int); + |