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

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-14 branch has been updated by Jakub Jelinek
<ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:448f84a49caba91a1eb159197afb19dbf662ce15

commit r14-11147-g448f84a49caba91a1eb159197afb19dbf662ce15
Author: Jakub Jelinek <ja...@redhat.com>
Date:   Thu Nov 28 10:23:47 2024 +0100

    builtins: Handle BITINT_TYPE in __builtin_iseqsig folding [PR117802]

    In check_builtin_function_arguments in the _BitInt patchset I've changed
    INTEGER_TYPE tests to INTEGER_TYPE or BITINT_TYPE, but haven't done the
    same in fold_builtin_iseqsig, which now ICEs because of that.

    The following patch fixes that.

    BTW, that TYPE_PRECISION (type0) >= TYPE_PRECISION (type1) test
    for REAL_TYPE vs. REAL_TYPE looks pretty random and dangerous, I think
    it would be useful to handle this builtin also in the C and C++ FEs,
    if both arguments have REAL_TYPE, use the FE specific routine to decide
    which types to use and error if a comparison between types would be
    erroneous (e.g. complain about _Decimal* vs. float/double/long
    double/_Float*, pick up the preferred type, complain about
    __ibm128 vs. _Float128 in C++, etc.).
    But the FEs can just promote one argument to the other in that case
    and keep fold_builtin_iseqsig as is for say Fortran and other FEs.

    2024-11-28  Jakub Jelinek  <ja...@redhat.com>

            PR c/117802
            * builtins.cc (fold_builtin_iseqsig): Handle BITINT_TYPE like
            INTEGER_TYPE.

            * gcc.dg/builtin-iseqsig-1.c: New test.
            * gcc.dg/bitint-118.c: New test.

    (cherry picked from commit 88aeea14c23a5d066a635ffb4f1d2943fddcf0bd)
  • [Bug c/117802] ICE: SIGSEGV in ... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to