From 222e2a7620e6520ffaf4fc4e69d79c18da31542e Mon Sep 17 00:00:00 2001 From: "Zancanaro; Carlo" Date: Mon, 24 Sep 2012 09:58:17 +1000 Subject: Add the clang library to the repo (with some of my changes, too). --- clang/test/SemaCXX/warn-unused-filescoped.cpp | 89 +++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 clang/test/SemaCXX/warn-unused-filescoped.cpp (limited to 'clang/test/SemaCXX/warn-unused-filescoped.cpp') diff --git a/clang/test/SemaCXX/warn-unused-filescoped.cpp b/clang/test/SemaCXX/warn-unused-filescoped.cpp new file mode 100644 index 0000000..dbff4b0 --- /dev/null +++ b/clang/test/SemaCXX/warn-unused-filescoped.cpp @@ -0,0 +1,89 @@ +// RUN: %clang_cc1 -fsyntax-only -verify -Wunused -Wunused-member-function %s + +static void f1(); // expected-warning{{unused}} + +namespace { + void f2(); // expected-warning{{unused}} + + void f3() { } // expected-warning{{unused}} + + struct S { + void m1() { } // expected-warning{{unused}} + void m2(); // expected-warning{{unused}} + void m3(); + S(const S&); + void operator=(const S&); + }; + + template + struct TS { + void m(); + }; + template <> void TS::m() { } // expected-warning{{unused}} + + template + void tf() { } + template <> void tf() { } // expected-warning{{unused}} + + struct VS { + virtual void vm() { } + }; + + struct SVS : public VS { + void vm() { } + }; +} + +void S::m3() { } // expected-warning{{unused}} + +static inline void f4() { } +const unsigned int cx = 0; + +static int x1; // expected-warning{{unused}} + +namespace { + int x2; // expected-warning{{unused}} + + struct S2 { + static int x; // expected-warning{{unused}} + }; + + template + struct TS2 { + static int x; + }; + template <> int TS2::x; // expected-warning{{unused}} +} + +namespace PR8841 { + // Ensure that friends of class templates are considered to have a dependent + // context and not marked unused. + namespace { + template struct X { + friend bool operator==(const X&, const X&) { return false; } + }; + } + template void template_test(X x) { + (void)(x == x); + } + void test() { + X x; + template_test(x); + } +} + +namespace test4 { + namespace { struct A {}; } + + void test(A a); // expected-warning {{unused function}} + extern "C" void test4(A a); +} + +namespace rdar8733476 { + static void foo() { } // expected-warning {{not needed and will not be emitted}} + + template + void bar() { + foo(); + } +} -- cgit v1.2.3