// PR c++/17763 template struct Outer { struct Inner {}; Inner foo(); }; typedef int X; typedef Outer XOuter; int main() { Outer ab; ab.foo() == 1; // { dg-error "operand types are 'Outer::Inner' and 'int'" } }