summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2016-10-11 13:50:34 +0000
committerHaojian Wu <hokein@google.com>2016-10-11 13:50:34 +0000
commit09c8d2e19f6e7cc2f2253763dd51dd13d4be85ca (patch)
tree1fd8b1ecec2b6ab3a5eff08619225056a5ab2ff0 /clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp
parent9609f3d6c72c72d97eda10b9f5dcbf46fa569e44 (diff)
downloadbcm5719-llvm-09c8d2e19f6e7cc2f2253763dd51dd13d4be85ca.tar.gz
bcm5719-llvm-09c8d2e19f6e7cc2f2253763dd51dd13d4be85ca.zip
[clang-tidy] Fix template agrument false positives in unused-using-decls.
Summary: * Fix a false postive when an using class is used in an explicit template instantiation. * Fix a false postive when an using template class is used as template argument. Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D25437 llvm-svn: 283879
Diffstat (limited to 'clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp')
-rw-r--r--clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp b/clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp
index fec49496c2b..65ef0dac22b 100644
--- a/clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp
+++ b/clang-tools-extra/test/clang-tidy/misc-unused-using-decls.cpp
@@ -21,6 +21,16 @@ template <typename T> class J {};
class G;
class H;
+template <typename T> class K {};
+template <template <typename> class S>
+class L {};
+
+template <typename T> class M {};
+class N {};
+
+template <int T> class P {};
+const int Constant = 0;
+
class Base {
public:
void f();
@@ -150,6 +160,14 @@ using n::Blue;
using ns::AA;
using ns::ff;
+using n::K;
+
+using n::N;
+
+// FIXME: Currently non-type template arguments are not supported.
+using n::Constant;
+// CHECK-MESSAGES: :[[@LINE-1]]:10: warning: using decl 'Constant' is unused
+
// ----- Usages -----
void f(B b);
void g() {
@@ -170,4 +188,16 @@ void g() {
int t3 = 0;
a.func1<AA>(&t3);
a.func2<int, ff>(t3);
+
+ n::L<K> l;
}
+
+template<class T>
+void h(n::M<T>* t) {}
+// n::N is used the explicit template instantiation.
+template void h(n::M<N>* t);
+
+// Test on Non-type template arguments.
+template <int T>
+void i(n::P<T>* t) {}
+template void i(n::P<Constant>* t);
OpenPOWER on IntegriCloud