diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 11 | ||||
-rw-r--r-- | gcc/ada/exp_cg.adb | 18 | ||||
-rw-r--r-- | gcc/ada/s-pooglo.ads | 6 |
3 files changed, 31 insertions, 4 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index c39e7c7..04c73a9 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,14 @@ +2010-09-10 Jose Ruiz <ruiz@adacore.com> + + * exp_cg.adb (Is_Predefined_Dispatching_Operation): When trying the + pattern matching to detect predefined primitive operations take into + account that there can be an extra suffix related to body-nested + package entities. + +2010-09-10 Ed Schonberg <schonberg@adacore.com> + + * s-pooglo.ads: Add overriding indicators. + 2010-09-10 Vincent Celier <celier@adacore.com> * vms_data.ads: Add new GNAT BIND qualifiers /32_MALLOC (for -H32) and diff --git a/gcc/ada/exp_cg.adb b/gcc/ada/exp_cg.adb index 14d1390..376f9ca 100644 --- a/gcc/ada/exp_cg.adb +++ b/gcc/ada/exp_cg.adb @@ -265,9 +265,25 @@ package body Exp_CG is Name_uDisp_Requeue, Name_uDisp_Timed_Select); - Suffix_Length : constant Natural := Homonym_Suffix_Length (E); + Suffix_Length : Natural; begin + -- Search for and strip suffix for body-nested package entities + + Suffix_Length := Homonym_Suffix_Length (E); + for J in reverse Full_Name'First + 2 .. Full_Name'Last loop + if Full_Name (J) = 'X' then + + -- Include the "X", "Xb", "Xn", ... in the part of the + -- suffix to be removed. + + Suffix_Length := Suffix_Length + Full_Name'Last - J + 1; + exit; + end if; + + exit when Full_Name (J) /= 'b' and then Full_Name (J) /= 'n'; + end loop; + for J in Predef_Names_95'Range loop Get_Name_String (Predef_Names_95 (J)); diff --git a/gcc/ada/s-pooglo.ads b/gcc/ada/s-pooglo.ads index 3ab05f0..ae2e1af 100644 --- a/gcc/ada/s-pooglo.ads +++ b/gcc/ada/s-pooglo.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2009, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2010, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -57,13 +57,13 @@ package System.Pool_Global is (Pool : Unbounded_No_Reclaim_Pool) return System.Storage_Elements.Storage_Count; - procedure Allocate + overriding procedure Allocate (Pool : in out Unbounded_No_Reclaim_Pool; Address : out System.Address; Storage_Size : System.Storage_Elements.Storage_Count; Alignment : System.Storage_Elements.Storage_Count); - procedure Deallocate + overriding procedure Deallocate (Pool : in out Unbounded_No_Reclaim_Pool; Address : System.Address; Storage_Size : System.Storage_Elements.Storage_Count; |