| // RUN: %clang -fsyntax-only -Wunused-variable -verify %s | 
 |  | 
 | template<typename T> void f() { | 
 | 	T t; | 
 | 	t = 17; | 
 | } | 
 |  | 
 | // PR5407 | 
 | struct A { A(); }; | 
 | struct B { ~B(); }; | 
 | void f() { | 
 |   A a; | 
 |   B b; | 
 | } | 
 |  | 
 | // PR5531 | 
 | namespace PR5531 { | 
 |   struct A { | 
 |   }; | 
 |  | 
 |   struct B { | 
 |     B(int); | 
 |   }; | 
 |  | 
 |   struct C { | 
 |     ~C(); | 
 |   }; | 
 |  | 
 |   void test() { | 
 |     A(); | 
 |     B(17); | 
 |     C(); | 
 |   } | 
 | } | 
 |  | 
 |  | 
 | struct X { | 
 |  int foo() __attribute__((warn_unused_result)); | 
 | }; | 
 |  | 
 | void bah() { | 
 |   X x, *x2; | 
 |   x.foo(); // expected-warning {{ignoring return value of function declared with warn_unused_result attribute}} | 
 |   x2->foo(); // expected-warning {{ignoring return value of function declared with warn_unused_result attribute}} | 
 | } |