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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|Internal compiler error     |[11/12 Regression] Internal
                   |when                        |compiler error when
                   |std::lexicographical_compar |std::lexicographical_compar
                   |e_three_way third and       |e_three_way third and
                   |fourth argument are reverse |fourth argument are reverse
                   |iterators                   |iterators
     Ever confirmed|0                           |1
   Target Milestone|---                         |11.2
          Component|libstdc++                   |c++
                 CC|                            |jason at gcc dot gnu.org,
                   |                            |ppalka at gcc dot gnu.org
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2021-05-03

--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Seems to be a frontend issue, started with r11-5866.  Reduced:

#include <compare>

struct iter {
  bool current;
  iter(iter &);
};

constexpr bool operator==(const iter &, const iter &__y) {
  return __y.current;
}

void lexicographical_compare_three_way(iter a) {
  (a == a) <=> true;
}

Reply via email to