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...); };
      |                                                       ^~

Reply via email to