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.