1*67e74705SXin Li // RUN: rm -rf %t 2*67e74705SXin Li // RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fmodules-local-submodule-visibility -I%S/Inputs/no-linkage -fmodule-map-file=%S/Inputs/no-linkage/module.modulemap %s -verify 3*67e74705SXin Li 4*67e74705SXin Li #include "empty.h" 5*67e74705SXin Li 6*67e74705SXin Li namespace NS { int n; } // expected-note {{candidate}} 7*67e74705SXin Li struct Typedef { int n; }; // expected-note {{candidate}} 8*67e74705SXin Li int AliasDecl; // expected-note {{candidate}} 9*67e74705SXin Li int UsingDecl; // expected-note {{candidate}} 10*67e74705SXin Li namespace RealNS = NS; // expected-note {{candidate}} 11*67e74705SXin Li typedef int Struct; // expected-note {{candidate}} 12*67e74705SXin Li enum { Variable }; // expected-note {{candidate}} 13*67e74705SXin Li const int AnotherNS = 0; // expected-note {{candidate}} 14*67e74705SXin Li const int Enumerator = 0; // expected-note {{candidate}} 15*67e74705SXin Li static int Overloads; // expected-note {{candidate}} 16*67e74705SXin Li 17*67e74705SXin Li // [email protected]:1 {{candidate}} 18*67e74705SXin Li // [email protected]:2 {{candidate}} 19*67e74705SXin Li // [email protected]:3 {{candidate}} 20*67e74705SXin Li // [email protected]:4 {{candidate}} 21*67e74705SXin Li // [email protected]:5 {{candidate}} 22*67e74705SXin Li // [email protected]:6 {{candidate}} 23*67e74705SXin Li // [email protected]:7 {{candidate}} 24*67e74705SXin Li // [email protected]:8 {{candidate}} 25*67e74705SXin Li // [email protected]:9 {{candidate}} 26*67e74705SXin Li // [email protected]:10 {{candidate}} 27*67e74705SXin Li // [email protected]:11 {{candidate}} 28*67e74705SXin Li 29*67e74705SXin Li void use(int); use_things()30*67e74705SXin Livoid use_things() { 31*67e74705SXin Li use(Typedef().n); 32*67e74705SXin Li use(NS::n); 33*67e74705SXin Li use(AliasDecl); 34*67e74705SXin Li use(UsingDecl); 35*67e74705SXin Li use(RealNS::n); 36*67e74705SXin Li use(Struct(0)); 37*67e74705SXin Li use(Variable); 38*67e74705SXin Li use(AnotherNS); 39*67e74705SXin Li use(Enumerator); 40*67e74705SXin Li use(Overloads); 41*67e74705SXin Li } 42*67e74705SXin Li 43*67e74705SXin Li #include "decls.h" 44*67e74705SXin Li use_things_again()45*67e74705SXin Livoid use_things_again() { 46*67e74705SXin Li use(Typedef().n); // expected-error {{ambiguous}} 47*67e74705SXin Li use(NS::n); // expected-error {{ambiguous}} 48*67e74705SXin Li use(AliasDecl); // expected-error {{ambiguous}} 49*67e74705SXin Li use(UsingDecl); // expected-error {{ambiguous}} 50*67e74705SXin Li use(RealNS::n); // expected-error {{ambiguous}} 51*67e74705SXin Li use(Struct(0)); // expected-error {{ambiguous}} 52*67e74705SXin Li use(Variable); // expected-error {{ambiguous}} 53*67e74705SXin Li use(AnotherNS); // expected-error {{ambiguous}} 54*67e74705SXin Li use(Enumerator); // expected-error {{ambiguous}} 55*67e74705SXin Li use(Overloads); // expected-error {{ambiguous}} 56*67e74705SXin Li } 57