// { dg-do assemble }
template <class X> struct A { int operator [] (int); };
template <class Y> int A<Y>::operator[] (int j) { return j * j; }
extern A<void **> avpp;
int q () { return avpp[99]; }
// { dg-do assemble }
template <class X> struct A { int operator [] (int); };
template <class Y> int A<Y>::operator[] (int j) { return j * j; }
extern A<void **> avpp;
int q () { return avpp[99]; }