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

--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Gaius Mulley <ga...@gcc.gnu.org>:

https://gcc.gnu.org/g:b1af867d22e3108402c62f97d8fcd1df303c9dab

commit r14-9675-gb1af867d22e3108402c62f97d8fcd1df303c9dab
Author: Gaius Mulley <gaiusm...@gmail.com>
Date:   Tue Mar 26 15:33:52 2024 +0000

    PR modula2/114478 isnormal builtin unavailable from m2

    This patch adds isnormal (and isgreater, isless, isgreaterequal,
    islessequal, islessgreater, isunordered) c99 macro similar prototyped
    builtins to m2.

    gcc/m2/ChangeLog:

            PR modula2/114478
            * gm2-gcc/m2builtins.cc (struct builtin_macro_definition): New
struct.
            (lookup_builtin_macro): New function.
            (m2builtins_BuildBuiltinTree): Rewrite to lookup builtin function
            and builtin macro.
            (lookup_builtin_function): New function.
            (define_builtin): Rename parameter type to prototype push macro
            definition to builtin_macros vector.
            (define_builtin_ext): New function.
            (define_builtin_math): New function.
            (m2builtins_init): Add isgreater, isless, isgreaterequal,
            islessequal, islessgreater, isunordered, isnormal to macro
definitions.
            * gm2-libs/Builtins.def (isgreater): New procedure function.
            (isgreaterf): Ditto.
            (isgreaterl): Ditto.
            (isgreaterequal): Ditto.
            (isgreaterequalf): Ditto.
            (isgreaterequall): Ditto.
            (isless): Ditto.
            (islessf): Ditto.
            (islessl): Ditto.
            (islessequal): Ditto.
            (islessequalf): Ditto.
            (islessequall): Ditto.
            (islessgreater): Ditto.
            (islessgreaterf): Ditto.
            (islessgreaterl): Ditto.
            (isunordered): Ditto.
            (isunorderedf): Ditto.
            (isunorderedl): Ditto.
            (iseqsig): Ditto.
            (iseqsigf): Ditto.
            (iseqsigl): Ditto.
            (isnormal): Ditto.
            (isnormalf): Ditto.
            (isnormall): Ditto.
            (isinf_sign): Ditto.
            (isinf_signf): Ditto.
            (isinf_signl): Ditto.
            * gm2-libs/Builtins.mod (isgreater): New procedure function.
            (isgreaterf): Ditto.
            (isgreaterl): Ditto.
            (isgreaterequal): Ditto.
            (isgreaterequalf): Ditto.
            (isgreaterequall): Ditto.
            (isless): Ditto.
            (islessf): Ditto.
            (islessl): Ditto.
            (islessequal): Ditto.
            (islessequalf): Ditto.
            (islessequall): Ditto.
            (islessgreater): Ditto.
            (islessgreaterf): Ditto.
            (islessgreaterl): Ditto.
            (isunordered): Ditto.
            (isunorderedf): Ditto.
            (isunorderedl): Ditto.
            (iseqsig): Ditto.
            (iseqsigf): Ditto.
            (iseqsigl): Ditto.
            (isnormal): Ditto.
            (isnormalf): Ditto.
            (isnormall): Ditto.
            (isinf_sign): Ditto.
            (isinf_signf): Ditto.
            (isinf_signl): Ditto.

    gcc/testsuite/ChangeLog:

            PR modula2/114478
            * gm2/builtins/run/pass/builtins-run-pass.exp: New test.
            * gm2/builtins/run/pass/testcomparisons.mod: New test.
            * gm2/builtins/run/pass/testisnormal.mod: New test.
            * gm2/pimlib/run/pass/testchar.mod: New test.

    Signed-off-by: Gaius Mulley <gaiusm...@gmail.com>

Reply via email to