1851072efSRichard Smith typedef struct A B; 2851072efSRichard Smith extern const int variable; 3851072efSRichard Smith extern constexpr int function(); test(bool b)4851072efSRichard Smithconstexpr 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 Smithconstexpr 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 Smithconstexpr 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 Smithconstexpr int D_test(bool b) { return b ? D::variable : D::function(); } 25