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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Iain Buclaw
<ibuc...@gcc.gnu.org>:

https://gcc.gnu.org/g:89f0f83cdd1192f682f849e289b6188f9dbff961

commit r11-8807-g89f0f83cdd1192f682f849e289b6188f9dbff961
Author: Iain Buclaw <ibuc...@gdcproject.org>
Date:   Sun Jul 25 23:19:36 2021 +0200

    d: Compile-time reflection for supported built-ins (PR101127)

    In order to allow user-code to determine whether a back-end builtin is
    available without error, LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE has been
    defined to delay putting back-end builtin functions until the ISA that
    defines them has been declared.

    However in D, there is no global namespace.  All builtins get pushed
    into the `gcc.builtins' module, which is constructed during the semantic
    analysis pass, which has already finished by the time target attributes
    are evaluated.  So builtins are not pushed by the new langhook because
    they would be ultimately ignored.  Builtins exposed to D code then can
    now only be altered by the command-line.

            PR d/101127

    gcc/d/ChangeLog:

            * d-builtins.cc (d_builtin_function_ext_scope): New function.
            * d-lang.cc (LANG_HOOKS_BUILTIN_FUNCTION_EXT_SCOPE): Define.
            * d-tree.h (d_builtin_function_ext_scope): Declare.

    gcc/testsuite/ChangeLog:

            * gdc.dg/pr101127a.d: New test.
            * gdc.dg/pr101127b.d: New test.

    (cherry picked from commit b2f6e1de242fff5713763cd3146dcf3f9dee51ca)

Reply via email to