1 // RUN: %clang_cc1 -fsyntax-only -verify -Wall %s 2 3 namespace test1 { 4 static int abc = 42; // expected-warning {{variable 'abc' is not needed and will not be emitted}} 5 6 namespace { 7 template <typename T> int abc_template = 0; 8 template <> int abc_template<int> = 0; // expected-warning {{variable 'abc_template<int>' is not needed and will not be emitted}} 9 } // namespace 10 template <typename T> foo(void)11 int foo(void) { 12 return abc + abc_template<int> + abc_template<long>; 13 } 14 } 15 16 namespace test2 { 17 struct bah { 18 }; 19 namespace { 20 struct foo : bah { 21 static char bar; 22 virtual void zed(); 23 }; zed()24 void foo::zed() { 25 bar++; 26 } 27 char foo::bar=0; 28 } getfoo()29 bah *getfoo() { 30 return new foo(); 31 } 32 } 33