public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()`.
@ 2023-04-29 17:13 dpsicilia at gmail dot com
  2023-04-29 17:28 ` [Bug c++/109680] " pinskia at gcc dot gnu.org
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: dpsicilia at gmail dot com @ 2023-04-29 17:13 UTC (permalink / raw)
  To: gcc-bugs

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

            Bug ID: 109680
           Summary: Regression where `int() const` is considered
                    convertible to `int(*)()`.
           Product: gcc
           Version: 13.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: dpsicilia at gmail dot com
  Target Milestone: ---

Demo of problem: https://godbolt.org/z/4z3zs8ocz

Minimal repro:

  static_assert( std::is_convertible_v<int() const, int(*)()> );

fails on all major compilers in C++20 mode, including GCC 12.2, but now passes
on GCC 13.1.0.

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

* [Bug c++/109680] Regression where `int() const` is considered convertible to `int(*)()`.
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
@ 2023-04-29 17:28 ` pinskia at gcc dot gnu.org
  2023-04-29 17:42 ` [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true pinskia at gcc dot gnu.org
                   ` (13 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-04-29 17:28 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Created attachment 54957
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54957&action=edit
Full testcase including the include

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
  2023-04-29 17:28 ` [Bug c++/109680] " pinskia at gcc dot gnu.org
@ 2023-04-29 17:42 ` pinskia at gcc dot gnu.org
  2023-05-01  9:03 ` jakub at gcc dot gnu.org
                   ` (12 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-04-29 17:42 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |13.2
     Ever confirmed|0                           |1
            Summary|Regression where `int()     |[13/14 Regression]
                   |const` is considered        |is_convertible<int() const,
                   |convertible to `int(*)()`.  |int(*)()> incorrectly true
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2023-04-29
           Keywords|accepts-invalid             |

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
The difference is how is_convertible is defined ...
In GCC 13 it is using the newly created builtin __is_convertible.
If we use the original preprocessed source from gcc 12 with GCC 13 (with one
minor change renaming __is_nothrow_convertible to __is_nothrow_convertible1),
GCC 13 works correctly.

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
  2023-04-29 17:28 ` [Bug c++/109680] " pinskia at gcc dot gnu.org
  2023-04-29 17:42 ` [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true pinskia at gcc dot gnu.org
@ 2023-05-01  9:03 ` jakub at gcc dot gnu.org
  2023-05-01 16:09 ` mpolacek at gcc dot gnu.org
                   ` (11 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-01  9:03 UTC (permalink / raw)
  To: gcc-bugs

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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org,
                   |                            |mpolacek at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
r13-2822-g8a7bcf95a82c3dd implemented __is_{,nothrow_}convertible for GCC 13,
CCing Marek.

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (2 preceding siblings ...)
  2023-05-01  9:03 ` jakub at gcc dot gnu.org
@ 2023-05-01 16:09 ` mpolacek at gcc dot gnu.org
  2023-05-01 16:32 ` jakub at gcc dot gnu.org
                   ` (10 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2023-05-01 16:09 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
           Assignee|unassigned at gcc dot gnu.org      |mpolacek at gcc dot gnu.org
           Priority|P3                          |P2

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (3 preceding siblings ...)
  2023-05-01 16:09 ` mpolacek at gcc dot gnu.org
@ 2023-05-01 16:32 ` jakub at gcc dot gnu.org
  2023-05-01 23:13 ` mpolacek at gcc dot gnu.org
                   ` (9 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-01 16:32 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #4 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
template <typename T, typename U = T&&>
U __declval (int);
template <typename T>
T __declval (long);
template <typename T>
auto declval () noexcept -> decltype (__declval <T> (0));
using To = int () const;
using From = int (*) ();
To foo () { return declval <From> (); }
From bar () { return declval <To> (); }
static_assert (!__is_convertible (To, From), "");
static_assert (!__is_convertible (From, To), "");
should show that both assertions should succeed.  Dunno if in this case the
reason why it isn't convertible is simply the fact that functions can't be
declared to return function/method/array types or some other reason as well.

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (4 preceding siblings ...)
  2023-05-01 16:32 ` jakub at gcc dot gnu.org
@ 2023-05-01 23:13 ` mpolacek at gcc dot gnu.org
  2023-05-02  7:36 ` jakub at gcc dot gnu.org
                   ` (8 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2023-05-01 23:13 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #5 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
(In reply to Jakub Jelinek from comment #4)
> template <typename T, typename U = T&&>
> U __declval (int);
> template <typename T>
> T __declval (long);
> template <typename T>
> auto declval () noexcept -> decltype (__declval <T> (0));
> using To = int () const;
> using From = int (*) ();
> To foo () { return declval <From> (); }
> From bar () { return declval <To> (); }
> static_assert (!__is_convertible (To, From), "");
> static_assert (!__is_convertible (From, To), "");
> should show that both assertions should succeed.  

Thanks.

> Dunno if in this case the
> reason why it isn't convertible is simply the fact that functions can't be
> declared to return function/method/array types or some other reason as well.

Yeah, I'm also not sure, so I think this should fix it:

--- a/gcc/cp/method.cc
+++ b/gcc/cp/method.cc
@@ -2245,6 +2245,8 @@ is_convertible_helper (tree from, tree to)
 {
   if (VOID_TYPE_P (from) && VOID_TYPE_P (to))
     return integer_one_node;
+  if (FUNC_OR_METHOD_TYPE_P (from) || FUNC_OR_METHOD_TYPE_P (to))
+    return error_mark_node;
   cp_unevaluated u;
   tree expr = build_stub_object (from);
   deferring_access_check_sentinel acs (dk_no_deferred);


Since
static_assert (!__is_convertible (int[3], int[3]), "");
already passes, arrays are handled correctly I think.

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (5 preceding siblings ...)
  2023-05-01 23:13 ` mpolacek at gcc dot gnu.org
@ 2023-05-02  7:36 ` jakub at gcc dot gnu.org
  2023-05-02 19:22 ` mpolacek at gcc dot gnu.org
                   ` (7 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: jakub at gcc dot gnu.org @ 2023-05-02  7:36 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Not sure about the from case, but what do I know about C++?
While To type is directly returned from a function, std::declval doesn't return
From but
From &&.
#include <type_traits>

using F1 = int (int);
using T1 = int (*) (int);
static_assert (std::is_convertible_v<F1, T1>);
using F2 = int (int) const;
using T2 = int (*) (int);
static_assert (!std::is_convertible_v<F2, T2>);
using F3 = int (*) (int);
using T3 = int (int);
static_assert (!std::is_convertible_v<F3, T3>);
using F4 = int (*) (int);
using T4 = int (int) const;
static_assert (!std::is_convertible_v<F4, T4>);

passes in both g++ 12 and clang++.
And, on

using F1 = int (int);
using T1 = int (*) (int);
static_assert (__is_convertible(F1, T1));
using F2 = int (int) const;
using T2 = int (*) (int);
static_assert (!__is_convertible(F2, T2));
using F3 = int (*) (int);
using T3 = int (int);
static_assert (!__is_convertible(F3, T3));
using F4 = int (*) (int);
using T4 = int (int) const;
static_assert (!__is_convertible(F4, T4));

clang++ emits:
/tmp/2a.C:6:34: error: non-member function of type 'F2' (aka 'int (int) const')
cannot have 'const' qualifier
static_assert (!__is_convertible(F2, T2));
                                 ^
/tmp/2a.C:6:1: error: static_assert failed due to requirement
'!__is_convertible(int (int), int (*)(int))'
static_assert (!__is_convertible(F2, T2));
^              ~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/2a.C:12:38: error: non-member function of type 'T4' (aka 'int (int)
const') cannot have 'const' qualifier
static_assert (!__is_convertible(F4, T4));
                                     ^
while g++ trunk
/tmp/2a.C:6:16: error: static assertion failed
    6 | static_assert (!__is_convertible(F2, T2));
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (6 preceding siblings ...)
  2023-05-02  7:36 ` jakub at gcc dot gnu.org
@ 2023-05-02 19:22 ` mpolacek at gcc dot gnu.org
  2023-05-03 12:58 ` mpolacek at gcc dot gnu.org
                   ` (6 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2023-05-02 19:22 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Ah, I think I see what's going on here.  Once again, the problem is that this
assert no longer passes:

#include <utility>
static_assert (!std::is_convertible_v <int () const, int (*) ()>, "");

std::is_convertible does
To test() { return std::declval<From>(); }
here, From is 'int () const'.

std::declval is defined as:

template<class T>
typename std::add_rvalue_reference<T>::type declval() noexcept;

Now, std::add_rvalue_reference is defined as "If T is a function type that has
no cv- or ref- qualifier or an object type, provides a member typedef type
which is T&&, otherwise type is T."

In our case, T is cv-qualified, so the result is T, so we end up with

int () const declval() noexcept;

which is invalid.  In other words:

using T = int () const;
T fn1(); // bad, fn returning a fn
T& fn2(); // bad, cannot declare reference to qualified function type
T* fn3(); // bad, cannot declare pointer to qualified function type

using U = int ();
U fn4(); // bad, fn returning a fn
U& fn5(); // OK
U* fn6(); // OK

So the check we're looking for is probably

if (TREE_CODE (type) == FUNCTION_TYPE
    && (type_memfn_quals (type) != TYPE_UNQUALIFIED
        || type_memfn_rqual (type) != REF_QUAL_NONE))

but I think it should be put wherever we simulate declval().

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (7 preceding siblings ...)
  2023-05-02 19:22 ` mpolacek at gcc dot gnu.org
@ 2023-05-03 12:58 ` mpolacek at gcc dot gnu.org
  2023-05-10 22:25 ` cvs-commit at gcc dot gnu.org
                   ` (5 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2023-05-03 12:58 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch

--- Comment #8 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Patch: <https://gcc.gnu.org/pipermail/gcc-patches/2023-May/617311.html>

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

* [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (8 preceding siblings ...)
  2023-05-03 12:58 ` mpolacek at gcc dot gnu.org
@ 2023-05-10 22:25 ` cvs-commit at gcc dot gnu.org
  2023-05-10 22:25 ` [Bug c++/109680] [13 " mpolacek at gcc dot gnu.org
                   ` (4 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2023-05-10 22:25 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #9 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Marek Polacek <mpolacek@gcc.gnu.org>:

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

commit r14-669-g4c2ffb02fd4104d77c5d907662f04434dc4c3fe8
Author: Marek Polacek <polacek@redhat.com>
Date:   Tue May 2 17:36:00 2023 -0400

    c++: wrong std::is_convertible with cv-qual fn [PR109680]

    This PR points out that std::is_convertible has given the wrong answer
    in

      static_assert (!std::is_convertible_v <int () const, int (*) ()>, "");

    since r13-2822 implemented __is_{,nothrow_}convertible.

    std::is_convertible uses the imaginary

      To test() { return std::declval<From>(); }

    to do its job.  Here, From is 'int () const'.  std::declval is defined as:

      template<class T>
      typename std::add_rvalue_reference<T>::type declval() noexcept;

    std::add_rvalue_reference is defined as "If T is a function type that
    has no cv- or ref- qualifier or an object type, provides a member typedef
    type which is T&&, otherwise type is T."

    In our case, T is cv-qualified, so the result is T, so we end up with

      int () const declval() noexcept;

    which is invalid.  In other words, this is pretty much like:

      using T = int () const;
      T fn1(); // bad, fn returning a fn
      T& fn2(); // bad, cannot declare reference to qualified function type
      T* fn3(); // bad, cannot declare pointer to qualified function type

      using U = int ();
      U fn4(); // bad, fn returning a fn
      U& fn5(); // OK
      U* fn6(); // OK

    I think is_convertible_helper needs to simulate std::declval better.
    To that end, I'm introducing build_trait_object, to be used where
    a declval is needed.

            PR c++/109680

    gcc/cp/ChangeLog:

            * method.cc (build_trait_object): New.
            (assignable_expr): Use it.
            (ref_xes_from_temporary): Likewise.
            (is_convertible_helper): Likewise.  Check FUNC_OR_METHOD_TYPE_P.

    gcc/testsuite/ChangeLog:

            * g++.dg/ext/is_convertible6.C: New test.

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

* [Bug c++/109680] [13 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (9 preceding siblings ...)
  2023-05-10 22:25 ` cvs-commit at gcc dot gnu.org
@ 2023-05-10 22:25 ` mpolacek at gcc dot gnu.org
  2023-07-03 12:08 ` dpsicilia at gmail dot com
                   ` (3 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: mpolacek at gcc dot gnu.org @ 2023-05-10 22:25 UTC (permalink / raw)
  To: gcc-bugs

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

Marek Polacek <mpolacek at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[13/14 Regression]          |[13 Regression]
                   |is_convertible<int() const, |is_convertible<int() const,
                   |int(*)()> incorrectly true  |int(*)()> incorrectly true

--- Comment #10 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Fixed on trunk so far.

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

* [Bug c++/109680] [13 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (10 preceding siblings ...)
  2023-05-10 22:25 ` [Bug c++/109680] [13 " mpolacek at gcc dot gnu.org
@ 2023-07-03 12:08 ` dpsicilia at gmail dot com
  2023-07-03 12:36 ` redi at gcc dot gnu.org
                   ` (2 subsequent siblings)
  14 siblings, 0 replies; 16+ messages in thread
From: dpsicilia at gmail dot com @ 2023-07-03 12:08 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #11 from David Sicilia <dpsicilia at gmail dot com> ---
Does anyone know which version of gcc this fix will be available in?  Will it
be merged into 13.1 or does it have to wait until 13.2?

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

* [Bug c++/109680] [13 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (11 preceding siblings ...)
  2023-07-03 12:08 ` dpsicilia at gmail dot com
@ 2023-07-03 12:36 ` redi at gcc dot gnu.org
  2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  2023-08-04 18:08 ` pinskia at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: redi at gcc dot gnu.org @ 2023-07-03 12:36 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #12 from Jonathan Wakely <redi at gcc dot gnu.org> ---
13.1 has already been released, it can't be changed now.

As comment 10 says, the fix is only on trunk so far and has not been backported
to the gcc-13 branch. It will be in the next 13.x release after it's backported
to that branch.

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

* [Bug c++/109680] [13 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (12 preceding siblings ...)
  2023-07-03 12:36 ` redi at gcc dot gnu.org
@ 2023-07-27  9:25 ` rguenth at gcc dot gnu.org
  2023-08-04 18:08 ` pinskia at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: rguenth at gcc dot gnu.org @ 2023-07-27  9:25 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|13.2                        |13.3

--- Comment #13 from Richard Biener <rguenth at gcc dot gnu.org> ---
GCC 13.2 is being released, retargeting bugs to GCC 13.3.

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

* [Bug c++/109680] [13 Regression] is_convertible<int() const, int(*)()> incorrectly true
  2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
                   ` (13 preceding siblings ...)
  2023-07-27  9:25 ` rguenth at gcc dot gnu.org
@ 2023-08-04 18:08 ` pinskia at gcc dot gnu.org
  14 siblings, 0 replies; 16+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-08-04 18:08 UTC (permalink / raw)
  To: gcc-bugs

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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nikolasklauser at berlin dot de

--- Comment #14 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
*** Bug 110904 has been marked as a duplicate of this bug. ***

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

end of thread, other threads:[~2023-08-04 18:08 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-29 17:13 [Bug c++/109680] New: Regression where `int() const` is considered convertible to `int(*)()` dpsicilia at gmail dot com
2023-04-29 17:28 ` [Bug c++/109680] " pinskia at gcc dot gnu.org
2023-04-29 17:42 ` [Bug c++/109680] [13/14 Regression] is_convertible<int() const, int(*)()> incorrectly true pinskia at gcc dot gnu.org
2023-05-01  9:03 ` jakub at gcc dot gnu.org
2023-05-01 16:09 ` mpolacek at gcc dot gnu.org
2023-05-01 16:32 ` jakub at gcc dot gnu.org
2023-05-01 23:13 ` mpolacek at gcc dot gnu.org
2023-05-02  7:36 ` jakub at gcc dot gnu.org
2023-05-02 19:22 ` mpolacek at gcc dot gnu.org
2023-05-03 12:58 ` mpolacek at gcc dot gnu.org
2023-05-10 22:25 ` cvs-commit at gcc dot gnu.org
2023-05-10 22:25 ` [Bug c++/109680] [13 " mpolacek at gcc dot gnu.org
2023-07-03 12:08 ` dpsicilia at gmail dot com
2023-07-03 12:36 ` redi at gcc dot gnu.org
2023-07-27  9:25 ` rguenth at gcc dot gnu.org
2023-08-04 18:08 ` pinskia 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).