From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 5397C3858C56; Thu, 16 Jun 2022 08:40:23 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5397C3858C56 From: "jdapena at igalia dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/105996] New: reinterpret_cast in constexpr failure creating a pair with a function pointer of class parent Date: Thu, 16 Jun 2022 08:40:23 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 12.1.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jdapena at igalia dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jun 2022 08:40:23 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D105996 Bug ID: 105996 Summary: reinterpret_cast in constexpr failure creating a pair with a function pointer of class parent Product: gcc Version: 12.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jdapena at igalia dot com Target Milestone: --- Created attachment 53150 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D53150&action=3Dedit Test case When creating an std::pair with a parameter that is a function pointer of t= he parent class (but declared as function pointer of the same class), libstdc++ implementation will try to forward the pointer, even if it is the same type (see the attached example). This code is valid in Clang and MSVC, and was valid in GCC 5.x-7.x. This has been detected through Chromium development with errors to compile https://chromium.googlesource.com/chromium/src.git/+/refs/tags/105.0.5123.1= /pdf/pdf_view_web_plugin.cc#879=