| // RUN: %clang_cc1 -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 '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; | 
 |  |