// Build don't link: // Copyright (C) 1999 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 14 Nov 1999 // Test our restrict object pointer extension struct A { void f1() __restrict__; void g1(int *__restrict__); void f2() __restrict__; void g2(int *__restrict__); void f3(); void g3(int *); void f4(); void g4(int *); }; void A::f1 () __restrict__ {} void A::g1 (int *__restrict__) {} void A::f2 () {} void A::g2 (int *) {} void A::f3 () __restrict__ {} void A::g3 (int *__restrict__) {} void A::f4 () {} void A::g4 (int *) {} template struct X { void f1() __restrict__; void g1(int *__restrict__); void f2() __restrict__; void g2(int *__restrict__); void f3(); void g3(int *); void f4(); void g4(int *); }; template void X::f1 () __restrict__ {} template void X::g1 (int *__restrict__) {} template void X::f2 () {} template void X::g2 (int *) {} template void X::f3 () __restrict__ {} template void X::g3 (int *__restrict__) {} template void X::f4 () {} template void X::g4 (int *) {} void fn () { X g; g.f1 (); g.f2 (); g.f3 (); g.f4 (); }