https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116883
Bug ID: 116883 Summary: Compile cpp code with rv32imafc_zve32f failed Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: fanghuaqi at vip dot qq.com Target Milestone: --- Test code can be found in https://godbolt.org/z/fWWMbTMod As below cat tmp.cpp #include <riscv_vector.h> int main() { unsigned long arraya[128], arrayb[128], arrayc[128]; for (int i; i < 128; i++) { arraya[i] = arrayb[i] + arrayc[i]; } return 0; } riscv64-unknown-elf-gcc -march=rv32imafc_zve32f -mabi=ilp32f -c tmp.cpp It will report error like this /opt/compiler-explorer/riscv32/gcc-trunk-20240928/riscv32-unknown-linux-gnu/lib/gcc/riscv32-unknown-linux-gnu/15.0.0/include/riscv_vector.h:40:25: error: ambiguating new declaration of 'vint64m4_t __riscv_vle64(vbool16_t, const long long int*, unsigned int)' 40 | #pragma riscv intrinsic "vector" | ^~~~~~~~ /opt/compiler-explorer/riscv32/gcc-trunk-20240928/riscv32-unknown-linux-gnu/lib/gcc/riscv32-unknown-linux-gnu/15.0.0/include/riscv_vector.h:40:25: note: old declaration 'vint64m1_t __riscv_vle64(vbool64_t, const long long int*, unsigned int)' /opt/compiler-explorer/riscv32/gcc-trunk-20240928/riscv32-unknown-linux-gnu/lib/gcc/riscv32-unknown-linux-gnu/15.0.0/include/riscv_vector.h:40:25: error: ambiguating new declaration of 'vuint64m4_t __riscv_vle64(vbool16_t, const long long unsigned int*, unsigned int)' /opt/compiler-explorer/riscv32/gcc-trunk-20240928/riscv32-unknown-linux-gnu/lib/gcc/riscv32-unknown-linux-gnu/15.0.0/include/riscv_vector.h:40:25: note: old declaration 'vuint64m1_t __riscv_vle64(vbool64_t, const long long unsigned int*, unsigned int)' It works in gcc 13.3.0, clang 19.1.0 and clang truck(20), but failed in gcc 14.1.0/14.2.0/truck(15) Thanks