When compiling a function with parameter of a pointer to a vector constant type, the compiler calls a recursive function and is not able to get out.
Concretely, in gcc/cp/mangle.c file, in function write_type: if (write_CV_qualifiers_for_type (type) > 0) /* If TYPE was CV-qualified, we just wrote the qualifiers; now mangle the unqualified type. The recursive call is needed here since both the qualified and unqualified types are substitution candidates. */ write_type (TYPE_MAIN_VARIANT (type)); But TYPE_MAIN_VARIANT (type) has been set as type itself in gcc/tree.c function make_node_stat: case tcc_type: ... TYPE_MAIN_VARIANT (t) = t; Therefor the write_type function runs into a dead recursion. The bug was detected on spu, and the same error appears on PowerPC and Intel too. The following is a test case on Intel: void bar( int __attribute__((vector_size(16))) * a, int __attribute__((vector_size(16))) * const b); int instance(void) { int __attribute__((vector_size(16))) a[1], b[1]; bar(a, b); } -- Summary: C++ frontend can not handle vector pointer constant parameter Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: saliu at de dot ibm dot com GCC build triplet: powerpc64-unknown-linux-gnu GCC host triplet: powerpc64-unknown-linux-gnu GCC target triplet: spu-unknown-elf http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32970