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

             Bug #: 51372
           Summary: internal compiler error: in write_builtin_type, at
                    cp/mangle.c:2204
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
        AssignedTo: unassig...@gcc.gnu.org
        ReportedBy: car...@google.com
              Host: x86_64-build_unknown-linux-gnu
            Target: arm-unknown-linux-gnueabi
             Build: x86_64-build_unknown-linux-gnu


Compile the following source code with trunk g++ and options -march=armv7-a
-mfloat-abi=softfp -mfpu=neon -O2

#include <arm_neon.h>

void x(float32x4_t v0, float32_t f)
{
  float32x4_t vv = vmulq_n_f32( v0, f);
}

GCC generates:

t0d2.ii:16:6: internal compiler error: in write_builtin_type, at
cp/mangle.c:2204
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

The simplified preprocessed source code is:

-----------------------------------------------
typedef __builtin_neon_sf float32x4_t __attribute__ ((__vector_size__ (16)));

typedef __builtin_neon_sf float32_t;

__extension__ static __inline float32x4_t __attribute__ ((__always_inline__))
vmulq_n_f32 (float32x4_t __a, float32_t __b)
{
  return (float32x4_t)__builtin_neon_vmul_nv4sf (__a, __b, 3);
}

void x(float32x4_t v0, float32_t f)
{
  float32x4_t vv = vmulq_n_f32( v0, f);
}
------------------------------------------------

The complete command line is

cc1plus "-fpreprocessed" "t0d2.ii" "-quiet" "-dumpbase" "t0d.cpp"
"-march=armv7-a" "-mfloat-abi=softfp" "-mfpu=neon" "-auxbase-strip" "obj/t0d.o"
"-O2" "-o" "t0d.s"


This ICE is also existed in GCC 4.6.

Reply via email to