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: unassig...@gcc.gnu.org

        ReportedBy: tim.northo...@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.

Reply via email to