https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127553
--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-16 branch has been updated by Jeff Law <[email protected]>: https://gcc.gnu.org/g:edec216117d563c244ebedd2e565fa286b9ab94b commit r16-9774-gedec216117d563c244ebedd2e565fa286b9ab94b Author: Robin Dapp <[email protected]> Date: Tue Sep 22 14:18:45 2026 +0200 RISC-V: Error out early for unsupported builtins. [PR127553] Right now we only show an error if the expansion of a builtin fails. But there is builtin code that get optimized away before expansion and never shows an error message. It's not strictly wrong code but at least surprising and will mislead compilation checks. This patch just copies the checks of expand_builtin to check_builtin_call. We don't have the exact same expression of the affected call available at that point, though. The basic fndecl just contains the function name and not its arguments. We can reconstruct the call but in my tests there were always slight difference to the expand-time diagnostic. Therefore I adjusted the test expectations instead. PR target/127553 gcc/ChangeLog: * config/riscv/riscv-vector-builtins.cc (validate_instance_type_required_extensions): Add location param for logging. (expand_builtin): Pass location. (check_builtin_call): Likewise. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/base/bug-9.c: Adjust test expectation. * gcc.target/riscv/rvv/base/intrinsic_required_ext-1.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-10.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-2.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-3.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-4.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-5.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-6.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-7.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-8.c: Ditto. * gcc.target/riscv/rvv/base/intrinsic_required_ext-9.c: Ditto. * gcc.target/riscv/rvv/base/pr114988-1.c: Ditto. * gcc.target/riscv/rvv/base/pr114988-2.c: Ditto. * gcc.target/riscv/rvv/base/pr120436.c: Ditto. * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-17.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-18.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-19.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-20.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-21.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-22.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-23.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-24.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-25.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-26.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-27.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-28.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-29.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-3.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-7.c: * gcc.target/riscv/rvv/base/target_attribute_v_with_intrinsic-8.c: * gcc.target/riscv/pr127553.c: New test. (cherry picked from commit 2b980c3e11a6b6ef0223d1668672bac877038185)
