]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/SemaCXX/qualified-names-diag.cpp
Update clang to r86140.
[FreeBSD/FreeBSD.git] / test / SemaCXX / qualified-names-diag.cpp
1 // RUN: clang-cc -fsyntax-only -verify %s
2 namespace foo {
3   namespace wibble {
4     struct x { int y; };
5
6     namespace bar {
7       namespace wonka {
8         struct x {
9           struct y { };
10         };
11       }
12     }
13   }
14 }
15
16 namespace bar {
17   typedef int y;
18
19   struct incomplete; // expected-note{{forward declaration of 'struct bar::incomplete'}}
20 }
21 void test() {
22   foo::wibble::x a;
23   ::bar::y b;
24   a + b; // expected-error{{invalid operands to binary expression ('foo::wibble::x' and '::bar::y' (aka 'int'))}}
25
26   ::foo::wibble::bar::wonka::x::y c;
27   c + b; // expected-error{{invalid operands to binary expression ('::foo::wibble::bar::wonka::x::y' and '::bar::y' (aka 'int'))}}
28
29   (void)sizeof(bar::incomplete); // expected-error{{invalid application of 'sizeof' to an incomplete type 'bar::incomplete'}}
30 }
31
32 int ::foo::wibble::bar::wonka::x::y::* ptrmem;
33