// { 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]; }
