1 // PR c++/29633
2 
3 template <typename T>
4 struct Class1
5 {
6   void testfn1(void);
7 };
8 
9 template <typename T>
10 class Class2
11 {
12 public:
testfn2(void)13   void testfn2(void)
14   {
15     Class1<T> * tc_a;
16     do
17     {
18       int x = 0;
19     }
20     while (tc_a && tc_a->testfn1);  // { dg-error "invalid use of member" }
21   }
22 };
23 
main(void)24 int main(void)
25 {
26   Class2<int> tc2;
27   tc2.testfn2();
28   return 0;
29 }
30