[Bug c++/56025] New: ARM NEON polynomial types have broken overload resolution

Tim.Northover at arm dot com gcc-bugzilla@gcc.gnu.org
Fri Jan 18 09:39:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56025

             Bug #: 56025
           Summary: ARM NEON polynomial types have broken overload
                    resolution
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: Tim.Northover@arm.com


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 <arm_neon.h>
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.



More information about the Gcc-bugs mailing list