1*9ca5c425SRichard Smith // RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s 2dda56e4bSRichard Smith 3dda56e4bSRichard Smith // Classes. 4dda56e4bSRichard Smith namespace Class { 5dda56e4bSRichard Smith namespace NS { 6dda56e4bSRichard Smith class C {}; // expected-note {{candidate}} 7dda56e4bSRichard Smith } 8dda56e4bSRichard Smith using namespace NS; 9dda56e4bSRichard Smith class C : C {}; // expected-error {{reference to 'C' is ambiguous}} \ 10dda56e4bSRichard Smith expected-note {{candidate}} 11dda56e4bSRichard Smith } 12dda56e4bSRichard Smith 13dda56e4bSRichard Smith // Enumerations. 14dda56e4bSRichard Smith enum E { 15dda56e4bSRichard Smith EPtrSize = sizeof((E*)0) // ok, E is already declared 16dda56e4bSRichard Smith }; 17dda56e4bSRichard Smith 18dda56e4bSRichard Smith // Alias declarations. clang implements the proposed resolution to N1044. 19dda56e4bSRichard Smith namespace Alias { 20dda56e4bSRichard Smith namespace NS { 21dda56e4bSRichard Smith class C; 22dda56e4bSRichard Smith } 23dda56e4bSRichard Smith using namespace NS; 24dda56e4bSRichard Smith using C = C; // ok, C = B::C 25dda56e4bSRichard Smith using C = NS::C; // ok, same type 26dda56e4bSRichard Smith } 27