xref: /llvm-project/clang/test/Modules/Inputs/cxx-decls-merged.h (revision f81c2cc6ca4b728522e2d6755bfc3968167aff11)
1675d279aSRichard Smith extern int mergeUsedFlag;
288ebade8SRichard Smith 
388ebade8SRichard Smith typedef struct {
488ebade8SRichard Smith   int n;
588ebade8SRichard Smith   int m;
688ebade8SRichard Smith } NameForLinkage;
788ebade8SRichard Smith extern NameForLinkage name_for_linkage;
8b1108739SRichard Smith 
9b1108739SRichard Smith struct HasVirtualFunctions {
10b1108739SRichard Smith   virtual void f();
11b1108739SRichard Smith };
12b1108739SRichard Smith struct OverridesVirtualFunctions : HasVirtualFunctions {
13b1108739SRichard Smith   void f();
14b1108739SRichard Smith };
15b1108739SRichard Smith extern OverridesVirtualFunctions overrides_virtual_functions;
16b602c7f8SRichard Smith extern "C" void ExternCFunction();
1770d58509SRichard Smith 
1870d58509SRichard Smith typedef struct {
1970d58509SRichard Smith   struct Inner {
2070d58509SRichard Smith     int n;
2170d58509SRichard Smith   };
2270d58509SRichard Smith } NameForLinkage2;
2370d58509SRichard Smith auto name_for_linkage2_inner_b = NameForLinkage2::Inner();
2470d58509SRichard Smith typedef decltype(name_for_linkage2_inner_b) NameForLinkage2Inner;
25f463436dSRichard Smith 
26f463436dSRichard Smith namespace Aliased { extern int b; }
27f463436dSRichard Smith namespace Alias = Aliased;
28*f81c2cc6SRichard Smith 
29*f81c2cc6SRichard Smith struct InhCtorA { InhCtorA(int); };
30*f81c2cc6SRichard Smith struct InhCtorB : InhCtorA { using InhCtorA::InhCtorA; };
31