https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118528
Bug ID: 118528 Summary: [15 Regression] Template argument deduction failure with RAW_DATA_CST Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jakub at gcc dot gnu.org Target Milestone: --- // { dg-do compile { target c++20 } } template<class T> struct E { T t[130][2]; }; E e1 { #embed __FILE__ limit (260) }; template<class T> struct F { T t[2][130]; }; F f1 { #embed __FILE__ limit (260) }; F f2 { { { #embed __FILE__ limit (130) }, { #embed __FILE__ limit (130) } } }; FAILs since the introduction of #embed optimizations for C++, while // { dg-do compile { target c++20 } } template<class T> struct E { T t[130][2]; }; #define P 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 #define Q { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 }, { 9, 10 }, { 11, 12 }, \ { 13, 14 }, { 15, 16 } E e1 { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, 1, 2, 3, 4 }; E e2 { { Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, Q, { 1, 2 }, { 3, 4 } } }; template<class T> struct F { T t[2][130]; }; F f1 { P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, P, 1, 2, 3, 4 }; F f2 { { { P, P, P, P, P, P, P, P, 1, 2 }, { P, P, P, P, P, P, P, P, 3, 4 } } }; FAILed from r15-6339 till before r15-6448 and will fail again once r15-6339 is committed again.