https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105619
Bug ID: 105619 Summary: Wrong "used in its own initializer" with class prvalue Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: mpolacek at gcc dot gnu.org Target Milestone: --- struct A { const A *p = this; }; constexpr A bar (A) { return {}; } constexpr A a = bar (A{}); constexpr auto *p = a.p; // #1 #1 is rejected with 'a' used in its own initializer: $ ./cc1plus -quiet bug.C bug.C:12:21: error: the value of ‘a’ is not usable in a constant expression 12 | constexpr auto *p = a.p; // #1 | ^ bug.C:11:13: note: ‘a’ used in its own initializer 11 | constexpr A a = bar (A{}); | ^ but 'a' is not actually used in the initializer?