public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/99429] New: ICE for bool return from <=>
@ 2021-03-06 14:51 msharov at users dot sourceforge.net
  2021-03-06 14:53 ` [Bug c++/99429] " msharov at users dot sourceforge.net
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: msharov at users dot sourceforge.net @ 2021-03-06 14:51 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 99429
           Summary: ICE for bool return from <=>
           Product: gcc
           Version: 10.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: msharov at users dot sourceforge.net
  Target Milestone: ---

Created attachment 50315
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50315&action=edit
std::strong_ordering and incorrect duration code

When erronously declaring <=> to return bool, g++ crashes:

> g++ -c -std=c++20 chrono.cc
chrono.cc: In instantiation of ‘class duration<1>’:
chrono.cc:44:42:   required from here
chrono.cc:38:20: internal compiler error: Segmentation fault
   38 |     constexpr bool operator<=> (const duration& d) const = default;
      |                    ^~~~~~~~

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

* [Bug c++/99429] ICE for bool return from <=>
  2021-03-06 14:51 [Bug c++/99429] New: ICE for bool return from <=> msharov at users dot sourceforge.net
@ 2021-03-06 14:53 ` msharov at users dot sourceforge.net
  2021-03-06 17:49 ` [Bug c++/99429] [10/11 Regression] " jakub at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: msharov at users dot sourceforge.net @ 2021-03-06 14:53 UTC (permalink / raw)
  To: gcc-bugs

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

Mike Sharov <msharov at users dot sourceforge.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #50315|0                           |1
        is obsolete|                            |

--- Comment #1 from Mike Sharov <msharov at users dot sourceforge.net> ---
Created attachment 50316
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=50316&action=edit
incorrect duration

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

* [Bug c++/99429] [10/11 Regression] ICE for bool return from <=>
  2021-03-06 14:51 [Bug c++/99429] New: ICE for bool return from <=> msharov at users dot sourceforge.net
  2021-03-06 14:53 ` [Bug c++/99429] " msharov at users dot sourceforge.net
@ 2021-03-06 17:49 ` jakub at gcc dot gnu.org
  2021-03-06 18:03 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-03-06 17:49 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |10.3
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
            Summary|ICE for bool return from    |[10/11 Regression] ICE for
                   |<=>                         |bool return from <=>
           Priority|P3                          |P2
                 CC|                            |jakub at gcc dot gnu.org
   Last reconfirmed|                            |2021-03-06

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Started to ICE with r10-4397-gb7689b962dd6536bbb2567bfdec52e35109af7ab

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

* [Bug c++/99429] [10/11 Regression] ICE for bool return from <=>
  2021-03-06 14:51 [Bug c++/99429] New: ICE for bool return from <=> msharov at users dot sourceforge.net
  2021-03-06 14:53 ` [Bug c++/99429] " msharov at users dot sourceforge.net
  2021-03-06 17:49 ` [Bug c++/99429] [10/11 Regression] " jakub at gcc dot gnu.org
@ 2021-03-06 18:03 ` jakub at gcc dot gnu.org
  2021-03-07 16:16 ` redi at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-03-06 18:03 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Slightly reduced:
namespace std {
struct strong_ordering {
  int _v;
  constexpr strong_ordering (int v) :_v(v) {}
  constexpr operator int (void) const { return _v; }
  static const strong_ordering less;
  static const strong_ordering equal;
  static const strong_ordering greater;
};
constexpr strong_ordering strong_ordering::less = -1;
constexpr strong_ordering strong_ordering::equal = 0;
constexpr strong_ordering strong_ordering::greater = 1;
}

template <unsigned long N>
struct duration {
  static constexpr const long period = N;
  constexpr duration (void) = default;
  constexpr duration (const duration& d) = default;
  constexpr bool operator== (const duration& d) const = default;
  constexpr bool operator<=> (const duration& d) const = default;
  long _d;
};

using nanoseconds = duration<1>;
using microseconds = duration<nanoseconds::period * 1000>;

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

* [Bug c++/99429] [10/11 Regression] ICE for bool return from <=>
  2021-03-06 14:51 [Bug c++/99429] New: ICE for bool return from <=> msharov at users dot sourceforge.net
                   ` (2 preceding siblings ...)
  2021-03-06 18:03 ` jakub at gcc dot gnu.org
@ 2021-03-07 16:16 ` redi at gcc dot gnu.org
  2021-03-08 16:31 ` jakub at gcc dot gnu.org
  2021-08-12  7:34 ` cvs-commit at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2021-03-07 16:16 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Dup of PR 94162 ?

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

* [Bug c++/99429] [10/11 Regression] ICE for bool return from <=>
  2021-03-06 14:51 [Bug c++/99429] New: ICE for bool return from <=> msharov at users dot sourceforge.net
                   ` (3 preceding siblings ...)
  2021-03-07 16:16 ` redi at gcc dot gnu.org
@ 2021-03-08 16:31 ` jakub at gcc dot gnu.org
  2021-08-12  7:34 ` cvs-commit at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: jakub at gcc dot gnu.org @ 2021-03-08 16:31 UTC (permalink / raw)
  To: gcc-bugs

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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Yes.

*** This bug has been marked as a duplicate of bug 94162 ***

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

* [Bug c++/99429] [10/11 Regression] ICE for bool return from <=>
  2021-03-06 14:51 [Bug c++/99429] New: ICE for bool return from <=> msharov at users dot sourceforge.net
                   ` (4 preceding siblings ...)
  2021-03-08 16:31 ` jakub at gcc dot gnu.org
@ 2021-08-12  7:34 ` cvs-commit at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-08-12  7:34 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jakub Jelinek <jakub@gcc.gnu.org>:

https://gcc.gnu.org/g:9b7ab853bf33106fd0539e36d6ce7730269026e1

commit r12-2873-g9b7ab853bf33106fd0539e36d6ce7730269026e1
Author: Jakub Jelinek <jakub@redhat.com>
Date:   Thu Aug 12 09:16:13 2021 +0200

    c++: Fix ICE on defaulted spaceship with pointer return type [PR94162]

    The spaceship-synth-neg6.C testcase ICEs because we call cat_tag_for
    on the explicit return type, but pointer types don't have
    TYPE_LINKAGE_IDENTIFIER.  The patch fixes that by checking for
    CLASS_TYPE_P only and also adds verification that it is in std
    namespace, so we don't return non-cc_last for
my_namespace::partial_ordering.

    The g++.dg/cpp2a/spaceship-synth11.C testcase is from a PR that has been
    fixed with r12-619-gfc178519771db508c03611cff4a1466cf67fce1d (but
    not backported to 11).

    2021-08-12  Jakub Jelinek  <jakub@redhat.com>

    gcc/cp/
            PR c++/94162
            * method.c (cat_tag_for): Return cc_last for !CLASS_TYPE_P
            or for classes not in std namespace.
    gcc/testsuite/
            PR c++/99429
            * g++.dg/cpp2a/spaceship-synth11.C: New test.

            PR c++/94162
            * g++.dg/cpp2a/spaceship-synth-neg6.C: New test.

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

end of thread, other threads:[~2021-08-12  7:34 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-06 14:51 [Bug c++/99429] New: ICE for bool return from <=> msharov at users dot sourceforge.net
2021-03-06 14:53 ` [Bug c++/99429] " msharov at users dot sourceforge.net
2021-03-06 17:49 ` [Bug c++/99429] [10/11 Regression] " jakub at gcc dot gnu.org
2021-03-06 18:03 ` jakub at gcc dot gnu.org
2021-03-07 16:16 ` redi at gcc dot gnu.org
2021-03-08 16:31 ` jakub at gcc dot gnu.org
2021-08-12  7:34 ` cvs-commit 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).