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.