public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18
@ 2024-04-30  2:38 de34 at live dot cn
  2024-04-30  4:18 ` [Bug libstdc++/114891] " pinskia at gcc dot gnu.org
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: de34 at live dot cn @ 2024-04-30  2:38 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 114891
           Summary: Unconditional use of
                    std::is_pointer_interconvertible_base_of_v in
                    <generator> makes the header unusable with Clang 18
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: de34 at live dot cn
  Target Milestone: ---

Clang only supports the intrinsic for is_pointer_interconvertible_base_of_v
since 19 (https://github.com/llvm/llvm-project/pull/88473).
It seems that the uses of is_pointer_interconvertible_base_of_v is not strictly
needed. Perhaps we should guard the uses with
__cpp_lib_is_pointer_interconvertible to support old versions of Clang.

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

* [Bug libstdc++/114891] Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18
  2024-04-30  2:38 [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18 de34 at live dot cn
@ 2024-04-30  4:18 ` pinskia at gcc dot gnu.org
  2024-04-30  7:27 ` redi at gcc dot gnu.org
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: pinskia at gcc dot gnu.org @ 2024-04-30  4:18 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
So a C++23 library header (generator) is using a C++20 feature
(is_pointer_interconvertible_base_of_v) ...

Especially since GCC 14.1.0 will most likely be released with this header and
14.2.0 won't come out until Summer end (around most likely around the same time
as clang 19). And GCC 15.1.0 won't come out until April/May 2025.
Supporting older clang which does not have C++20 support for something which is
C++23 (which itself won't fully be supported until GCC 15 at earliest).

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

* [Bug libstdc++/114891] Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18
  2024-04-30  2:38 [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18 de34 at live dot cn
  2024-04-30  4:18 ` [Bug libstdc++/114891] " pinskia at gcc dot gnu.org
@ 2024-04-30  7:27 ` redi at gcc dot gnu.org
  2024-05-01 16:27 ` cvs-commit at gcc dot gnu.org
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2024-04-30  7:27 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever confirmed|0                           |1
   Last reconfirmed|                            |2024-04-30

--- Comment #2 from Jonathan Wakely <redi at gcc dot gnu.org> ---
It's only used for static assertions, so we can just disable those when the
feature isn't supported. But it's not a big deal, Clang users can just not use
<generator> for now.

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

* [Bug libstdc++/114891] Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18
  2024-04-30  2:38 [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18 de34 at live dot cn
  2024-04-30  4:18 ` [Bug libstdc++/114891] " pinskia at gcc dot gnu.org
  2024-04-30  7:27 ` redi at gcc dot gnu.org
@ 2024-05-01 16:27 ` cvs-commit at gcc dot gnu.org
  2024-05-01 16:28 ` redi at gcc dot gnu.org
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-01 16:27 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <redi@gcc.gnu.org>:

https://gcc.gnu.org/g:1fbe1a50d86df11f434351cf62461a32747f9710

commit r15-92-g1fbe1a50d86df11f434351cf62461a32747f9710
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Apr 30 09:48:00 2024 +0100

    libstdc++: Guard uses of is_pointer_interconvertible_v [PR114891]

    This type trait isn't supported by Clang 18. It's only used in static
    assertions, so they can just be omitted if the trait isn't available.

    libstdc++-v3/ChangeLog:

            PR libstdc++/114891
            * include/std/generator: Check feature test macro before using
            is_pointer_interconvertible_v.

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

* [Bug libstdc++/114891] Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18
  2024-04-30  2:38 [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18 de34 at live dot cn
                   ` (2 preceding siblings ...)
  2024-05-01 16:27 ` cvs-commit at gcc dot gnu.org
@ 2024-05-01 16:28 ` redi at gcc dot gnu.org
  2024-05-14  9:50 ` cvs-commit at gcc dot gnu.org
  2024-05-14  9:55 ` redi at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2024-05-01 16:28 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |14.2

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

* [Bug libstdc++/114891] Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18
  2024-04-30  2:38 [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18 de34 at live dot cn
                   ` (3 preceding siblings ...)
  2024-05-01 16:28 ` redi at gcc dot gnu.org
@ 2024-05-14  9:50 ` cvs-commit at gcc dot gnu.org
  2024-05-14  9:55 ` redi at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2024-05-14  9:50 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Jonathan Wakely
<redi@gcc.gnu.org>:

https://gcc.gnu.org/g:4d3b358fd757ddd09cbee202f47939043c78676c

commit r14-10206-g4d3b358fd757ddd09cbee202f47939043c78676c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Tue Apr 30 09:48:00 2024 +0100

    libstdc++: Guard uses of is_pointer_interconvertible_v [PR114891]

    This type trait isn't supported by Clang 18. It's only used in static
    assertions, so they can just be omitted if the trait isn't available.

    libstdc++-v3/ChangeLog:

            PR libstdc++/114891
            * include/std/generator: Check feature test macro before using
            is_pointer_interconvertible_v.

    (cherry picked from commit 1fbe1a50d86df11f434351cf62461a32747f9710)

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

* [Bug libstdc++/114891] Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18
  2024-04-30  2:38 [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18 de34 at live dot cn
                   ` (4 preceding siblings ...)
  2024-05-14  9:50 ` cvs-commit at gcc dot gnu.org
@ 2024-05-14  9:55 ` redi at gcc dot gnu.org
  5 siblings, 0 replies; 7+ messages in thread
From: redi at gcc dot gnu.org @ 2024-05-14  9:55 UTC (permalink / raw)
  To: gcc-bugs

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

Jonathan Wakely <redi at gcc dot gnu.org> changed:

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

--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> ---
Fixed for 14.2

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

end of thread, other threads:[~2024-05-14  9:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-04-30  2:38 [Bug libstdc++/114891] New: Unconditional use of std::is_pointer_interconvertible_base_of_v in <generator> makes the header unusable with Clang 18 de34 at live dot cn
2024-04-30  4:18 ` [Bug libstdc++/114891] " pinskia at gcc dot gnu.org
2024-04-30  7:27 ` redi at gcc dot gnu.org
2024-05-01 16:27 ` cvs-commit at gcc dot gnu.org
2024-05-01 16:28 ` redi at gcc dot gnu.org
2024-05-14  9:50 ` cvs-commit at gcc dot gnu.org
2024-05-14  9:55 ` 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).