From 0b0eb1f6f62eef958beea20726d437b535fbd43a Mon Sep 17 00:00:00 2001 From: charlet Date: Fri, 17 Feb 2012 14:15:46 +0000 Subject: 2012-02-17 Yannick Moy * gnat_rm.texi: Minor shuffling. 2012-02-17 Ed Schonberg * aspects.adb: Expression functions can carry pre/postconditions. * par-ch6.adb (P_Subprogram): look for optional pre/postconditions in an expression function. * sem_prag (Check_Precondition_Postcondition): legal on expression functions. 2012-02-17 Vincent Pucci * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb, * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb, * a-convec.adb, a-coorma.adb (Adjust): New routine. (Constant_Reference): Increment Busy and Lock counters. (Reference): Increase Busy and Lock counters. (Finalize): New routine. * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb: (Adjust): New routine. (Constant_Reference): Increment Busy and Lock counters. (Finalize): New routine. * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads, * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads, * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads, * a-coorma.ads, a-coorse: Controlled component added to the reference types. 2012-02-17 Robert Dewar * restrict.adb (Check_Restriction): Add special handling for No_Obsolescent_Features. 2012-02-17 Hristian Kirtchev * exp_util.adb (Find_Finalize_Address): When dealing with an internally built full view for a type with unknown discriminants, use the original record type. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@184341 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ada/a-ciorma.ads | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) (limited to 'gcc/ada/a-ciorma.ads') diff --git a/gcc/ada/a-ciorma.ads b/gcc/ada/a-ciorma.ads index 7599b3e6dbb..5c3a776c4aa 100644 --- a/gcc/ada/a-ciorma.ads +++ b/gcc/ada/a-ciorma.ads @@ -109,18 +109,22 @@ package Ada.Containers.Indefinite_Ordered_Maps is function Constant_Reference (Container : aliased Map; Position : Cursor) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Position : Cursor) return Reference_Type; + pragma Inline (Reference); function Constant_Reference (Container : aliased Map; Key : Key_Type) return Constant_Reference_Type; + pragma Inline (Constant_Reference); function Reference (Container : aliased in out Map; Key : Key_Type) return Reference_Type; + pragma Inline (Reference); procedure Assign (Target : in out Map; Source : Map); @@ -292,8 +296,22 @@ private for Cursor'Read use Read; + type Reference_Control_Type is + new Controlled with record + Container : Map_Access; + end record; + + overriding procedure Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + type Constant_Reference_Type - (Element : not null access constant Element_Type) is null record; + (Element : not null access constant Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; @@ -308,7 +326,10 @@ private for Constant_Reference_Type'Write use Write; type Reference_Type - (Element : not null access Element_Type) is null record; + (Element : not null access Element_Type) is + record + Control : Reference_Control_Type; + end record; procedure Read (Stream : not null access Root_Stream_Type'Class; -- cgit v1.2.1