diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-09-10 15:56:18 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-09-10 15:56:18 +0200 |
commit | b636db2e16616aeba2b0db14b0b9c4cd7ee0190c (patch) | |
tree | bf8122ccdc6c1f0d22cb7e09475e9e0ecfbd376f /gcc | |
parent | a113c55d5aaa0764c6455405f3235abe14a74320 (diff) | |
download | gcc-b636db2e16616aeba2b0db14b0b9c4cd7ee0190c.tar.gz |
[multiple changes]
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.
From-SVN: r164177
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 c39e7c72181..04c73a9fda2 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 14d13908292..376f9cadf60 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 3ab05f009bf..ae2e1af86fc 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; |