// RUN: clang-cc -fsyntax-only -verify %s
namespace foo {
  namespace wibble {
    struct x { int y; };

    namespace bar {
      namespace wonka {
        struct x {
          struct y { };
        };
      }
    }
  }
}

namespace bar {
  typedef int y;

  struct incomplete; // expected-note{{forward declaration of 'struct bar::incomplete'}}
}
void test() {
  foo::wibble::x a;
  ::bar::y b;
  a + b; // expected-error{{invalid operands to binary expression ('foo::wibble::x' and '::bar::y' (aka 'int'))}}

  ::foo::wibble::bar::wonka::x::y c;
  c + b; // expected-error{{invalid operands to binary expression ('::foo::wibble::bar::wonka::x::y' and '::bar::y' (aka 'int'))}}

  (void)sizeof(bar::incomplete); // expected-error{{invalid application of 'sizeof' to an incomplete type 'bar::incomplete'}}
}

int ::foo::wibble::bar::wonka::x::y::* ptrmem;

