summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_ch7.adb
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-06 13:57:33 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2004-07-06 13:57:33 +0000
commit5c99c290e017aced8ef378745fd0070ec80894af (patch)
tree242c4d5505932ff31c97e368e02a5597dee1c5a9 /gcc/ada/exp_ch7.adb
parent6b122edbab8bb1030b2f9286dfdbdaa9a629707c (diff)
downloadgcc-5c99c290e017aced8ef378745fd0070ec80894af.tar.gz
2004-07-06 Vincent Celier <celier@gnat.com>
* vms_conv.ads: Minor reformatting. Alphabetical order for enumerated values of type Command_Type, to have the command in alphabetical order for the usage. * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters). * gnat_ugn.texi: Document new switch -dn for the GNAT driver. * makegpr.adb (Global_Archive_Exists): New global Boolean variable (Add_Archive_Path): Only add the global archive if there is one. (Build_Global_Archive): Set Global_Archive_Exists depending if there is or not any object file to put in the global archive, and don't build a global archive if there is none. (X_Switches): New table (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored in the X_Switches table, if any. (Initialize): Make sure the X_Switches table is empty (Scan_Arg): Record -X switches in table X_Switches * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False. * make.adb: Minor comment fix * gnatname.adb (Gnatname): When not on VMS, and gnatname has been invoked with directory information, add the directory in front of the path. * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been invoked with directory information, add the directory in front of the path. * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files when Keep_Temporary_Files is False. (GNATCmd): When not on VMS, and the GNAT driver has been invoked with directory information, add the directory in front of the path. When not on VMS, handle new switch -dn before the command to set Keep_Temporary_Files to True. (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid everywhere. * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been invoked with directory information, add the directory in front of the path. 2004-07-06 Thomas Quinot <quinot@act-europe.fr> * snames.ads, snames.adb (Name_Stub): New name for the distributed systems annex. * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB. New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA. * g-socket.adb (To_Timeval): Fix incorrect conversion of Selector_Duration to Timeval for the case of 0.0. * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of documentation from Evolve_And_Then. 2004-07-06 Jose Ruiz <ruiz@act-europe.fr> * s-taprop-tru64.adb, s-taprop-os2.adb, s-taprop-mingw.adb, s-taprop-posix.adb: Update comment. 2004-07-06 Robert Dewar <dewar@gnat.com> * s-osinte-hpux.ads, s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb, s-interr-sigaction.adb, s-taprop-irix-athread.adb, s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb, a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb, a-tags.ads, bindgen.ads, checks.adb, checks.adb, csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb, exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb, g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb, i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb, sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb, sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads, s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads, s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb, s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb, vms_data.ads: Minor reformatting, Fix bad box comment format. * gnat_rm.texi: Fix minor grammatical error * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many more cases of discriminated records to be recognized as not needing a secondary stack. (Has_Access_Values): New function. * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence with LRM terminology). Change terminology in comments primitive type => elementary type. 2004-07-06 Ed Schonberg <schonberg@gnat.com> PR ada/15602 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal parameters do not impose any requirements on the presence of a body. 2004-07-06 Ed Schonberg <schonberg@gnat.com> PR ada/15593 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a compilation unit and is in an open scope at the point of instantiation, assume that a body may be present later. 2004-07-06 Ed Schonberg <schonberg@gnat.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size): Improve error message when specified size is not supported. * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram is never a primitive operation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84152 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/ada/exp_ch7.adb')
-rw-r--r--gcc/ada/exp_ch7.adb99
1 files changed, 38 insertions, 61 deletions
diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index 426658564e2..a6567aa4cda 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -130,8 +130,7 @@ package body Exp_Ch7 is
Is_Master : Boolean;
Is_Protected_Subprogram : Boolean;
Is_Task_Allocation_Block : Boolean;
- Is_Asynchronous_Call_Block : Boolean)
- return Node_Id;
+ Is_Asynchronous_Call_Block : Boolean) return Node_Id;
-- Expand a the clean-up procedure for controlled and/or transient
-- block, and/or task master or task body, or blocks used to
-- implement task allocation or asynchronous entry calls, or
@@ -153,8 +152,7 @@ package body Exp_Ch7 is
function Make_Transient_Block
(Loc : Source_Ptr;
- Action : Node_Id)
- return Node_Id;
+ Action : Node_Id) return Node_Id;
-- Create a transient block whose name is Scope, which is also a
-- controlled block if Flist is not empty and whose only code is
-- Action (either a single statement or single declaration).
@@ -184,8 +182,7 @@ package body Exp_Ch7 is
function Make_Deep_Proc
(Prim : Final_Primitives;
Typ : Entity_Id;
- Stmts : List_Id)
- return Node_Id;
+ Stmts : List_Id) return Node_Id;
-- This function generates the tree for Deep_Initialize, Deep_Adjust
-- or Deep_Finalize procedures according to the first parameter,
-- these procedures operate on the type Typ. The Stmts parameter
@@ -193,8 +190,7 @@ package body Exp_Ch7 is
function Make_Deep_Array_Body
(Prim : Final_Primitives;
- Typ : Entity_Id)
- return List_Id;
+ Typ : Entity_Id) return List_Id;
-- This function generates the list of statements for implementing
-- Deep_Initialize, Deep_Adjust or Deep_Finalize procedures
-- according to the first parameter, these procedures operate on the
@@ -202,8 +198,7 @@ package body Exp_Ch7 is
function Make_Deep_Record_Body
(Prim : Final_Primitives;
- Typ : Entity_Id)
- return List_Id;
+ Typ : Entity_Id) return List_Id;
-- This function generates the list of statements for implementing
-- Deep_Initialize, Deep_Adjust or Deep_Finalize procedures
-- according to the first parameter, these procedures operate on the
@@ -230,8 +225,7 @@ package body Exp_Ch7 is
function Convert_View
(Proc : Entity_Id;
Arg : Node_Id;
- Ind : Pos := 1)
- return Node_Id;
+ Ind : Pos := 1) return Node_Id;
-- Proc is one of the Initialize/Adjust/Finalize operations, and
-- Arg is the argument being passed to it. Ind indicates which
-- formal of procedure Proc we are trying to match. This function
@@ -503,8 +497,7 @@ package body Exp_Ch7 is
function Cleanup_Array
(N : Node_Id;
Obj : Node_Id;
- Typ : Entity_Id)
- return List_Id
+ Typ : Entity_Id) return List_Id
is
Loc : constant Source_Ptr := Sloc (N);
Index_List : constant List_Id := New_List;
@@ -601,8 +594,7 @@ package body Exp_Ch7 is
function Cleanup_Record
(N : Node_Id;
Obj : Node_Id;
- Typ : Entity_Id)
- return List_Id
+ Typ : Entity_Id) return List_Id
is
Loc : constant Source_Ptr := Sloc (N);
Tsk : Node_Id;
@@ -671,14 +663,13 @@ package body Exp_Ch7 is
return Stmts;
end Cleanup_Record;
- -------------------------------
- -- Cleanup_Protected_Object --
- -------------------------------
+ ------------------------------
+ -- Cleanup_Protected_Object --
+ ------------------------------
function Cleanup_Protected_Object
- (N : Node_Id;
- Ref : Node_Id)
- return Node_Id
+ (N : Node_Id;
+ Ref : Node_Id) return Node_Id
is
Loc : constant Source_Ptr := Sloc (N);
@@ -747,9 +738,8 @@ package body Exp_Ch7 is
------------------
function Cleanup_Task
- (N : Node_Id;
- Ref : Node_Id)
- return Node_Id
+ (N : Node_Id;
+ Ref : Node_Id) return Node_Id
is
Loc : constant Source_Ptr := Sloc (N);
begin
@@ -852,12 +842,12 @@ package body Exp_Ch7 is
-- If type is not frozen yet, check explicitly among its components,
-- because flag is not necessarily set.
- ------------------------------------
- -- Has_Some_Controlled_Component --
- ------------------------------------
+ -----------------------------------
+ -- Has_Some_Controlled_Component --
+ -----------------------------------
- function Has_Some_Controlled_Component (Rec : Entity_Id)
- return Boolean
+ function Has_Some_Controlled_Component
+ (Rec : Entity_Id) return Boolean
is
Comp : Entity_Id;
@@ -966,8 +956,7 @@ package body Exp_Ch7 is
function Convert_View
(Proc : Entity_Id;
Arg : Node_Id;
- Ind : Pos := 1)
- return Node_Id
+ Ind : Pos := 1) return Node_Id
is
Fent : Entity_Id := First_Entity (Proc);
Ftyp : Entity_Id;
@@ -1424,9 +1413,8 @@ package body Exp_Ch7 is
Len_Ref : Node_Id := Empty;
function Last_Array_Component
- (Ref : Node_Id;
- Typ : Entity_Id)
- return Node_Id;
+ (Ref : Node_Id;
+ Typ : Entity_Id) return Node_Id;
-- Creates a reference to the last component of the array object
-- designated by Ref whose type is Typ.
@@ -1435,9 +1423,8 @@ package body Exp_Ch7 is
--------------------------
function Last_Array_Component
- (Ref : Node_Id;
- Typ : Entity_Id)
- return Node_Id
+ (Ref : Node_Id;
+ Typ : Entity_Id) return Node_Id
is
Index_List : constant List_Id := New_List;
@@ -1685,9 +1672,8 @@ package body Exp_Ch7 is
---------------------
function Find_Final_List
- (E : Entity_Id;
- Ref : Node_Id := Empty)
- return Node_Id
+ (E : Entity_Id;
+ Ref : Node_Id := Empty) return Node_Id
is
Loc : constant Source_Ptr := Sloc (Ref);
S : Entity_Id;
@@ -2020,8 +2006,7 @@ package body Exp_Ch7 is
(Ref : Node_Id;
Typ : Entity_Id;
Flist_Ref : Node_Id;
- With_Attach : Node_Id)
- return List_Id
+ With_Attach : Node_Id) return List_Id
is
Loc : constant Source_Ptr := Sloc (Ref);
Res : constant List_Id := New_List;
@@ -2131,10 +2116,9 @@ package body Exp_Ch7 is
-- System.FI.Attach_To_Final_List (Flist, Ref, Nb_Link)
function Make_Attach_Call
- (Obj_Ref : Node_Id;
- Flist_Ref : Node_Id;
- With_Attach : Node_Id)
- return Node_Id
+ (Obj_Ref : Node_Id;
+ Flist_Ref : Node_Id;
+ With_Attach : Node_Id) return Node_Id
is
Loc : constant Source_Ptr := Sloc (Obj_Ref);
@@ -2170,8 +2154,7 @@ package body Exp_Ch7 is
Is_Master : Boolean;
Is_Protected_Subprogram : Boolean;
Is_Task_Allocation_Block : Boolean;
- Is_Asynchronous_Call_Block : Boolean)
- return Node_Id
+ Is_Asynchronous_Call_Block : Boolean) return Node_Id
is
Loc : constant Source_Ptr := Sloc (Clean);
Stmt : constant List_Id := New_List;
@@ -2477,8 +2460,7 @@ package body Exp_Ch7 is
function Make_Deep_Array_Body
(Prim : Final_Primitives;
- Typ : Entity_Id)
- return List_Id
+ Typ : Entity_Id) return List_Id
is
Loc : constant Source_Ptr := Sloc (Typ);
@@ -2588,8 +2570,7 @@ package body Exp_Ch7 is
function Make_Deep_Proc
(Prim : Final_Primitives;
Typ : Entity_Id;
- Stmts : List_Id)
- return Entity_Id
+ Stmts : List_Id) return Entity_Id
is
Loc : constant Source_Ptr := Sloc (Typ);
Formals : List_Id;
@@ -2664,8 +2645,7 @@ package body Exp_Ch7 is
function Make_Deep_Record_Body
(Prim : Final_Primitives;
- Typ : Entity_Id)
- return List_Id
+ Typ : Entity_Id) return List_Id
is
Loc : constant Source_Ptr := Sloc (Typ);
Controller_Typ : Entity_Id;
@@ -2767,8 +2747,7 @@ package body Exp_Ch7 is
function Make_Final_Call
(Ref : Node_Id;
Typ : Entity_Id;
- With_Detach : Node_Id)
- return List_Id
+ With_Detach : Node_Id) return List_Id
is
Loc : constant Source_Ptr := Sloc (Ref);
Res : constant List_Id := New_List;
@@ -2893,8 +2872,7 @@ package body Exp_Ch7 is
(Ref : Node_Id;
Typ : Entity_Id;
Flist_Ref : Node_Id;
- With_Attach : Node_Id)
- return List_Id
+ With_Attach : Node_Id) return List_Id
is
Loc : constant Source_Ptr := Sloc (Ref);
Is_Conc : Boolean;
@@ -3012,8 +2990,7 @@ package body Exp_Ch7 is
function Make_Transient_Block
(Loc : Source_Ptr;
- Action : Node_Id)
- return Node_Id
+ Action : Node_Id) return Node_Id
is
Flist : constant Entity_Id := Finalization_Chain_Entity (Current_Scope);
Decls : constant List_Id := New_List;