https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127553

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Robin Dapp <[email protected]>:

https://gcc.gnu.org/g:2b980c3e11a6b6ef0223d1668672bac877038185

commit r17-4723-g2b980c3e11a6b6ef0223d1668672bac877038185
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.

Reply via email to