This adds a package renaming unit to the GNAT hierarchy so as to expose
the underlying implementation of floating-point mathematical functions,
thus also making it possible to use their vector implementation, if any.

The change also contains a small improvement to the Hide_Public_Entities
mechanism in Sem_Ch7 that makes it possible to clear the Is_Public flag
within instances of generic packages that do not have a body.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

        * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-gfmafu$(objext).
        (SIMD_PATH_TARGET_PAIRS): New variable.
        (TRASYM_DWARF_COMMON_OBJS): Minor tweak.
        (x86-64/Linux): Use SIMD_PATH_TARGET_PAIRS.
        (x32/Linux): Likewise.
        * doc/gnat_rm/the_gnat_library.rst (Generic_Fast_Math_Functions):
        New entry.
        * gnat_rm.texi: Regenerate.
        * impunit.adb (Non_Imp_File_Names_95): Add g-gfmafu.
        * sem_ch7.adb (Has_Referencer): Do not set In_Nested_Instance for
        instances of generic packages that do not have a body.
        * libgnat/a-nalofl__simd.ads: New SIMD-enabled version.
        * libgnat/a-nuaufl__simd.ads: Likewise.
        * libgnat/g-gfmafu.ads: New package renaming unit.

Attachment: patch.diff.gz
Description: application/gzip

Reply via email to