// { 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'" "" { xfail *-*-* } } // The following are DR 295 dependent typedef typename T::myT volatile *myvolatile; // { dg-error "qualifiers" "" } typename T::myT volatile *a; // { dg-error "qualifiers" "" } myvolatile b; // { dg-error "qualifiers" "" } }; template struct B2 : T { // The following are DR 295 dependent typedef typename T::myT const *myconst; // { dg-error "qualifiers" "" } typename T::myT const *a; // { dg-error "qualifiers" "" } myconst b; // { dg-error "qualifiers" "" } }; B1 b1; // { dg-error "instantiated" "" } B2 b2; // { dg-error "instantiated" "" }