1*67e74705SXin Li extern int mergeUsedFlag; 2*67e74705SXin Li 3*67e74705SXin Li typedef struct { 4*67e74705SXin Li int n; 5*67e74705SXin Li int m; 6*67e74705SXin Li } NameForLinkage; 7*67e74705SXin Li extern NameForLinkage name_for_linkage; 8*67e74705SXin Li 9*67e74705SXin Li struct HasVirtualFunctions { 10*67e74705SXin Li virtual void f(); 11*67e74705SXin Li }; 12*67e74705SXin Li struct OverridesVirtualFunctions : HasVirtualFunctions { 13*67e74705SXin Li void f(); 14*67e74705SXin Li }; 15*67e74705SXin Li extern OverridesVirtualFunctions overrides_virtual_functions; 16*67e74705SXin Li extern "C" void ExternCFunction(); 17*67e74705SXin Li 18*67e74705SXin Li typedef struct { 19*67e74705SXin Li struct Inner { 20*67e74705SXin Li int n; 21*67e74705SXin Li }; 22*67e74705SXin Li } NameForLinkage2; 23*67e74705SXin Li auto name_for_linkage2_inner_b = NameForLinkage2::Inner(); 24*67e74705SXin Li typedef decltype(name_for_linkage2_inner_b) NameForLinkage2Inner; 25*67e74705SXin Li 26*67e74705SXin Li namespace Aliased { extern int b; } 27*67e74705SXin Li namespace Alias = Aliased; 28*67e74705SXin Li 29*67e74705SXin Li struct InhCtorA { InhCtorA(int); }; 30*67e74705SXin Li struct InhCtorB : InhCtorA { using InhCtorA::InhCtorA; }; 31