summaryrefslogtreecommitdiff
path: root/gcc/ada/s-stoele.ads
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-06 10:49:08 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2007-06-06 10:49:08 +0000
commitd570bc7b39f2a13790b984a9518262bf66d010dc (patch)
tree1d03d1d13e6397e09f20b29ba0b7da5ce2876a78 /gcc/ada/s-stoele.ads
parent29aacb7d48e75b7d6f131bd00a0ead0a362a300d (diff)
downloadgcc-d570bc7b39f2a13790b984a9518262bf66d010dc.tar.gz
2007-04-20 Eric Botcazou <ebotcazou@adacore.com>
* s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier than their first call. Add type Dummy_Communication_Block used in the generation of the pre- defined dispatching primitive _disp_asynchronous_select. (Storage_Element): Put Pragma Universal_Aliasing on it. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125467 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/s-stoele.ads')
-rw-r--r--gcc/ada/s-stoele.ads30
1 files changed, 29 insertions, 1 deletions
diff --git a/gcc/ada/s-stoele.ads b/gcc/ada/s-stoele.ads
index 3b1527bfbdc..2bc6c8bb20e 100644
--- a/gcc/ada/s-stoele.ads
+++ b/gcc/ada/s-stoele.ads
@@ -6,7 +6,7 @@
-- --
-- S p e c --
-- --
--- Copyright (C) 2002-2006, Free Software Foundation, Inc. --
+-- Copyright (C) 2002-2007, Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -64,6 +64,13 @@ package System.Storage_Elements is
type Storage_Element is mod 2 ** Storage_Unit;
for Storage_Element'Size use Storage_Unit;
+ pragma Warnings (Off);
+ pragma Universal_Aliasing (Storage_Element);
+ pragma Warnings (On);
+ -- This type is used by the expansion to implement aggregate copy.
+ -- We turn off warnings for this pragma to deal with being compiled
+ -- with an earlier GNAT version that does not recognize this pragma.
+
type Storage_Array is
array (Storage_Offset range <>) of aliased Storage_Element;
for Storage_Array'Component_Size use Storage_Unit;
@@ -111,4 +118,25 @@ package System.Storage_Elements is
pragma Inline_Always (To_Integer);
pragma Pure_Function (To_Integer);
+ -- The following is a dummy record designed to mimic Communication_Block as
+ -- defined in s-tpobop.ads:
+
+ -- type Communication_Block is record
+ -- Self : Task_Id; -- An access type
+ -- Enqueued : Boolean := True;
+ -- Cancelled : Boolean := False;
+ -- end record;
+
+ -- The record is used in the construction of the predefined dispatching
+ -- primitive _disp_asynchronous_select in order to avoid the import of
+ -- System.Tasking.Protected_Objects.Operations. Note that this package
+ -- is always imported in the presence of interfaces since the dispatch
+ -- table uses entities from here.
+
+ type Dummy_Communication_Block is record
+ Comp_1 : Address; -- Address and access have the same size
+ Comp_2 : Boolean;
+ Comp_3 : Boolean;
+ end record;
+
end System.Storage_Elements;