From 9597d24c7f80ac78eb9beb0b4c8a6310b1c847d3 Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Mon, 19 Oct 2020 16:23:31 +0200 Subject: [PATCH] [Ada] Sync wide Ada.String hashing units gcc/ada/ * libgnat/a-stzhas.adb (Wide_Wide_Hash): Instantiate inside a wrapper function. * libgnat/a-stzhas.ads (Wide_Wide_Hash): Likewise; remove wrong comment, because this is indeed a RM unit, as described in Ada RM A.4.8 (1/3). --- gcc/ada/libgnat/a-stzhas.adb | 14 ++++++++++---- gcc/ada/libgnat/a-stzhas.ads | 6 +----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/gcc/ada/libgnat/a-stzhas.adb b/gcc/ada/libgnat/a-stzhas.adb index 43abb800599..c055de6f73a 100644 --- a/gcc/ada/libgnat/a-stzhas.adb +++ b/gcc/ada/libgnat/a-stzhas.adb @@ -29,8 +29,14 @@ -- -- ------------------------------------------------------------------------------ --- This package does not require a body, since it is an instantiation. We --- provide a dummy file containing a No_Body pragma so that previous versions --- of the body (which did exist) will not interfere. +with System.String_Hash; -pragma No_Body; +function Ada.Strings.Wide_Wide_Hash + (Key : Wide_Wide_String) return Containers.Hash_Type +is + use Ada.Containers; + function Hash_Fun is new System.String_Hash.Hash + (Wide_Wide_Character, Wide_Wide_String, Hash_Type); +begin + return Hash_Fun (Key); +end Ada.Strings.Wide_Wide_Hash; diff --git a/gcc/ada/libgnat/a-stzhas.ads b/gcc/ada/libgnat/a-stzhas.ads index 0c87672b520..dea0ff14670 100644 --- a/gcc/ada/libgnat/a-stzhas.ads +++ b/gcc/ada/libgnat/a-stzhas.ads @@ -13,13 +13,9 @@ -- -- ------------------------------------------------------------------------------ --- Is this really an RM unit? Doc needed??? - with Ada.Containers; -with System.String_Hash; function Ada.Strings.Wide_Wide_Hash -is new System.String_Hash.Hash - (Wide_Wide_Character, Wide_Wide_String, Containers.Hash_Type); + (Key : Wide_Wide_String) return Containers.Hash_Type; pragma Pure (Ada.Strings.Wide_Wide_Hash); -- 2.30.2