16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestypedef struct A B; 26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesextern const int variable; 36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesextern constexpr int function(); 46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesconstexpr int test(bool b) { return b ? variable : function(); } 56bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 66bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesnamespace N { 76bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines typedef struct A B; 86bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines extern const int variable; 96bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines extern constexpr int function(); 106bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines} 116bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestypedef N::B NB; 126bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesconstexpr int N_test(bool b) { return b ? N::variable : N::function(); } 136bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 146bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines@import redecl_add_after_load_top; 156bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestypedef C::A CB; 166bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesconstexpr int C_test(bool b) { return b ? C::variable : C::function(); } 176bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines 186bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesstruct D { 196bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines struct A; // expected-note {{forward}} 206bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines static const int variable; 216bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines static constexpr int function(); // expected-note {{here}} 226bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}; 236bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinestypedef D::A DB; 246bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesconstexpr int D_test(bool b) { return b ? D::variable : D::function(); } // expected-note {{subexpression}} expected-note {{undefined}} 25