https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94523
Bug ID: 94523
Summary: [10 Regression] error: 'constexpr' evaluation depth
exceeds maximum of 512 (use '-fconstexpr-depth=' to
increase the maximum) since r10-7490-g76f09260b7eccd6c
Product: gcc
Version: 10.0
Status: UNCONFIRMED
Keywords: rejects-valid
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: marxin at gcc dot gnu.org
CC: jason at gcc dot gnu.org
Target Milestone: ---
It's a test-case reduced from pybind11 package:
$ cat pybind11.ii
template <bool, typename a> using b = a;
struct d {
char ao;
template <typename ap> constexpr d(ap) : ao{} {}
};
template <int... au> struct e { static constexpr auto aw = d(au...); };
template <int c> b<c, d> ax(e<1>::aw);
$ g++-9 pybind11.ii -c
$ g++ pybind11.ii -c
...
pybind11.ii:6:55: in 'constexpr' expansion of 'd(1)'
pybind11.ii:6:55: in 'constexpr' expansion of 'd(1)'
pybind11.ii:6:55: in 'constexpr' expansion of 'd(1)'
pybind11.ii:6:55: in 'constexpr' expansion of 'd(1)'
pybind11.ii:6:55: in 'constexpr' expansion of 'd(1)'
pybind11.ii:6:55: error: 'constexpr' evaluation depth exceeds maximum of 512
(use '-fconstexpr-depth=' to increase the maximum)
6 | template <int... au> struct e { static constexpr auto aw = d(au...); };
| ^~