// { dg-do compile } // Copyright (C) 2001 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 15 Dec 2001 // PR 2645 struct AS { typedef void (myT) (); struct L {}; }; template struct B1 : T { typedef typename T::L __restrict__ r;// { dg-error "`__restrict' qualifiers cannot" "" } typedef typename T::myT __restrict__ p;// { dg-warning "ignoring `__restrict'" "" } typedef typename T::myT volatile *myvolatile; // { dg-warning "ignoring `volatile'" "" } typename T::myT volatile *a; // { dg-warning "ignoring `volatile'" "" } myvolatile b; // { dg-bogus "ignoring `volatile'" "" { xfail *-*-* } } }; template struct B2 : T { typedef typename T::myT const *myconst; typename T::myT const *a; myconst b; }; B1 b1; // { dg-error "instantiated" "" } B2 b2;