https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117504

Patrick Palka <ppalka at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |ice-on-valid-code
      Known to work|                            |7.5.0
   Target Milestone|---                         |12.5
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
            Summary|Incorrect code emitted when |[12/13/14/15 Regression]
                   |using "constexpr            |Incorrect code emitted when
                   |std::array"                 |using "constexpr
                   |                            |std::array"
                 CC|                            |ppalka at gcc dot gnu.org
   Last reconfirmed|                            |2024-11-12

--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Reduced:

struct span {
#if 1
  span(const int (&__first)[1]) : _M_ptr(__first) {}
#else
  span(const int* __first) : _M_ptr(__first) {}
#endif
  int operator[](long __i) { return _M_ptr[__i]; }
  const int *_M_ptr;
};
int main() {
  constexpr int a_vec[]{1};
  auto vec{[&a_vec]() -> span { return a_vec; }()};
  if (vec[0] != 1)
    __builtin_abort();
}

Started with r8-3497-g281e6c1d8f1b4c.  If we toggle the #if then we instead ICE
from build_address.
  • [Bug c++/117504] New: I... arnaud02 at users dot sourceforge.net via Gcc-bugs
    • [Bug c++/117504] [... ppalka at gcc dot gnu.org via Gcc-bugs

Reply via email to