public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/98842] New: optional's spaceship operations generates wrong code when operator== is not present
@ 2021-01-26 18:09 nunoplopes at sapo dot pt
  2021-01-26 18:56 ` [Bug libstdc++/98842] " gcc@nicholas-schwab.de
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: nunoplopes at sapo dot pt @ 2021-01-26 18:09 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 98842
           Summary: optional's spaceship operations generates wrong code
                    when operator== is not present
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: nunoplopes at sapo dot pt
  Target Milestone: ---

struct expr {
  std::strong_ordering operator<=>(const expr &rhs) const;
  //bool operator==(const expr &rhs) const;
};

int f() {
  return std::is_eq(std::optional<expr>() <=> std::optional<expr>());
  //return std::optional<expr>() == std::optional<expr>();
}


Function f() is compiled to 0 like that. But if you uncomment the
expr::operator== line, it returns 1.

https://gcc.godbolt.org/z/fv85eP

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2024-03-28 11:24 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-26 18:09 [Bug libstdc++/98842] New: optional's spaceship operations generates wrong code when operator== is not present nunoplopes at sapo dot pt
2021-01-26 18:56 ` [Bug libstdc++/98842] " gcc@nicholas-schwab.de
2021-01-26 21:45 ` gcc@nicholas-schwab.de
2021-01-26 22:55 ` redi at gcc dot gnu.org
2021-06-07 14:47 ` cvs-commit at gcc dot gnu.org
2021-06-11 22:25 ` cvs-commit at gcc dot gnu.org
2021-07-22 15:34 ` cvs-commit at gcc dot gnu.org
2021-07-22 15:36 ` redi at gcc dot gnu.org
2024-03-28 11:24 ` redi at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).