xref: /llvm-project/clang/test/Modules/Inputs/redecl-add-after-load-decls.h (revision 0279375836d72371f7aaee46595a1b337c1e4c90)
1851072efSRichard Smith typedef struct A B;
2851072efSRichard Smith extern const int variable;
3851072efSRichard Smith extern constexpr int function();
test(bool b)4851072efSRichard Smith constexpr int test(bool b) { return b ? variable : function(); }
5851072efSRichard Smith 
6851072efSRichard Smith namespace N {
7851072efSRichard Smith   typedef struct A B;
8851072efSRichard Smith   extern const int variable;
9851072efSRichard Smith   extern constexpr int function();
10851072efSRichard Smith }
11851072efSRichard Smith typedef N::B NB;
N_test(bool b)12851072efSRichard Smith constexpr int N_test(bool b) { return b ? N::variable : N::function(); }
13851072efSRichard Smith 
14851072efSRichard Smith @import redecl_add_after_load_top;
15851072efSRichard Smith typedef C::A CB;
C_test(bool b)16851072efSRichard Smith constexpr int C_test(bool b) { return b ? C::variable : C::function(); }
17851072efSRichard Smith 
18851072efSRichard Smith struct D {
19*02793758SRichard Smith   struct A;
20851072efSRichard Smith   static const int variable;
21*02793758SRichard Smith   static constexpr int function();
22851072efSRichard Smith };
23851072efSRichard Smith typedef D::A DB;
D_test(bool b)24*02793758SRichard Smith constexpr int D_test(bool b) { return b ? D::variable : D::function(); }
25