From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 21409 invoked by alias); 6 Jan 2015 17:14:19 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 21377 invoked by uid 48); 6 Jan 2015 17:14:14 -0000 From: "belagod at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug target/56025] ARM NEON polynomial types have broken overload resolution Date: Tue, 06 Jan 2015 17:14:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: target X-Bugzilla-Version: 4.8.0 X-Bugzilla-Keywords: ABI X-Bugzilla-Severity: normal X-Bugzilla-Who: belagod at gcc dot gnu.org X-Bugzilla-Status: RESOLVED 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_status cc resolution Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-01/txt/msg00317.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56025 Tejas Belagod changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED CC| |belagod at gcc dot gnu.org Resolution|--- |FIXED --- Comment #2 from Tejas Belagod --- (In reply to Tim Northover from comment #0) > While investigating bug #56024, we discovered this problem in the same area. > Essentially, GCC has semi-special builtin types to cover poly8_t and > poly16_t defined in arm_neon.h. > > These types are used by G++ when calculating the overload resolution. The > following two functions can both be defined with no issues in the front-end: > > #include > void foo(short s) {} > void foo(__builtin_neon_poly16 s) {} > > However, in the resulting assembly they are both mangled as _Z3foos, which > causes a conflict. > > This mangling area is likely to be affected by any change fixing 56024, so a > sensible combined solution might be a good idea. This should now be fixed. Now mangled as _Z3foos and _Z3foo10__Poly16_t respectively. .cpu generic+fp+simd .file "gpp.cpp" .text .align 2 .p2align 3,,7 .global _Z3foos .type _Z3foos, %function _Z3foos: .LFB3026: .cfi_startproc ret .cfi_endproc .LFE3026: .size _Z3foos, .-_Z3foos .align 2 .p2align 3,,7 .global _Z3foo10__Poly16_t .type _Z3foo10__Poly16_t, %function _Z3foo10__Poly16_t: .LFB3027: .cfi_startproc ret .cfi_endproc .LFE3027: .size _Z3foo10__Poly16_t, .-_Z3foo10__Poly16_t .ident "GCC: (unknown) 5.0.0 20141229 (experimental)"