testsuite: 32 bit AIX 2 byte wchar
[official-gcc.git] / gcc / ada / ChangeLog-2005
blob19301f92360940e2bce94fce9128dd9acb81ed22
1 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
5 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
7         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
8         needed.
10 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
12         * Make-lang.in: Update dependencies
14 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
16         * Make-lang.in: Add rule for ada/exp_sel.o
18 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
20         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
22 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
24         * gnatvsn.ads (Library_Version): Bump to version 4.2
25         (ASIS_Version_Number): Bumped.
27 2005-12-09  Doug Rupp  <rupp@adacore.com>
29         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
30         Ada bind file prefix on VMS from b$ to b__.
31         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
32         __init.
34         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
35         Targparm.OpenVMS_On_Target.
36         (Object_Suffix): Initialize with target object suffix.
37         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
39         * butil.adb: Change some Hostparm.OpenVMS checks to
40         Targparm.OpenVMS_On_Target.
42         * clean.adb: Change some Hostparm.OpenVMS checks to
43         Targparm.OpenVMS_On_Target.
44         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
45         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
46         Ada bind file prefix on VMS from b$ to b__.
48         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
49         --GCC so that Get_Target_Parameters can find system.ads.
50         (Gnatlink): Call Get_Target_Parameters in mainline.
51         Initialize standard packages for Targparm.
52         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
53         (Process_Args): Also Check for object files with target object
54         extension.
55         (Make_Binder_File_Names): Create with target object extension.
56         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
57         to b__.
59         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
60         Targparm.OpenVMS_On_Target.
61         ({declaration},Build_Library,Check_Library): Change Ada bind file
62         prefix on VMS from b$ to b__.
64         * osint-b.adb: Change some Hostparm.OpenVMS checks to
65         Targparm.OpenVMS_On_Target.
66         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
67         b__.
69         * targext.c: New file.
71         * Makefile.in: add support for vxworks653 builds
72         (../../vxaddr2line): gnatlink with targext.o.
73         (TOOLS_LIBS): Move targext.o to precede libgnat.
74         (init.o, initialize.o): Minor clean up in dependencies.
75         (GNATLINK_OBJS): Add targparm.o, snames.o
76         Add rules fo building targext.o and linking it explicitly with all
77         tools.
78         Also add targext.o to gnatlib.
80         * Make-lang.in: Add rules for building targext.o and linking it in
81         with gnat1 and gnatbind.
82         Add entry for exp_sel.o.
84         * osint.adb Change some Hostparm.OpenVMS checks to
85         Targparm.OpenVMS_On_Target.
86         (Object_File_Name): Use target object suffix.
88         * osint.ads (Object_Suffix): Remove, no longer used.
89         (Target_Object_Suffix): Initialize with target object suffix.
91         * rident.ads: Add special exception to license.
93         * targparm.adb (Get_Target_Parameters): Set the value of
94         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
95         value.
96         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
98         * targparm.ads: Add special exception to license.
100         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
101         function.
102         (Copy_File): Make sure from file is closed if error on to file
103         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
105         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
106         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
108         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
109         target object suffix.
111 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
112             Quentin Ochem  <ochem@adacore.com>
113             Florian Villoing  <villoing@adacore.com>
115         * a-taster.ads, a-taster.adb: New files.
117         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
118         link to the version that does nothing. This way the task termination
119         routine is not executed twice for the environment task when finishing
120         because of an unhandled exception.
122         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
123         handler because of an unhandled exception.
125         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
126         System.Tasking.Utilities instead of that in System.Tasking.Stages.
128         * s-finimp.adb (initialization code): Modify the soft link for the
129         finalization of the global list instead of Adafinal.
131         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
132         non-tasking version of the soft link for task termination. We do
133         nothing since if we are using the non-tasking version it
134         means that the task termination functionality is not used.
135         (Null_Finalize_Global_List): Add this null version for the procedure
136         in charge of finalizing the global list for controlled objects.
137         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
138         instead for handling run-time termination in a more flexible way.
139         (Adafinal_NT): This new procedure will take care of finalizing the
140         global list for controlled objects if needed, but no tasking
141         finalization.
143         * s-tarest.adb (Task_Lock): Do not try to lock again the
144         Global_Task_Lock if we already own it. Otherwise, we get blocked in
145         some run-time operations.
146         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
147         until all nested locks have been released.
148         (Task_Wrapper): Call the fall-back task termination handler. It
149         applies to all tasks but the environment task.
150         (Finalize_Global_Tasks): Add the call for the task termination
151         procedure for the environment task.
152         (Task_Wrapper): suppress warnings around declaration of
153         Secondary_Stack_Address.
155         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
156         moved to the Common_ATCB record.
157         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
158         Common_ATCB record.
159         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
160         Common_ATCB record.
162         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
163         Fall_Back_Handler, and Specific_Handler.
165         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
166         defined in Ada.Task_Termination, to avoid circular dependencies.
167         (Termination_Handler): Redefine this type here, alredy defined in
168         Ada.Task_Termination, for avoiding circular dependencies.
169         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
170         for storing task termination handlers. In addition,
171         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
172         Common_ATCB because it is used by both the regular and the restricted
173         run times.
174         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
175         Common_ATCB because it is used by both the regular and the restricted
176         run times.
177         (Common_ATCB): Added a dynamic task analyzer field.
179         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
180         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
181         (Task_Wrapper): Call the task termination handler. It applies to all
182         tasks but the environment task.
183         (Finalize_Global_Tasks): Call the task termination procedure for the
184         environment task. The call to Finalize_Global_List is now performed
185         using the soft links mechanism.
186         (Task_Wrapper): added dynamic stack analysis.
188         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
189         potentially blocking operations has been moved from
190         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
191         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
192         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
193         this run-time check.
195         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
196         of task termination procedure.
197         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
198         link for the task termination procedure.
200         * bindusg.adb: (Bindusg): Added documentation for -u option.
202         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
203         (Get_Main_C): Add handling of dynamic stack analysis.
204         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
206         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
207         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
208         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
210         * opt.ads: Added flags used by dynamic stack measurement.
211         (Max_Line_Length): Remove (not used anymore)
213         * s-io.ads, s-io.adb (Standard_Error): new subprogram
214         (Standart_Output): new subprogram
215         (Set_Output): new subprogram
216         (Put): now uses the value of Current_Out to know if the output has to be
217         send to stderr or stdout.
219         * s-stausa.ads: Complete implementation.
221         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
223         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
224         list of Ada 05 files.
225         (GNAT Library Units): Add AltiVec files.
227         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
228         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
229         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
231 2005-12-09  Nicolas Setton  <setton@adacore.com>
233         * adaint.c (__gnat_locate_regular_file): Return immediately if
234         file_name is empty.
236 2005-12-09  Javier Miranda  <miranda@adacore.com>
237             Hristian Kirtchev  <kirtchev@adacore.com>
239         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
240         to the specification because the frontend generates code that uses this
241         subprogram.
242         (Set_Interface_Table): Add missing assertion.
243         Update documentation describing the run-time structure.
244         (Displace): New subprogram that displaces the pointer to the object
245         to reference one of its secondary dispatch tables.
246         (IW_Membership): Modified to use the new table of interfaces.
247         (Inherit_TSD): Modified to use the new table of interfaces.
248         (Register_Interface_Tag): Use the additional formal to fill the
249         contents of the new table of interfaces.
250         (Set_Interface_Table): New subprogram that stores in the TSD the
251         pointer to the table of interfaces.
252         (Set_Offset_To_Top): Use the additional formal to save copy of
253         the offset value in the table of interfaces.
254         Update structure of GNAT Primary and Secondary dispatch table diagram.
255         Add comment section on GNAT dispatch table prologue.
256         (Offset_To_Signature): Update the constant value of the Signature field.
257         (Dispatch_Table): Update comment on hidden fields in the prologue.
258         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
259         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
260         the type of formal parameter T to Tag, introduce additional assertions.
261         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
262         conversion.
263         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
265         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
266         in all the calls to Expand_Interface_Thunk. Instead of referencing the
267         record component containing the tag of the secondary dispatch table we
268         have to use the Offset_To_Top run-time function to get this information;
269         otherwise if the pointer to the base of the object has been displace
270         we get a wrong value if we use the 'position attribute.
272         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
273         all the calls to Expand_Interface_Thunk.
274         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
275         interfaces; hence the call to Set_Interface_Table was clearly wrong.
276         (Collect_All_Interfaces): Modify the internal subprogram Collect to
277         ensure that the interfaces implemented by the ancestors are placed
278         at the header of the generated list.
279         (Expand_Interface_Conversion): Handle the case in which the displacement
280         associated with the interface conversion is not statically known. In
281         this case we generate a call to the new run-time subprogram Displace.
282         (Make_DT): Generate and fill the new table of interfaces.
283         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
284         Get_Tagged_Kind and Set_Tagged_Kind.
285         (Tagged_Kind): New function that determines the tagged kind of a type
286         with respect to limitedness and concurrency and returns a reference to
287         RE_Tagged_Kind.
288         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
289         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
290         primary dispatch table for a type.
291         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
292         secondary dispatch table respectively of a tagged type.
294         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
295         (Expand_Interface_Conversion): New subprogram to indicate if the
296         displacement of the type conversion is statically known.
297         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
299         * rtsfind.ads (RE_Offset_To_Top): New entity
300         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
301         accessible to users.
302         (Re_Displace): New entity
303         (RE_Interface_Data): New entity
304         (RE_Set_Interface_Data): New_Entity
305         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
306         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
307         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
308         RE_TK_Tagged, RE_TK_Task.
310         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
311         Init_Secondary_Tags_Internal to allow its use with interface types and
312         also to generate the code for the new additional actual required
313         by Set_Offset_To_Top.
314         (Build_Init_Statements): In case of components associated with abstract
315         interface types there is no need to generate a call to its IP.
316         (Freeze_Record_Type): Generate Select Specific Data tables only for
317         concurrent types.
318         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
319         the bodies and specifications of the predefined primitive operations
320         dealing with dispatching selects and abort, 'Callable, 'Terminated only
321         for concurrent types.
323         * exp_sel.ads, exp_sel.adb: New files.
325         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
326         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
327         properly protected objects and attach handler in the case of the
328         restricted profile.
329         Move embeded package Select_Expansion_Utilities into a separate external
330         package.
331         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
332         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
333         (Build_K, Build_S_Assignment): New subprograms, part of the select
334         expansion utilities.
335         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
336         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
337         where the trigger is a dispatching procedure of a limited tagged type.
339 2005-12-09  Olivier Hainque  <hainque@adacore.com>
341         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
342         pointer initialization values. Make a SAVE_EXPR instead. Add comments
343         about the use and expansion of SAVE_EXPRs in the various possible
344         renaming handling cases.
345         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
346         abusing DECL_FCONTEXT.
348 2005-12-09  Matthew Heaney  <heaney@adacore.com>
350         * a-convec.adb (Merge): Added assertions to check whether vector params
351         are sorted.
353         * a-coinve.adb (Merge): Added assertions to check whether vector params
354         are sorted.
356         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
357         draft.
358         (Cursor'Read): raises PE
360         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
361         to its default value.
363         * a-cihama.adb: Manually check whether cursor's key and elem are
364         non-null
366         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
367         (Merge): Assert that target and source lists are in order
368         (Swap): Declare non-const temporaries, to pass to Splice
370         * a-cdlili.ads: (Splice): Changed param name and param mode
372         * a-cdlili.adb: (Splice): Changed param name and param mode
373         (Merge): Assert that target and source lists are in order
374         (Swap): Declare non-const temporaries, to pass to Splice
376         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
377         (Write): declare Stream param as not null
379         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
380         an exception message.
382 2005-12-09  Thomas Quinot  <quinot@adacore.com>
383             Robert Dewar  <dewar@adacore.com>
385         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
386         which is the absolute maximum length we can support.
388         * frontend.adb: For the processing of configuration pragma files,
389         remove references to Opt.Max_Line_Length, which is not checked anymore.
391         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
392         length.
394         * scn.adb, scng.adb:
395         Always check line length against the absolute supported maximum,
396         Hostparm.Max_Line_Length.
398         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
399         value for the maximum line length is Max_Line_Length (not
400         Column_Number'Last).
401         Minor error msg update
402         (Set_Style_Check_Options): New interface returning error msg
403         Minor code reorganization (processing for 'M' was out of alpha order)
405         * switch-c.adb: New interface for Set_Style_Check_Options
407         * stylesw.ads (Set_Style_Check_Options): New interface returning error
408         msg.
410 2005-12-09  Javier Miranda  <miranda@adacore.com>
412         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
413         with IP subprogram were only supported if there were limited types.
415         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
416         records with IP subprogram were only supported if there were limited
417         types.
419 2005-12-09  Olivier Hainque  <hainque@adacore.com>
420             Eric Botcazou  <ebotcazou@adacore.com>
422         * trans.c (tree_transform, emit_check): Adjust calls to
423         build_call_raise, passing the now expected GNAT_NODE argument.
425         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
426         source line information than what the current global locus indicates
427         when appropriate.
429         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
430         field has overflowed.
431         (build_call_raise): Add a GNAT_NODE argument to convey better source
432         line information than what the current global locus indicates when
433         appropriate.
434         (build_component_ref): Adjust call to build_call_raise.
436 2005-12-09  Pascal Obry  <obry@adacore.com>
438         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
439         the iterator is quitting iteration on parent directory.
441 2005-12-09  Javier Miranda  <miranda@adacore.com>
443         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
444         and the assignment to a class-wide object, before the assignment we
445         generate a run-time check to ensure that the tag of the Target is
446         covered by the tag of the source.
448 2005-12-09  Robert Dewar  <dewar@adacore.com>
450         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
451         parameter in call to Image_Wide_Character.
453         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
454         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
455         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
456         annoying FFFE/FFFF inconsistency.
458 2005-12-09  Robert Dewar  <dewar@adacore.com>
459             Javier Miranda  <miranda@adacore.com>
460             Ed Schonberg  <schonberg@adacore.com>
462         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
463         of type conversion.
464         (Find_Interface): New subprogram that given a tagged type and one of its
465         component associated with the secondary table of an abstract interface
466         type, return the entity associated with such abstract interface type.
467         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
468         base type to create anonymous subtype, because entity may be a locally
469         declared subtype or generic actual.
470         (Find_Interface): New subprogram that given a tagged type and one of its
471         component associated with the secondary table of an abstract interface
472         type, return the entity associated with such abstract interface type.
474         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
475         conversion cannot be handled at compile time. In this case we pass this
476         information to the expander to generate the appropriate code.
478 2005-12-09  Robert Dewar  <dewar@adacore.com>
479             Ed Schonberg  <schonberg@adacore.com>
480             Gary Dismukes  <dismukes@adacore.com>
481             Javier Miranda  <miranda@adacore.com>
482             Hristian Kirtchev  <kirtchev@adacore.com>
484         * einfo.adb (Itype_Printed): New flag
485         (Is_Limited_Type): Derived types do not inherit limitedness from
486         interface progenitors.
487         (Is_Return_By_Reference_Type): Predicate does not apply to limited
488         interfaces.
490         * einfo.ads (Itype_Printed): New flag
491         Move Is_Wrapper_Package to proper section
492         Add missing Inline for Is_Volatile
494         * output.ads, output.adb (Write_Erase_Char): New procedure
495         (Save/Restore_Output_Buffer): New procedures
496         (Save/Restore_Output_Buffer): New procedures
498         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
499         Add missing support for anonymous access type
500         (Write_Id): Insert calls to Write_Itype
501         (Write_Itype): New procedure to output itypes
503         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
504         use of "limited" in declaration.
506         * sinfo.ads, sinfo.adb:
507         Formal derived types can carry an explicit "limited" indication.
509         * sem_ch3.adb: Add with and use of Targparm.
510         (Create_Component): If Frontend_Layout_On_Target is True and the
511         copied component does not have a known static Esize, then reset
512         the size and positional fields of the new component.
513         (Analyze_Component_Declaration): A limited component is
514         legal within a protected type that implements an interface.
515         (Collect_Interfaces): Do not add to the list the interfaces that
516         are implemented by the ancestors.
517         (Derived_Type_Declaration): If the parent of the full-view is an
518         interface perform a transformation of the tree to ensure that it has
519         the same parent than the partial-view. This simplifies the job of the
520         expander in order to generate the correct object layout, and it is
521         needed because the list of interfaces of the full-view can be given in
522         any order.
523         (Process_Full_View): The parent of the full-view does not need to be
524         a descendant of the parent of the partial view if both parents are
525         interfaces.
526         (Analyze_Private_Extension_Declaration): If declaration has an explicit
527         "limited" the parent must be a limited type.
528         (Build_Derived_Record_Type): A derived type that is explicitly limited
529         must have limited ancestor and progenitors.
530         (Build_Derived_Type): Ditto.
531         (Process_Full_View): Verify that explicit uses of "limited" in partial
532         and full declarations are consistent.
533         (Find_Ancestor_Interface): Remove function.
534         (Collect_Implemented_Interfaces): New procedure used to gather all
535         implemented interfaces by a type.
536         (Contain_Interface): New function used to check whether an interface is
537         present in a list.
538         (Find_Hidden_Interface): New function used to determine whether two
539         lists of interfaces constitute a set equality. If not, the first
540         differing interface is returned.
541         (Process_Full_View): Improve the check for the "no hidden interface"
542         rule as defined by AI-396.
544 2005-12-09  Robert Dewar  <dewar@adacore.com>
546         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
547         types, not on record subtypes.
548         (Freeze_Entity): Code cleanup. Add barrier to the loop
549         that generates the references for primitive operations. This allows to
550         remove an unnecessary exception handler.
551         Code reformatting and comment clean ups.
553 2005-12-09  Vincent Celier  <celier@adacore.com>
555         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
556         If GNAT CHECK is called with a project file, but with no
557         source on the command line, call gnatcheck with all the compilable
558         sources of the project.
559         Take into account the new command Check, for gnatcheck. Treat as for
560         other ASIS tools: take into account project, specific package Check and
561         Compiler switches.
562         For ASIS tools, add the switches in package Compiler for
563         the invocation of the compiler.
565         * prj-attr.adb: Add package Check and its attributes
567         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
569         * vms_conv.adb (Initialize): Change Params of command Check to
570         unlimited files.
571         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
572         Add data for new command Check
574         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
575         ELIM.
576         Add qualifiers for Check command options
577         (Command_Type): New command Check
579 2005-12-09  Thomas Quinot  <quinot@adacore.com>
581         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
582         command line switch overruns the output buffer.
584 2005-12-09  Robert Dewar  <dewar@adacore.com>
586         * sem_prag.adb: Processing for new pragma Complete_Representation
587         (Analyze_Pragma, case Debug): Implement two argument form.
589         * par-prag.adb: Entry for new pragma Complete_Representation
590         (Prag, case Debug): Recognize two argument form of pragma Debug
591         New interface for Set_Style_Check_Options.
593         * sem_ch13.adb: Implement new pragma Complete_Representation.
595         * snames.adb, snames.ads, snames.h: Entry for new pragma
596         Complete_Representation.
598 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
600         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
601         available user-specified stream attributes on limited parameters to
602         also test the type directly rather than only its underlying type (for
603         Ada 95) and, in the case of Ada 2005, to check that the user-specified
604         attributes are visible at the point of the subprogram declaration.
605         For Ada 2005, the error message is modified to indicate that the
606         type's stream attributes must be visible (again, only for -gnat05).
608 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
610         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
611         anonymous access types.
613         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
614         matching of anonymous access types and anonymous access to subprogram
615         types. 'R'M 4.9.1 (2/2).
617 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
619         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
620         rule prematurely when operands are universal, remaining ambiguities
621         will be removed during resolution.
622         Code cleanup.
624         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
625         that are Ada 2005 functions.
626         (Has_Abstract_Interpretation): Subsidiary to
627         Remove_Conversions, to remove ambiguities caused by abstract operations
628         on numeric types when operands are universal.
630 2005-12-09  Robert Dewar  <dewar@adacore.com>
632         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
633         for case where spec is categorized.
635 2005-12-09  Javier Miranda  <miranda@adacore.com>
637         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
638         types use the corresponding record type. This was not needed before
639         the implementation of Ada 2005 synchronized types because
640         concurrent types were never tagged types in Ada 95.
642 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
644         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
645         first subtype of the type of the expression to verify that it is a
646         legal Time type.
648 2005-12-09  Robert Dewar  <dewar@adacore.com>
650         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
651         decoded names.
653 2005-12-09  Quentin Ochem  <ochem@adacore.com>
654             Robert Dewar  <dewar@adacore.com>
655             Ed Falis  <falis@adacore.com>
656             Florian Villoing  <villoing@adacore.com>
657             Thomas Quinot  <quinot@adacore.com>
658             Arnaud Charlet  <charlet@adacore.com>
660         * gnat_ugn.texi: Created section "Stack Related Tools"
661         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
662         "Stack Related Tools"
663         Added subsection "Static Stack Usage Analysis"
664         Added subsection "Dynamic Stack Usage Analysis"
665         Include documentation of itypes in sprint listing (-gnatG)
666         Documented gnatbind -D switch (default sec stack size for fixed sec
667         stacks).
668         Added Interrupt_State and Persistent_BSS to list of configuration
669         pragmas.
670         Add missing doc for maximum value of nnn in -gnatyMnnn
672         * gnat_rm.texi: Document the AltiVec binding.
673         Add documentation for pragma Complete_Representation
674         Shortened an overly long line (> 79 chars)
675         Clarify documentation of unchecked conversion in implementation
676         defined cases.
677         Document two argument form of pragma Debug
679         * types.ads (Column_Number): Update documentation.
681         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
682         library level Finalize_Storage_Only objects (these are not attached to
683         any finalization list).
685         * system-mingw.ads: (Underlying_Priorities): Update comment.
687 2005-12-09  Robert Dewar  <dewar@adacore.com>
689         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
690         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
691         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
692         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
693         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
694         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
695         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
696         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
697         reformatting.
699 2005-12-09  Robert Dewar  <dewar@adacore.com>
701         * s-vaflop-vms-alpha.adb: (Ne_F): New function
702         (Ne_G): New function
704         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
705         for tag assignment.
706         (Rewrite_Comparison): Handle case where operation is not a comparison
707         and ignore, and also handle type conversion case.
709 2005-12-09  Thomas Quinot  <quinot@adacore.com>
711         * exp_aggr.ads: Fix typo in comment.
712         ???-mark Convert_Aggr_In_Assignment as needing documentation.
714 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
716         * layout.adb: Replace various uses of byte by storage unit throughout.
717         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
718         static size, convert to storage units before returning, to conform to
719         spec.
721 2005-12-09  Matthew Gingell  <gingell@adacore.com>
723         * g-exctra.ads: Fix typo in comment.
725 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
727         * utils.c: Minor reformatting.
729 2005-12-09  Robert Dewar  <dewar@adacore.com>
731         * g-soccon.ads:
732         Further comment fixes to make the status of the default file clear
734         * s-bitops.adb: Clarify comment for Bits_Array
736 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
738         * Make-lang.in (ada.install-normal): Remove.
740 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
742         * Make-lang.in: Remove all dependencies on s-gtype.
744 2005-12-05  Richard Guenther  <rguenther@suse.de>
746         * utils.c (convert): Use fold_convert where appropriate.
748 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
750         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
751         a period is meant.
753 2005-12-02  Richard Guenther  <rguenther@suse.de>
755         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
757 2005-12-01  Roger Sayle  <roger@eyesopen.com>
759         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
760         nodes.
762 2005-11-23  Laurent Guerby  <laurent@guerby.net>
764         * mlib-prj.adb (Build_Library): Initialize Delete.
766 2005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
768         * socket.c: Add extern int h_errno for rtems since networking header
769         files are not available at this point in a tool bootstrap. Newlib
770         only has basic C library header files.
772 2005-11-19  Richard Guenther  <rguenther@suse.de>
773         Roger Sayle  <roger@eyesopen.com>
775         PR ada/23717
776         * misc.c (internal_error_function): Don't use vsprintf to format
777         the error message text, instead use pp_format_text and the new
778         pretty printer APIs.  This allows handling of %qs, %w, etc.
780 2005-11-18  Laurent Guerby  <laurent@guerby.net>
782         PR ada/24857
783         * Makefile.in: Use s-auxdec-empty for RTEMS.
785 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
787         PR ada/22333
788         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
789         a temporary if taking the address of something that is neither
790         reference, declaration, or constant, since the gimplifier
791         can't handle that case.
793 2005-11-17  Laurent Guerby  <laurent@guerby.net>
795         PR ada/24857
796         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
798 2005-11-16  Richard Guenther  <rguenther@suse.de>
800         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
802 2005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
804         PR ada/24855
805         * raise-gcc.c: Add missing stdarg.h include.
807 2005-11-16  Richard Guenther  <rguenther@suse.de>
809         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
810         (ada/misc.o): Likewise.
812 2005-11-14  Thomas Quinot  <quinot@adacore.com>
814         * g-soccon.ads: Minor reformatting. Update comments.
816         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
817         gain visibility on the declaration of struct timeval.
819         * g-soccon-freebsd.ads,
820         g-soccon-darwin.ads,
821         g-soccon-tru64.ads,
822         g-soccon-aix.ads,
823         g-soccon-irix.ads,
824         g-soccon-hpux.ads,
825         g-soccon-solaris.ads,
826         g-soccon-vms.ads,
827         g-soccon-mingw.ads,
828         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
830         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
831         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
832         g-soccon-linux-x86.ads: New files.
834         * g-socthi-mingw.adb:
835         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
837         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
838         (time_t, suseconds_t): New types constructed to match the tv_sec
839         and tv_usec fields of C struct timeval.
840         (Timeval): Construct structure in terms of the new types.
841         (Host_Errno): New function (imported from socket.c), returns last hosts
842         database error.
844         * g-socthi-vxworks.adb:  Add error handling circuitry.
846         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
847         components of struct timeval.
848         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
849         (Check_Selector): In error conditions, clear internal socket sets to
850         avoid a memory leak.
851         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
852         Send_Timeout, Receive_Timeout.
854         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
855         the tv_sec and tv_usec fields of C struct timeval.
856         (Timeval): Construct structure in terms of the new types.
857         (Host_Errno): New function (imported from socket.c), returns last hosts
858         database error.
860         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
861         hosts database last error code.
863         * gen-soccon.c: Complete value expansion should not be performed on
864         TARGET, as it has the form of a math expression, and some components
865         may be platform-defined macros.
866         For VxWorks, generate the OK and ERROR values.
867         New constants giving the sizes of the components of C struct timeval.
869 2005-11-14  Robert Dewar  <dewar@adacore.com>
870             Ed Schonberg  <schonberg@adacore.com>
872         PR ada/18434
873         * types.ads: Include All_Checks in Suppress_Array
875         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
876         not(a=b), since we no longer do this rewriting, and hence it is not
877         needed.
878         (Elaboration_Checks_Suppressed): Add special casing to
879         deal with different cases of static and dynamic elaboration checks (all
880         checks does not count in the first case, but does in the second).
881         (Expr_Known_Valid): Do not assume that the result of any arbitrary
882         function call is valid, since this is not the case.
883         (Ensure_Valid): Do not apply validity check to a real literal
884         in a universal or fixed context
886         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
887         elementary types using the operator in standard. It is cleaner not to
888         modify the programmers intent, especially in the case of floating-point.
889         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
890         it did not matter because we always rewrote a/=b to not(a=b).
891         (Expand_Allocator_Expression): For an allocator expression whose nominal
892         subtype is an unconstrained packed type, convert the expression to its
893         actual constrained subtype.
894         Implement warning for <= or >= where < or > not possible
895         Fix to Vax_Float tests (too early in many routines, causing premature
896         Vax_Float expansions.
898         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
899         to be used with packages and generic packages as well as with
900         subprograms.
901         (Suppress): Set All_Checks, but not Elaboration_Check, for case
902         of pragma Suppress (All_Checks)
903         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
904         a string literal for precise control over warnings.
905         Avoid raise of pragma in case of unrecognized pragma and just return
906         instead.
908         * sem_prag.ads: Minor reformatting
910         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
911         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
912         Switch. Do not handle any exception.
913         Include -gnatwx as part of -gnatg (warn on redundant parens)
914         Allow optional = after -gnatm
915         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
916         longer sets Elaboration_Checks.
917         Code to set warning mode moved to Sem_Warn
918         so that it can be shared by pragma processing.
920         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
921         statement.
923         * s-taprop-solaris.adb:
924         Change some <= to =, to avoid new warning
926         * a-exexda.adb, prj-proc.adb:
927         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
928         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
930 2005-11-14  Robert Dewar  <dewar@adacore.com>
932         * exp_vfpt.adb: Handle /= case
933         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
934         so that we do not get duplicate scaling for fixed point conversions.
936         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
938 2005-11-14  Matthew Gingell  <gingell@adacore.com>
940         * system-lynxos-ppc.ads, system-lynxos-x86.ads:
941         Increase default priority on Lynx from 15 to 17, and meet the Ada
942         requirement that Default_Priority be ((Priority'First +
943         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
945 2005-11-14  Vincent Celier  <celier@adacore.com>
947         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
948         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
949         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
950         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
951         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
952         mlib-tgt-lynxos.adb (DLL_Prefix): New function
954 2005-11-14  Doug Rupp  <rupp@adacore.com>
956         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
957         private part.
959 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
961         * s-traces-default.adb, s-trafor-default.ads,
962         s-tratas-default.adb: Fix compilation errors.
964 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
966         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
967         raising the exception so the memory used is freed.
969 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
971         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
972         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
973         (convert_address): Update comments and list of platforms using this.
975         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
976         no longer used.
978 2005-11-14  Pascal Obry  <obry@adacore.com>
979             Vincent Celier  <celier@adacore.com>
981         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
982         GNAT.Command_Line.
984         * memroot.adb: Remove redundant with/use clause on
985         System.Storage_Elements.
987 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
989         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
990         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
991         related code to a-exexpr.adb
992         (Save_Occurrence_And_Private): Move GCC EH related code to
993         a-exexpr-gcc.adb
994         (Raise_Current_Excep): Add new variable Id with pragma
995         volatile, to ensure that the variable lives on stack.
997         * a-exexpr-gcc.adb, raise-gcc.c: New file.
999         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
1000         from a-except.adb.
1001         Move GCC EH related code to a-exexpr-gcc.adb
1003         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
1004         64-bit Solaris
1005         Split the Linux version of g-soccon into separate variants for 32 and 64
1006         bit platforms.
1007         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
1008         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
1009         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
1010         of host variable $(RANLIB_FLAGS).
1011         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
1012         Code clean up: remove unused/obsolete targets.
1013         (EH_MECHANISM): New variable introduced to differenciate between the
1014         two EH mechanisms statically.
1015         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
1016         (LIBGNAT_OBJS): Add raise-gcc.o
1017         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
1018         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
1019         supports VxWorks 6 RTPs.
1020         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
1021         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
1023         * raise.c: Move all GCC EH-related routines to raise-gcc.c
1025 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
1027         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
1028         deferral level, when abort is not allowed, to a later stage (the
1029         Task_Wrapper).
1030         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
1031         it will not get changed by the generated code. It was previously done
1032         in Create_Task.
1034 2005-11-14  Thomas Quinot  <quinot@adacore.com>
1035             Olivier Hainque  <hainque@adacore.com>
1036             Eric Botcazou  <ebotcazou@adacore.com>
1038         * decl.c:
1039         Factor common code to build a storage type for an unconstrained object
1040         from a fat or thin pointer type and a constrained object type.
1041         (annotate_value): Handle BIT_AND_EXPR.
1042         (annotate_rep): Don't restrict the back annotation of inherited
1043         components to the type_annotate_only case.
1044         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
1045         we are not defining the type.
1046         <E_Record_Type>: Likewise.
1047         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
1048         to get advantage of the new maybe_stabilize_reference interface, to
1049         ensure that what we reference is indeed stabilized instead of relying
1050         on assumptions on what the stabilizer does.
1051         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
1052         type imported through a limited_with clause, use its non-limited view.
1053         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
1054         differentiation.
1055         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
1056         of #if sections + explicit comparisons of convention identifiers.
1057         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
1058         before early-returning for certain types when code generation is
1059         disabled.
1060         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
1061         nullification of gnu_expr we do for objects with address clause and
1062         that we are not defining.
1063         (elaborate_expression_1): Do not create constants when creating
1064         variables needed by the debug info: the dwarf2 writer considers that
1065         CONST_DECLs is used only to represent enumeration constants, and emits
1066         nothing for them.
1067         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
1068         object with an address clause into an indirect reference, drop the
1069         initializing expression.
1070         Include "expr.h".
1071         (STACK_CHECK_BUILTIN): Delete.
1072         (STACK_CHECK_PROBE_INTERVAL): Likewise.
1073         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
1074         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
1075         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
1076         corresponding to the renamed object as ignored for debugging purposes.
1078         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
1079         related): For a prefix that is a dereference of a fat or thin pointer,
1080         if there is an actual subtype provided by the front-end, use that
1081         subtype to build an actual type with bounds template.
1082         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
1083         is provided by the front-end, use that subtype to compute the size of
1084         the deallocated object.
1085         (gnat_to_gnu): When adding a statement into an elaboration procedure,
1086         check for a potential violation of a No_Elaboration_Code restriction.
1087         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
1088         with extra arguments to control whether to recurse through non-values
1089         and to let the caller know if the stabilization has succeeded.
1090         (gnat_stabilize_reference): Now a simple wrapper around
1091         maybe_stabilize, for common uses without restriction on lvalues and
1092         without need to check for the success indication.
1093         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
1094         pass false instead of 0 as the FORCE argument which is a bool.
1095         (Identifier_to_gnu): Remove checks ensuring that an renamed object
1096         attached to a renaming pointer has been properly stabilized, as no such
1097         object is attached otherwise.
1098         (call_to_gnu): Invoke create_var_decl to create the temporary when the
1099         function uses the "target pointer" return mechanism.
1100         Reinstate conversion of the actual to the type of the formal
1101         parameter before any other specific treatment based on the passing
1102         mechanism. This turns out to be necessary in order for PLACEHOLDER
1103         substitution to work properly when the latter type is unconstrained.
1105         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
1106         common pattern.
1107         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
1108         with extra arguments to control whether to recurse through non-values
1109         and to let the caller know if the stabilization has succeeded.
1111         * utils2.c (gnat_build_constructor): Only sort the fields for possible
1112         static output of record constructor if all the components are constant.
1113         (gnat_build_constructor): For a record type, sort the list of field
1114         initializers in increasing bit position order.
1115         Factor common code to build a storage type for an unconstrained object
1116         from a fat or thin pointer type and a constrained object type.
1117         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
1118         types variants, and process special cases of VIEW_CONVERT expressions
1119         as their NOP_EXPR counterpart to ensure we get to the
1120         CORRESPONDING_VARs associated with CONST_DECls.
1121         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
1122         on the right-hand side.
1124         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
1125         a common pattern.
1126         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
1127         are converting back to its original type.
1128         (convert) <JM input>: Fallthrough regular conversion code instead of
1129         extracting the object if converting to a type variant.
1130         (create_var_decl): When a variable has an initializer requiring code
1131         generation and we are at the top level, check for a potential violation
1132         of a No_Elaboration_Code restriction.
1133         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
1134         SIZE and SIZE_UNIT which we need for later back-annotations.
1135         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
1136         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
1137         is an unchecked union.
1138         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
1139         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
1140         main variant, just replace the VIEW_CONVERT_EXPR.
1141         <UNION_TYPE>: Revert 2005-03-02 change.
1143         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
1145         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
1147 2005-11-14  Matthew Heaney  <heaney@adacore.com>
1149         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
1150         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
1151         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
1152         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
1153         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
1154         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
1155         Compiles against the spec for ordered maps described in sections
1156         A.18.6 of the most recent (August 2005) AI-302 draft.
1158 2005-11-14  Olivier Hainque  <hainque@adacore.com>
1160         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
1161         to ensure bias adjustments take place when need be and to prevent
1162         occurrences of intermediate overflows.
1164 2005-11-14  Matthew Gingell  <gingell@adacore.com>
1165             Olivier Hainque  <hainque@adacore.com>
1167         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
1168         ia64 HP-UX.
1170         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
1171         tracebacks on ia64 HP-UX and provide explanatory comment.
1172         Enable backtraces on ia64 GNU/Linux.
1173         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
1174         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
1176 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
1177             Javier Miranda  <miranda@adacore.com>
1179         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
1180         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
1181         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
1182         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
1184         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
1185         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
1186         assertions).
1188         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
1189         subprogram that generates the external name associated with a
1190         secondary dispatch table.
1191         (Get_Secondary_DT_External_Name): New subprogram that generates the
1192         external name associated with a secondary dispatch table.
1194 2005-11-14  Emmanuel Briot  <briot@adacore.com>
1196         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
1197         line in the ALI file to include both an instantiation reference, and a
1198         returned value.
1200 2005-11-14  Vincent Celier  <celier@adacore.com>
1202         * clean.adb (Check_Project): Look for Ada code in extending project,
1203         even if Ada is not specified as a language.
1204         Use new function DLL_Prefix for DLL_Name
1205         (Clean_Interface_Copy_Directory): New procedure
1206         (Clean_Library_Directory): New procedure
1207         (Clean_Directory): Remove procedure, no longer used
1208         (Clean_Project): Do not delete any file in an externally built project
1210         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
1211         directory of an extending project, even when there are no Ada source
1212         present.
1213         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
1214         (Set_Ada_Paths.Add.Recursive_Add): Ditto
1216         * mlib-prj.adb (Check_Library): For all library projects, get the
1217         library file timestamp.
1218         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
1219         (Build_Library): Use new function DLL_Prefix for the DLL_Name
1220         (Clean): Remove procedure, no longer used
1221         (Ultimate_Extension_Of): New function
1222         (Build_Library): When cleaning the library directory, only remove an
1223         existing library file and any ALI file of a source of the project.
1224         When cleaning the interface copy directory, remove any source that
1225         could be a source of the project.
1227         * prj.ads, prj.adb (Project_Empty): Add values of new components
1228         Library_TS and All_Imported_Projects.
1229         (Project_Empty): Add values for new components of Project_Data:
1230         Library_ALI_Dir and Display_Library_ALI_Dir
1232         * prj-attr.adb: New project level attribute name Library_ALI_Dir
1234         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
1235         attribute Library_ALI_Dir.
1236         (Check_Library_Attributes): The library directory cannot be the same as
1237         any source directory of the project tree.
1238         (Check_Stand_Alone_Library): The interface copy directory cannot be
1239         the same as any source directory of the project tree.
1241         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
1242         all temporary files.
1244 2005-11-14  Robert Dewar  <dewar@adacore.com>
1245             Ed Schonberg  <schonberg@adacore.com>
1247         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
1248         (Check_Elab_Call): A call within a protected body is never an
1249         elaboration call, and does not require checking.
1250         (Same_Elaboration_Scope): Take into account protected types for both
1251         entities.
1252         (Activate_Elaborate_All_Desirable): New procedure
1254         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
1255         desirable
1257         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
1258         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
1260         * lib-writ.ads, lib-writ.adb:
1261         Implement new AD/ED for Elaborate_All/Elaborate desirable
1262         Use new Elaborate_All_Desirable flag in N_With_Clause node
1264         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
1265         N_Free_Statement nodes.
1266         Define new class N_Subprogram_Instantiation
1267         Add Elaborate_Desirable flag to N_With_Clause node
1268         Add N_Delay_Statement (covering two kinds of delay)
1270         * debug.adb: Introduce d.f flag for compiler
1271         Add -da switch for binder
1273 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1274             Cyrille Comar  <comar@adacore.com>
1276         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
1277         for task component, in the case of a limited aggregate. The enclosed
1278         object declaration will create it earlier. Otherwise, in the case of a
1279         nested aggregate, the object may appear in the wrong scope.
1280         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
1281         (Gen_Assign): If the component being assigned is an array type and the
1282         expression is itself an aggregate, wrap the assignment in a block to
1283         force finalization actions on the temporary created for each row of the
1284         enclosing object.
1285         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
1286         structures are initialized after all discriminants are set so that
1287         they can be accessed even when their offset is dynamic.
1289 2005-11-14  Robert Dewar  <dewar@adacore.com>
1290             Hristian Kirtchev  <kirtchev@adacore.com>
1292         * sem_attr.adb: Implement Machine_Rounding attribute
1293         (Analyze_Access_Attribute): The access attribute may appear within an
1294         aggregate that has been expanded into a loop.
1295         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
1296         'Terminated whenever the prefix is of a task interface class-wide type.
1297         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
1298         the prefix is of a task interface class-wide type.
1300         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
1301         to avoid warnings.
1303         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
1304         Remove pragma Inline for [Unaligned_]Valid.
1305         Add comments that Valid routines do not work for Vax_Float
1307         * exp_attr.adb: Implement Machine_Rounding attribute
1309         * snames.h: Add entry for Machine_Rounding attribute
1311 2005-11-14  Javier Miranda  <miranda@adacore.com>
1312             Robert Dewar  <dewar@adacore.com>
1313             Hristian Kirtchev  <kirtchev@adacore.com>
1315         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
1316         and related): For a prefix that is an explicit dereference of an
1317         access to unconstrained packed array type, annotate the dereference
1318         with an actual subtype so GIGI can make a correct size computation.
1319         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
1320         'Unrestricted_Access, if the designated type is an interface we
1321         add a type conversion to force the displacement of the pointer
1322         to the secondary dispatch table.
1323         Use Universal_Real instead of Long_Long_Float when we need a high
1324         precision float type for the generated code (prevents gratuitous
1325         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
1326         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
1327         'Terminated for task interface class-wide objects. Generate a call to
1328         the predefined dispatching routine used to retrieve the _task_id from
1329         a task corresponding record.
1330         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
1332         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
1333         (Check_Dispatching_Operation): Protect the frontend againts
1334         previously detected errors.
1336         * Makefile.rtl: Add new instantiations of system.fat_gen
1338         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
1339         Change name of instantiated package for better consistency
1340         with newly added system.fat_gen instantiations.
1342         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
1343         s-fvagfl.ads: New files.
1345 2005-11-14  Cyrille Comar  <comar@adacore.com>
1346             Thomas Quinot  <quinot@adacore.com>
1348         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
1349         assignment of a value of a tagged type that has been rewritten to a
1350         block statement, it is known by construction that no checks are
1351         necessary for the statements within the block: analyze it with checks
1352         suppressed.
1353         (Expand_N_If_Statement): When killing a dead then-branch in an
1354         if-statement that has elsif_parts, recompute the Current_Value node
1355         for any entity whose value is known from the condition of the first
1356         elsif_part.
1357         (Expand_N_Return_Statement): When returning a mutable record, convert
1358         the return value into its actual subtype in order to help the backend
1359         to return the actual size instead of the maximum. This is another
1360         aftermath of not returning mutable records on the sec-stack anymore.
1362         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
1363         handling of error msg for suspicious reverse range iteration.
1364         (Check_Possible_Current_Value_Condition): Move declaration from body to
1365         spec, to allow this subprogram to be called from exp_ch5.
1367 2005-11-14  Thomas Quinot  <quinot@adacore.com>
1369         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
1370         generate a set of nested array aggregates instead of a single flat
1371         aggregate for multi-dimensional arrays.
1373 2005-11-14  Pascal Obry  <obry@adacore.com>
1375         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
1376         by spawnve is a process handle, no need to convert. Add a parameter
1377         close to control wether the process handle must be closed.
1378         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
1379         a process handle, not need to convert.
1380         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
1382         * g-expect.adb: (Kill): Document the new close parameter.
1383         (Close): Do not release the process handle in the kill there as
1384         waitpid() is using it.
1385         (Send_Signal): Release the process handle.
1387 2005-11-14  Robert Dewar  <dewar@adacore.com>
1389         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
1390         need a high precision float type for the generated code (prevents
1391         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
1392         used).
1394         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
1395         need a high precision float type for the generated code (prevents
1396         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
1397         used).
1398         (Expand_Width_Attribute): In configurable run-time, the attribute is not
1399         allowed on non-static enumeration subtypes. Force a load error to emit
1400         the correct diagnostic.
1402 2005-11-14  Thomas Quinot  <quinot@adacore.com>
1403             Robert Dewar  <dewar@adacore.com>
1404             Ed Schonberg  <schonberg@adacore.com>
1406         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
1407         subtype to compute the size of the designated object at run-time,
1408         create such a subtype and store it in the Actual_Designated_Subtype
1409         attribute of the N_Free_Statement.
1410         Generate itype for classwide designated object in both cases of
1411         user-specified storage pool: specific and class-wide, not only in the
1412         specific case.
1413         Raise CE when trying to set a not null access type object to null.
1414         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
1415         an explicit loop, because freeze nodes make its position variable.
1417         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
1418         null object.
1420 2005-11-14  Javier Miranda  <miranda@adacore.com>
1422         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
1423         Build_Stream_Procedure): Add the null-excluding attribute to the first
1424         formal.
1425         This has no semantic meaning under Ada95 mode but it is a
1426         requirement under Ada05 mode.
1428         * par-ch3.adb (P_Access_Definition): Addition of warning message if
1429         the null exclusion is used under Ada95 mode
1430         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
1431         (P_Access_Definition): Remove assertion that forbids the use of
1432         the null-exclusion feature in Ada95.
1434 2005-11-14  Robert Dewar  <dewar@adacore.com>
1436         * impunit.adb: Exclude container helper units not intended for use by
1437         users.
1439 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1441         * freeze.adb (Freeze_Entity): For an access formal that is an access
1442         to subprogram, freeze the anonymous subprogram type at the same time,
1443         to prevent later freezing in the wrong scope, such as the enclosing
1444         subprogram body.
1445         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
1446         subprogram whenever available.
1448 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
1450         PR ada/23732
1451         * gnatvsn.ads (Library_Version): Bump to 4.1
1453 2005-11-14  Robert Dewar  <dewar@adacore.com>
1455         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
1456         Storage_Offset to avoid wrap around causing invalid results.
1458 2005-11-14  Pascal Obry  <obry@adacore.com>
1460         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
1461         cross-compiler.
1462         (Scan_Bind_Arg): Fail with an error message if -M option is used
1463         on a native compiler.
1465 2005-11-14  Robert Dewar  <dewar@adacore.com>
1466             Vincent Celier  <celier@adacore.com>
1468         * gprep.adb: Implement -C switch to scan comments
1470         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
1472         * scans.ads: Comment updates (including new use of Tok_Comment in
1473         preprocessing)
1475         * opt.ads: Add documentation for flags that are used by gprmake,
1476         currently and in the next version of gprmake.
1477         (Verbosity_Level): New variable
1478         Add Replace_In_Comments switch
1480         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
1481         and -vm.
1482         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
1484 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
1486         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
1487         message, friendlier.
1489 2005-11-14  Robert Dewar  <dewar@adacore.com>
1491         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
1493 2005-11-14  Doug Rupp  <rupp@adacore.com>
1495         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
1497 2005-11-14  Robert Dewar  <dewar@adacore.com>
1499         * interfac.ads: Change declarations of IEEE float types so that we no
1500         longer need a separate version of this package for VMS.
1502 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1504         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
1505         internal entity created for the declaration of a child subprogram body
1506         with no spec as coming from source, to generate proper cross-reference
1507         information.
1509 2005-11-14  Vincent Celier  <celier@adacore.com>
1511         * make.adb (Compile_Sources): Change verbose message to minimum
1512         verbosity level High for "is in an Ada library", "is a read-only
1513         library" and "is an internal library",
1514         (Create_Binder_Mapping_File): Path name of ALI file for library project
1515         must include the library directory, not the object directory.
1516         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
1517         for new switches -vl, -vm and -vh.
1518         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
1519         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
1520         (Compile_Sources): Do not attempt to compile if an ALI file is missing
1521         in a project that is externally built.
1522         (Compute_All_Imported_Projects): New procedure
1523         (Gnatmake): Check if importing libraries should be regenerated because
1524         at least an imported library is more recent.
1525         (Initialize): For each project compute the list of the projects it
1526         imports directly or indirectly.
1527         (Add_Library_Search_Dir): New procedure, used in place of
1528         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
1529         put in the search paths.
1530         (Add_Source_Search_Dir): New procedure, used in place of
1531         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
1532         put in the search paths.
1533         (Mark_Directory): Resolve the absolute path the directory before marking
1534         it.
1536         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
1537         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
1538         Switch. Do not handle any exception.
1539         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
1540         so that the switch is recognized as valid.
1541         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
1543 2005-11-14  GNAT Script  <nobody@adacore.com>
1545         * Make-lang.in: Makefile automatically updated
1547 2005-11-14  Pascal Obry  <obry@adacore.com>
1549         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
1550         used.
1551         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
1552         In both cases the last argument was dropped.
1554 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1556         * namet.h: (Column_Numbe): New type.
1557         (Get_Column_Number): Define to sinput__get_column_number.
1558         (Instantiation): Define to sinput__instantiation.
1559         (Get_Column_Number): Declare.
1560         (Instantiation): Likewise.
1562 2005-11-14  Robert Dewar  <dewar@adacore.com>
1564         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
1565         syntax, which could cause compiler hangs.
1567 2005-11-14  Vincent Celier  <celier@adacore.com>
1569         * prj-ext.adb: Take into account new environment variable
1570         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
1571         are defined.
1572         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
1573         normalize its path name, making it absolute and resolving symbolic
1574         links, and replace the original if resolved path is different.
1576 2005-11-14  Vincent Celier  <celier@adacore.com>
1578         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
1579         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
1581 2005-11-14  Emmanuel Briot  <briot@adacore.com>
1583         * prj-pp.adb (Print): Do not output the with statement if the
1584         associated name is empty, which happens for virtual extending projects.
1585         (Print): Preserve the "extends all" attribute when printing the project.
1587         * prj-tree.ads (String_Value_Of): Add comment about returned value for
1588         a virtual extending project.
1590 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1592         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
1593         rhs of an assignment even if the type is unconstrained, when the
1594         context is non-expanding.
1595         In an inlined body, if the context type is private,
1596         resolve with its full view, which must be a composite type.
1598 2005-11-14  Robert Dewar  <dewar@adacore.com>
1599             Ed Schonberg  <schonberg@adacore.com>
1601         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
1602         Do not give obsolescent warning on with of subprogram (since we
1603         diagnose calls)
1604         (Analyze_With_Clause): Add test for obsolescent package
1605         (Install_Context_Clauses): If the unit is the body of a child unit, do
1606         not install twice the private declarations of the parents, to prevent
1607         circular lists of Use_Clauses in a parent.
1608         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
1609         compiling body of child unit.
1610         Use new class N_Subprogram_Instantiation
1611         (Expand_With_Clause): If this is a private with_clause for a child unit,
1612         appearing in the context of a package declaration, then the implicit
1613         with_clauses generated for parent units are private as well.
1614         (License_Check): Do not generate message if with'ed unit is internal
1616 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
1617             Ed Schonberg  <schonberg@adacore.com>
1618             Thomas Quinot  <quinot@adacore.com>
1620         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
1621         names are internal, because they will not have a corresponding partner
1622         in the actual package.
1623         (Analyze_Formal_Package): Move the setting of the formal package spec's
1624         Generic_Parent field so that it occurs prior to analyzing the package,
1625         to allow proper operation of Install_Parent_Private_Declarations.
1626         (Analyze_Package_Instantiation): Set the instantiated package entity's
1627         Package_Instantiation field.
1628         (Get_Package_Instantiation_Node): Move declaration to package spec.
1629         Retrieve the N_Package_Instantiation node when the Package_Instantiation
1630         field is present.
1631         (Check_Generic_Child_Unit): Within an inlined call, the only possible
1632         instantiation is Unchecked_Conversion, for which no parents are needed.
1633         (Inline_Instance_Body): Deinstall and record the use_clauses for all
1634         parent scopes of a scope being removed prior to inlining an instance
1635         body.
1636         (Analyze_Package_Instantiation): Do not perform front-end inlining when
1637         the current context is itself an instance within a non-instance child
1638         unit, to prevent scope stack errors.
1639         (Save_References): If the node is an aggregate that is an actual in a
1640         call, rewrite as a qualified expression to preserve some type
1641         information, to resolve possible ambiguities in the instance.
1642         (Instance_Parent_Unit): New global variable to record the ultimate
1643         parent unit associated with a generic child unit instance (associated
1644         with the existing Parent_Unit_Visible flag).
1645         (type Instance_Env): New component Instance_Parent_Unit for stacking
1646         parents recorded in the global Instance_Parent_Unit.
1647         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
1648         stack.
1649         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
1650         it's not a top-level unit, and only do this if Instance_Parent_Unit is
1651         not already set. Replace test of Is_Child_Unit with test of parent's
1652         scope against package Standard. Add comments and a ??? comment.
1653         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
1654         on a child instance parent to test that the parent equals
1655         Instance_Parent rather than simply checking that the unit is not a
1656         child unit.
1657         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
1658         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
1659         a formal interface are ancestors of the corresponding actual.
1660         (Validate_Formal_Interface_Type): Additional legality checks.
1661         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
1662         interface types with ancestors.
1663         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
1664         to diagnose attempts to use generic within its own declaration.
1666 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1667             Javier Miranda  <miranda@adacore.com>
1669         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
1670         discriminant.
1671         (Build_Private_Derived_Type): The entity of the created full view of the
1672         derived type does not come from source. If after installing the private
1673         declarations of the parent scope the parent is still private, use its
1674         full view to construct the full declaration of the derived type.
1675         (Build_Derived_Record_Type): Relax the condition that controls the
1676         execution of the check that verifies that the partial view and
1677         the full view agree in the set of implemented interfaces. In
1678         addition, this test now only takes into account the progenitors.
1679         (Derive_Interface_Subprograms): No need to derive subprograms
1680         of ancestors that are interfaces.
1681         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
1682         associated code.
1683         Change name Is_Package to Is_Package_Or_Generic_Package
1684         (Complete_Subprograms_Derivation): Handle the case in which the full
1685         view is a transitive derivation of the ancestor of the partial view.
1686         (Process_Full_View): Rename local subprogram Find_Interface_In_
1687         Descendant to Find_Ancestor_Interface to leave the code more clear.
1688         Remove wrong code that avoids the generation of an error message
1689         when the immediate ancestor of the partial view is an interface.
1690         In addition some minor reorganization of the code has been done to
1691         leave it more clear.
1692         (Analyze_Type_Declaration): If type has previous incomplete tagged
1693         partial view, inherit properly its primitive operations.
1694         (Collect_Interfaces): Make public, for analysis of formal
1695         interfaces.
1696         (Analyze_Interface_Declaration): New procedure for use for regular and
1697         formal interface declarations.
1698         (Build_Derived_Record_Type): Add support for private types to the code
1699         that checks if a tagged type implements abstract interfaces.
1700         (Check_Aliased_Component_Type): The test applies in the spec of an
1701         instance as well.
1702         (Access_Type_Declaration): Clean up declaration of malformed type
1703         declared as an access to its own classwide type, to prevent cascaded
1704         crash.
1705         (Collect_Interfaces): For private extensions and for derived task types
1706         and derived protected types, the parent may be an interface that must
1707         be included in the interface list.
1708         (Access_Definition): If the designated type is an interface that may
1709         contain tasks, create Master_Id for it before analyzing the expression
1710         of the declaration, which may be an allocator.
1711         (Record_Type_Declaration): Set properly the interface kind, for use
1712         in allocators, the creation of master id's for task interfaces, etc.
1714 2005-11-14  Javier Miranda  <miranda@adacore.com>
1715             Ed Schonberg  <schonberg@adacore.com>
1717         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
1718         omitted in case of stream attribute subprograms.
1719         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
1720         appear immediately after a subprogram body, when there is no previous
1721         subprogram declaration.
1722         Change name Is_Package to Is_Package_Or_Generic_Package
1723         (Process_Formals): A non null qualifier on a non null named access
1724         type is not an error, and is a warning only if Redundant_Constructs
1725         are flagged.
1727 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
1728             Ed Schonberg  <schonberg@adacore.com>
1730         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
1731         nested within Analyze_Package_Specification to install the private
1732         declarations and use clauses within each of the parent units of a
1733         package instance of a generic child package.
1734         (Analyze_Package_Specification): When entering a private part of a
1735         package associated with a generic instance or formal package, the
1736         private declarations of the parent must be installed (by calling new
1737         procedure Install_Parent_Private_Declarations).
1738         Change name Is_Package to Is_Package_Or_Generic_Package
1739         (Preserve_Full_Attributes): For a synchronized type, the corresponding
1740         record is absent in a generic context, which does not indicate a
1741         compiler error.
1743 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1745         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
1746         not try to rewrite a renamed stream attribute, because the operations
1747         on the type may not have been generated.
1748         Handle properly a renaming_as_body generated for a stream operation
1749         whose default is abstract because the object type itself is abstract.
1750         (Find_Type): If the type is incomplete and appears as the prefix of a
1751         'Class reference, it is tagged, and its list of primitive operations
1752         must be initialized properly.
1753         (Chain_Use_Clauses): When chaining the use clauses that appear in the
1754         private declaration of a parent unit, prior to compiling the private
1755         part of a child unit, find on the scope stack the proper parent entity
1756         on which to link the use clause.
1757         (Note_Redundant_Use): Emit a warning when a redundant use clause is
1758         detected.
1759         (Analyze_Object_Renaming): An attribute reference is not a legal object
1760         if it is not a function call.
1762 2005-11-14  Robert Dewar  <dewar@adacore.com>
1763             Ed Schonberg  <schonberg@adacore.com>
1765         * sem_eval.adb: Implement d.f flag
1766         (Subtype_Statically_Match): A generic actual type has unknown
1767         discriminants when the corresponding actual has a similar partial view.
1768         If the routine is called to validate the signature of an inherited
1769         operation in a child instance, the generic actual matches the full view,
1771 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
1772             Ed Schonberg  <schonberg@adacore.com>
1773             Robert Dewar  <dewar@adacore.com>
1774             Thomas Quinot  <quinot@adacore.com>
1776         * sem_res.adb (Resolve_Call): Provide a better error message whenever
1777         a procedure call is used as a select statement trigger and is not an
1778         entry renaming or a primitive of a limited interface.
1779         (Valid_Conversion): If the operand has a single interpretation do not
1780         remove address operations.
1781         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
1782         statement to inhibit warning.
1783         (Resolve_Unary_Op): Do not produce a warning when
1784         processing an expression of the form -(A mod B)
1785         Use Universal_Real instead of Long_Long_Float when we need a high
1786         precision float type for the generated code (prevents gratuitous
1787         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
1788         (Resolve_Concatenation_Arg): Improve error message when argument is an
1789         ambiguous call to a function that returns an array.
1790         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
1791         there is an implicit operator in the given scope if we are within an
1792         instance: legality check has been performed on the generic.
1793         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
1794         after resolving operand, to avoid false warnings on overloaded calls.
1796 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1797             Javier Miranda  <miranda@adacore.com>
1799         PR ada/15604
1800         * sem_type.adb (Covers): In an inlined body, a composite type matches
1801         a private type whose full view is a composite type.
1802         (Interface_Present_In_Ancestor): Protect the frontend against
1803         previously detected errors to ensure that its compilation
1804         with assertions enabled gives the same output that its
1805         compilation without assertions.
1806         (Interface_Present_In_Ancestor): Add support for private types.
1807         Change name In_Actual to In_Generic_Actual (clean up)
1808         (Disambiguate): New predicate In_Actual, to recognize expressions that
1809         appear in the renaming declaration generated for generic actuals, and
1810         which must be resolved in the outer context.
1812 2005-11-14  Robert Dewar  <dewar@adacore.com>
1813             Thomas Quinot  <quinot@adacore.com>
1814             Hristian Kirtchev  <kirtchev@adacore.com>
1815             Ed Schonberg  <schonberg@adacore.com>
1817         * sem_util.ads, sem_util.adb: Change name Is_Package to
1818         Is_Package_Or_Generic_Package.
1819         (Check_Obsolescent): New procedure.
1820         (Set_Is_Public): Remove obsolete junk test.
1821         (Set_Public_Status): Do not set Is_Public on an object whose declaration
1822         occurs within a handled_sequence_of_statemets.
1823         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
1824         for a parameterless procedure.
1825         (Enter_Name): Recognize renaming declarations created for private
1826         component of a protected type within protected operations, so that
1827         the source name of the component can be used in the debugger.
1829 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
1830             Robert Dewar  <dewar@adacore.com>
1832         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
1833         of a generic subprogram are not visible outside the body.
1834         (Set_Warning_Switch): New procedure (code to set warning mode moved
1835         here from Switch.C so that it can be shared by pragma processing.
1836         (Check_References): Special case warning for non-modified non-imported
1837         volatile objects.
1838         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
1839         form with a string literal argument
1841 2005-11-14  Javier Miranda  <miranda@adacore.com>
1843         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
1844         anonymous access.
1845         (Write): Addition of "not null" to the anonymous access.
1846         (Read): Addition of "not null" to the anonymous access.
1847         (Write): Addition of "not null" to the anonymous access.
1849         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
1850         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
1851         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
1852         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
1853         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
1854         "not null" to the anonymous access.
1856 2005-11-14  Robert Dewar  <dewar@adacore.com>
1858         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
1859         offset values
1861 2005-11-14  Vincent Celier  <celier@adacore.com>
1863         * switch.adb (Bad_Switch): New procedure
1864         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
1865         message when in error.
1867         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
1868         Too_Many_Output_Files): Remove declarations, no longer used.
1869         (Scan_Nat): New parameter Switch
1870         (Scan_Pos): Ditto
1871         (Bad_Switch): New procedure
1873         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
1874         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
1875         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
1876         to Osint.Fail. Do not handle any exception.
1878 2005-11-14  Vincent Celier  <celier@adacore.com>
1880         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
1881         designates a non existent directory.
1883 2005-11-14  Robert Dewar  <dewar@adacore.com>
1885         * xgnatugn.adb: Replace invalid membership test by 'Valid
1887 2005-11-14  Vincent Celier  <celier@adacore.com>
1889         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
1890         there is no object directory.
1892 2005-11-14  Robert Dewar  <dewar@adacore.com>
1894         * usage.adb: Minor adjustment to output format, use nn instead of nnn
1895         (so that -gnateInnn does not run into next column)
1897 2005-11-14  Ed Falis  <falis@adacore.com>
1899         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
1900         "constrained"
1902 2005-11-14  Cyrille Comar  <comar@adacore.com>
1904         * s-chepoo.ads: Add comments on Dereference.
1905         Remove unnecessary inherited abstract primitives.
1906         Cosmetic cleanup.
1908 2005-11-14  Robert Dewar  <dewar@adacore.com>
1910         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
1911         node parameter, not needed, since it is available as Declaration_Node.
1913 2005-11-14  Geert Bosch  <bosch@adacore.com>
1915         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
1916         grammatically correct.
1918 2005-11-14  Vincent Celier  <celier@adacore.com>
1920         * s-fileio.ads: Correct spelling error in comment
1922 2005-11-14  Cyrille Comar  <comar@adacore.com>
1923             Robert Dewar  <dewar@adacore.com>
1924             Vincent Celier  <celier@adacore.com>
1925             Ben Brosgol  <brosgol@adacore.com>
1926             Jose Ruiz  <ruiz@adacore.com>
1927             Pascal Obry  <obry@adacore.com>
1929         * gnat_ugn.texi:
1930         Document that -fstack-check is needed for strict compliance with the
1931         Ada 95 Reference Manual.
1932         Correct reference to VAX systems to meet HP guidelines
1933         Add documentation for new gnatmake switches -vl, -vm and -vh
1934         Replace DEC Ada by HP Ada
1935         Replace DIGITAL by HP
1936         Remove empty section on tools in compatibility section
1937         Clarify the Windows convention semantics.
1938         Document the Win32 calling convention.
1939         The Stdcall, Win32 and DLL convention are synonyms.
1940         Add a note in -gnatR description about zero size record components
1941         Note on new >= and <= warnings for -gnatwc
1942         Document that equal sign after -gnatm is optional.
1943         Note that strip is working fine on DLL built with a Library
1944         Project. The restriction apply only to DLL built with gnatdll.
1945         Update section about the way to debug a DLL.
1946         Update information about the DLL convention.
1947         Document -C switch for gnatprep
1948         Document new attribute Library_ALI_Dir
1949         Update elaboration doc to include implicit Elaborate pragmas now
1950         generated for subprogram instantiations.
1951         Document limitation on executable names that include spaces for --GCC,
1952         --GNATBIND, and --GNATLINK switches.
1953         Document that -w causes -gnatws to be added at start of gcc switches
1955         * gnat_rm.texi: Document that -mieee is needed for generating infinite
1956         and NaN values in case of overflow on machines that are not fully
1957         compliant with the IEEE floating-point standard.
1958         Create a section describing the set of compiler options needed for
1959         strict compliance with the Ada 95 Reference Manual.
1960         Add documentation for pragma Obsolescent applied to a package
1961         Clarify potential issues of mixed language programs related to the
1962         I/O buffering enabling in the elaboration of the GNAT runtime.
1963         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
1964         This documentation only patch adds extra documentsion for pragma
1965         Restrictions (No_Elaboration_Code), explaining why it is not possible
1966         to document this restriction in terms of allowed source constructs.
1967         Document string literal form of pragma Warnings
1968         Document new attribute Library_ALI_Dir
1969         Add documentation on stable attributes in project files that was missing
1971         * gnat-style.texi: Indicate that paragraphs within a single comment
1972         should be separated by empty comment lines
1974         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
1975         /05 respectively)
1977         * bindusg.adb: Minor cleanup, put -m before -M for consistency
1979 2005-11-14  Robert Dewar  <dewar@adacore.com>
1981         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
1982         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
1983         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
1984         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
1985         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
1986         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
1987         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
1988         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
1989         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
1990         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
1991         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
1992         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
1993         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
1994         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
1995         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
1996         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
1997         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
1998         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
1999         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
2000         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
2001         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
2002         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
2003         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
2004         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
2005         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
2006         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
2007         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
2008         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
2009         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
2010         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
2011         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
2012         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
2013         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
2014         system-interix.ads, system-solaris-sparc.ads,
2015         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
2016         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
2017         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
2018         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
2019         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
2020         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
2021         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
2022         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
2023         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
2024         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
2025         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
2026         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
2027         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
2028         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
2029         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
2030         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
2031         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
2032         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
2033         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
2034         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
2035         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
2036         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
2037         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
2038         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
2039         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
2040         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
2041         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
2042         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
2043         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
2044         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
2045         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
2046         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
2047         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
2048         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
2049         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
2050         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
2051         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
2052         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
2053         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
2054         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
2055         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
2056         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
2057         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
2058         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
2059         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
2060         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
2061         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
2062         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
2063         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
2064         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
2065         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
2066         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
2067         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
2068         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
2069         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
2070         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
2071         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
2072         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
2073         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
2074         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
2075         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
2076         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
2077         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
2078         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
2079         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
2080         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
2081         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
2082         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
2083         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
2084         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
2085         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
2086         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
2087         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
2088         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
2089         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
2090         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
2091         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
2092         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
2093         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
2094         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
2095         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
2096         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
2097         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
2098         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
2099         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
2100         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
2101         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
2102         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
2103         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
2104         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
2105         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
2106         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
2107         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
2108         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
2109         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
2110         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
2111         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
2112         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
2113         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
2114         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
2115         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
2116         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
2117         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
2118         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
2119         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
2120         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
2121         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
2122         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
2123         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
2124         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
2125         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
2126         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
2127         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
2128         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
2129         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
2130         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
2131         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
2132         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
2133         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
2134         a-numaux-darwin.ads, a-numaux-darwin.adb,
2135         a-swuwha.ads, a-stunha.ads: Minor reformatting
2137 2005-11-14  Robert Dewar  <dewar@adacore.com>
2139         PR ada/18434
2140         * osint-m.adb: Add pragma Elaborate_All for Osint
2142 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2144         PR ada/23995
2145         * trans.c (call_to_gnu): Restore statement lost in translation.
2147 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2149         * init.c: Use the Linux-specific section for the IA-64/Linux target.
2150         (__gnat_adjust_context_for_raise): Add conditional code so that the
2151         IA-64 is also supported.
2153 2005-11-03  James E Wilson  <wilson@specifix.com>
2155         PR ada/23427
2156         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
2157         TREE_OVERFLOW check.
2159 2005-09-21  Olivier Hainque  <hainque@adacore.com>
2161         PR ada/22418
2162         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
2163         as we create them to store a size in bits.
2165 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
2167         PR ada/21937
2168         PR ada/22328
2169         PR ada/22381
2170         PR ada/22383
2171         PR ada/22419
2172         PR ada/22420
2173         * utils2.c (build_return_expr): New helper function.
2174         * gigi.h (build_return_expr): Declare it.
2175         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
2176         of manually building the RETURN_EXPR tree.
2177         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
2178         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
2179         build_binary_op for the "target pointer" case.  Use build_return_expr
2180         instead of manually building the RETURN_EXPR tree.
2182 2005-09-16  Laurent Guerby  <laurent@guerby.net>
2184         PR ada/23788
2185         * s-tpinop.ads: Make this unit Preelaborate.
2187 2005-09-16  Andreas Jaeger  <aj@suse.de>
2189         * socket.c: Add string.h for memcpy.
2191 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
2193         * dec-io.ads, dec-io.adb: Removed, no longer used.
2195 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
2197         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
2199         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
2200         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
2201         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
2202         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
2203         dependent units are Preelaborate.
2204         (Initialize): Call Interrupt_Managemeent.Initialize and
2205         OS_Primitives.Initialize to ensure proper initialization of this unit.
2206         Remove use of System.Soft_Links
2207         Make this unit Preelaborate.
2209         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
2210         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
2211         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
2212         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
2213         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
2214         s-tratas.ads, s-tasinf.ads: Minor reformatting.
2215         Add pragma Preelaborate, since these packages are suitable for this
2216         categorization.
2217         Update comments.
2219         * s-traent-vms.ads, s-intman-dummy.adb,
2220         s-taprop-dummy.adb: Make this unit Preelaborate.
2222         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
2223         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
2224         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
2225         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
2226         s-intman-solaris.adb, s-intman-irix-athread.adb,
2227         s-intman-irix.adb: Mark this unit Preelaborate.
2228         (Initialize): New procedure.
2229         Update comments.
2231         * s-taspri-linux.ads: Removed.
2233         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
2234         as done by other implementations (e.g. posix).
2236         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
2237         responsible for deferring abort.
2238         Mark this unit Preelaborate.
2240         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
2241         proper initialization of the tasking run-time.
2243         * s-tasdeb.ads: Mark this unit Preelaborate.
2244         (Known_Tasks): Add explicit default value to avoid elaboration code.
2246         * s-inmaop-vms.adb (Elaboration code): Add call to
2247         Interrupt_Management.Initialize since the elaboration code depends on
2248         proper initialization of this package.
2250         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
2251         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
2252         s-osprim-posix.adb: Make this unit Preelaborate.
2254         * a-calend.adb: Add call to OS_Primitives.Initialize
2256         * a-elchha.adb: Update use of Except.Id.Full_Name.
2257         Minor reformatting.
2258         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
2260         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
2261         Move with clauses outside Warnings Off now that dependent units are
2262         Preelaborate.
2263         Use raise xxx with "..."; Ada 2005 form.
2265         * a-taside.ads, a-taside.adb:
2266         Remove some dependencies, to make it easier to make this unit truly
2267         Preelaborate.
2268         Rewrite some code to be conformant with Preelaborate rules.
2270         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
2271         marked Preelaborate in the future.
2273         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
2274         these units Preelaborate.
2276         * s-exctab.adb: Update use of Except.Id.Full_Name.
2278         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
2279         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
2280         Set_Exc_Stack_Addr): Removed, no longer used.
2281         Remove reference to *Machine_State_Addr*, no longer needed.
2283         * s-stalib.ads: Mark this unit as Preelaborate[_05].
2284         (Exception_Data): Full_Name is now a System.Address so that this unit
2285         can be made Preelaborate.
2286         Clean up/simplify code thanks to Full_Name being a System.Address.
2287         Remove obsolete pragma Suppress (All_Checks), no longer needed.
2289         * s-taskin.ads, s-taskin.adb:
2290         Move with clauses outside Warnings Off now that dependent units are
2291         Preelaborate.
2292         Make this unit Preelaborate.
2293         (Initialize): New proceduure, replace elaboration code and makes the
2294         set up of the tasking run-time cleaner.
2295         (Detect_Blocking): Now a function instead of a deferred boolean, to
2296         obey Preelaborate rules.
2298         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
2299         soft links, no longer used.
2301         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
2302         packages are suitable for this categorization.
2304         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
2305         since we compile run-time sources in Ada 2005 mode.
2306         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
2307         avoid having s-taprop*.adb depend on s-soflin and to avoid code
2308         duplication.
2309         Remove reference to *Machine_State_Addr*, no longer needed.
2311 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
2313         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
2314         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
2315         Remove reference to System.Exceptions.
2317         * s-mastop-x86.adb: Removed, no longer used.
2319         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
2321         * a-excach.adb: Minor reformatting.
2323         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
2324         instead fix new warnings that were hidden by this change.
2325         (AAA, ZZZ): Removed, replaced by...
2326         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
2327         are used instead of constants, to help make Ada.Exception truly
2328         preelaborate.
2329         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
2330         Raise_Storage_Error): File is now a System.Address, to simplify code.
2331         (Elab code): Removed, no longer used.
2332         (Null_Occurrence): Remove Warnings Off and make this construct
2333         preelaborate.
2334         Remove code related to front-end zero cost exception handling, since
2335         it is no longer used.
2336         Remove -gnatL/-gnatZ switches.
2338         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
2339         Update use of Except.Msg.
2341         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
2342         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
2343         to front-end zero cost exception handling, since it is no longer used.
2344         Remove -gnatL/-gnatZ switches.
2346         * lib-writ.ads: Minor reformatting
2347         Remove doc of UX
2349         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
2351         * Make-lang.in: Remove references to s-except.ads
2353         * s-except.ads: Removed, no longer used.
2355         * s-mastop.ads, s-mastop.adb:
2356         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
2357         Remove reference to System.Exceptions.
2359         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
2360         switch-b.adb: Remove code related to front-end zero cost exception
2361         handling, since it is no longer used.
2362         Remove -gnatL/-gnatZ switches.
2364 2005-09-01  Robert Dewar  <dewar@adacore.com>
2365             Gary Dismukes  <dismukes@adacore.com>
2366             Javier Miranda  <miranda@adacore.com>
2368         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
2369         type by valid test and generate warning.
2370         (Tagged_Membership): Generate call to the run-time
2371         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
2372         Change formal name Subtype_Mark to Result_Definition in several calls to
2373         Make_Function_Specification.
2374         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
2375         check for proper accessibility of the operand of a class-wide allocator.
2376         The check can be left out if checks are suppressed or if the expression
2377         has a specific tagged type whose level is known to be safe.
2379         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
2380         generates the run-time check associated with null-excluding entities.
2381         (Expand_N_Return_Statement): Add tests to determine if the accessibility
2382         check on the level of the return expression of a class-wide function
2383         can be elided. The check usually isn't needed if the expression has a
2384         specific type (unless it's a conversion or a formal parameter). Also
2385         add a test for whether accessibility checks are suppressed. Augment
2386         the comments to describe the conditions for performing the check.
2388 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
2389             Javier Miranda  <miranda@adacore.com>
2390             Gary Dismukes  <dismukes@adacore.com>
2391             Ed Schonberg  <schonberg@adacore.com>
2393         * a-tags.adb (IW_Membership): Give support to
2394         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
2395         subprogram has been extended to look for the tag in the ancestors tag
2396         table.
2397         Update the structure of the GNAT Dispatch Table to reflect the
2398         additional two tables used in dispatching selects.
2399         Introduce appropriate array types and record components in
2400         Type_Specific_Data to reflect the two tables.
2401         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
2402         the TSD of a tag, indexed by position.
2403         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
2404         operation kind in the TSD of a tag, indexed by position.
2406         * a-tags.ads: Introduce an enumeration type to capture different
2407         primitive operation kinds. Define a constant reflecting the number of
2408         predefined primitive operations.
2409         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
2410         of an entry wrapper.
2411         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
2412         callable entity of a primitive operation.
2414         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
2415         primitive operations used in dispatching selects for limited
2416         interfaces, limited tagged, task and protected types what implement a
2417         limited interface.
2418         (Freeze_Type): Generate the bodies of the primitive operations used in
2419         dispatching selects for limited tagged, task and protected types that
2420         implement a limited interface. Generate statements to populate the two
2421         auxiliary tables used for dispatching in select statements.
2422         (Freeze_Record_Type): Add call to initialize the dispatch table entries
2423         associated with predefined interface primitive operations.
2424         (Build_Dcheck_Function): Change Set_Subtype_Mark to
2425         Set_Result_Definition.
2426         (Build_Variant_Record_Equality): Change Subtype_Mark to
2427         Result_Definition.
2428         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
2429         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
2430         (Build_Assignment): Simplify the code that adds the run-time-check.
2431         (Expand_N_Object_Declaration): Code cleanup.
2433         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
2434         entries when there is a protected type that implements a limited
2435         interface.
2437         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
2438         common routines used in expansion of dispatching selects.
2439         (Add_Private_Declarations): Select the appropriate protection type when
2440         there is a protected type that implements a limited interface.
2441         (Build_Parameter_Block): Generate a wrapped parameter block.
2442         (Build_Protected_Subprogram_Body): Select the appropriate type for
2443         locking entries when there is a protected type that implements a
2444         limited interface.
2445         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
2446         classified as entry wrappers.
2447         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
2448         asynchronous selects.
2449         (Expand_N_Conditional_Entry_Call): Add support for expansion of
2450         dispatching conditional selects.
2451         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
2452         protection when there is a protected type that implements limited
2453         interfaces.
2454         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
2455         timed selects.
2456         (Extract_Dispatching_Call): Extract the entity of the name of a
2457         dispatching call, the object parameter, actual parameters and
2458         corresponding formals.
2459         (Make_Initialize_Protection): Correct logic of protection initialization
2460         when there is a protected type that implements a limited interface.
2461         (Parameter_Block_Pack): Populate a wrapped parameter block with the
2462         values of actual parameters.
2463         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
2464         block and assign them to the original actual parameters.
2466         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
2467         (Build_Protected_Sub_Specification): Change the type and name of the
2468         last formal to account for the increased variety of protection modes.
2470         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
2471         entities. Used to save the value of the Is_Hidden attribute when the
2472         limited-view is installed.
2473         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
2474         the attribute of procedures classified as entry wrappers.
2475         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
2476         entity of a primitive wrapper.
2477         (Write_Entity_Flags): Output the name and value of the
2478         Is_Primitive_Wrapper attribute.
2479         (Write_Field27_Name): Output the name and entity of the field Wrapped_
2480         Entity.
2481         (Underlying_Type): If we have an incomplete entity that comes from
2482         the limited view then we return the Underlying_Type of its non-limited
2483         view if it is already available.
2484         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
2485         including operators.
2486         (Write_Field26_Name): Add entry for Overridden_Operation
2487         (Overridden_Operation): New attribute of functions and procedures.
2489         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
2490         predefined position in the dispatch table for the primitive operations
2491         used in dispatching selects.
2492         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
2493         predefined primitive operations and replace it with
2494         Default_Prim_Op_Count.
2495         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
2496         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
2497         the names of the generated primitive operations used in dispatching
2498         selects.
2499         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
2500         case of abstract interface types. They will be inherit by the objects
2501         implementing the interface.
2502         (Make_DT): There is no need to inherit the dispatch table of the
2503         ancestor interface for the elaboration of abstract interface types.
2504         The dispatch table will be inherited by the object implementing the
2505         interface.
2506         (Copy_Secondary_DTs): Add documentation.
2507         (Validate_Position): Improve this static check in case of
2508         aliased subprograms because aliased subprograms must have
2509         the same position.
2510         (Init_Predefined_Interface_Primitives): New subprogram that initializes
2511         the entries associated with predefined primitives of all the secondary
2512         dispatch tables.
2513         (Build_Anonymous_Access_Type): Removed.
2514         (Expand_Interface_Actuals): With the previous cleanup there is no need
2515         to build an anonymous access type. This allows further cleanup in the
2516         code generated by the expander.
2517         (Expand_Interface_Conversion): If the actual is an access type then
2518         build an internal function to handle the displacement. If the actual
2519         is null this function returns null because no displacement is
2520         required; otherwise performs a type conversion that will be
2521         expanded in the code that returns the value of the displaced actual.
2522         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
2523         conversions that have no effect in the generated code because no
2524         displacement is required. Code cleanup; use local variables to
2525         avoid repeated calls to the subprogram directly_designated_type().
2527         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
2528         Classify the primitive operations used in dispatching selects as
2529         predefined.
2530         (Implements_Limited_Interface): Determine whether some type either
2531         directly implements a limited interface or extends a type that
2532         implements a limited interface.
2533         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
2534         (Expand_Subtype_From_Expr): Do not build actual subtype if the
2535         expression is limited.
2536         (Find_Interface_Tag): Add code to handle class-wide types and
2537         entities from the limited-view.
2539         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
2540         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
2541         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
2542         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
2543         Set_Prim_Op_Kind.
2545         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
2546         of procedure name or prefix that appears as a trigger in a triggering
2547         alternative.
2549         * uintp.ads: Introduce constants Uint_11 and Uint_13.
2551 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
2553         * s-tataat.adb, a-tasatt.adb:
2554         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
2556         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
2557         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
2558         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
2559         longer used.
2561 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
2562             Jose Ruiz  <ruiz@adacore.com>
2564         * s-taprop-vxworks.adb:
2565         Move with clauses outside Warnings Off now that dependent units are
2566         Preelaborate.
2567         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
2568         initialization of this unit.
2569         (Specific): Add new procedures Initialize and Delete so that this
2570         package can be used for VxWorks 5.x and 6.x
2571         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
2572         differences between VxWorks 5.x and 6.x
2573         Minor reformatting.
2574         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
2575         caller.
2576         Use only Preelaborate-compatible constructs.
2578         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
2579         Primitives.Operations.
2580         (Delete, Initialize): New procedures.
2582         * s-osinte-vxworks.adb: Body used to handle differences between
2583         VxWorks 5.x and 6.x
2584         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
2586         * s-osinte-vxworks.ads: Minor reformatting.
2587         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
2588         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
2589         and 6.
2590         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
2591         between Vxworks 5 and 6.
2592         (taskLock, taskUnlock): Removeed, no longer used.
2594         * adaint.c: The wait.h header is not located in the sys directory on
2595         VxWorks when using RTPs.
2596         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
2597         using RTPs.
2598         (__gnat_dup): dup is available on Vxworks when using RTPs.
2599         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
2601         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
2603         * expect.c: The wait.h header is not located in the sys directory on
2604         VxWorks when using RTPs.
2606 2005-09-01  Thomas Quinot  <quinot@adacore.com>
2608         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
2610         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
2612         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
2613         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
2614         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
2615         g-soccon-freebsd.ads: Add new constants:
2616          IP_MULTICAST_IF
2617          SO_RCVTIMEO/SO_SNDTIMEO
2618          IOV_MAX
2620         * gen-soccon.c:
2621         Move all target-specific file inclusions and macro definitions to
2622         gsocket.h, in order to ensure that any C code in socket.c will see a
2623         set of constants that is consistent with the contents of g-soccon.ads.
2625         * gsocket.h: Code imported from gen-soccon.c:
2626         Move all target-specific file inclusions and macro definitions to
2627         gsocket.h, in order to ensure that any C code in socket.c will see a set
2628         of constants that is consistent with the contents of g-soccon.ads.
2629         This change also makes gen-soccon self-contained (removing dependencies
2630         upon GCC internal headers).
2632         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
2633         iovecs at a time.
2634         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
2636         * socket.c: Minor reformatting.
2638 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2639             Thomas Quinot  <quinot@adacore.com>
2641         * fname-sf.adb, mlib-tgt.ads,
2642         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
2643         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
2644         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
2645         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
2646         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
2647         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
2648         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
2649         makegpr.adb: Remove redundant use_clauses.
2651 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
2653         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
2654         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
2655         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
2656         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
2657         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
2658         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
2659         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
2660         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
2661         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
2662         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
2663         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
2664         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
2665         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
2666         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
2667         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
2668         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
2669         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
2670         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
2671         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
2672         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
2673         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
2674         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
2675         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
2676         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
2677         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
2678         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
2679         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
2680         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
2681         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
2682         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
2683         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
2684         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
2685         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
2686         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
2687         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
2688         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
2689         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
2690         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
2691         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
2692         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
2693         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
2694         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
2695         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
2696         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
2697         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
2698         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
2699         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
2700         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
2701         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
2702         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
2703         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
2704         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
2705         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
2706         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
2707         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
2708         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
2709         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
2710         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
2711         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
2712         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
2713         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
2714         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
2715         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
2716         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
2717         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
2718         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
2719         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
2720         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
2721         and always use the no parameter form for consistency.
2723         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
2725 2005-09-01  Robert Dewar  <dewar@adacore.com>
2727         * binde.adb: Minor reformatting
2728         (Find_Elab_Order): Output warning if -p used with static elab order
2730 2005-09-01  Robert Dewar  <dewar@adacore.com>
2732         * checks.adb (Check_Needed): New procedure, deals with removing checks
2733         based on analysis of short-circuited forms. Also generates warnings for
2734         improper use of non-short-circuited forms.
2735         Code clean ups.
2737 2005-09-01  Robert Dewar  <dewar@adacore.com>
2739         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
2740         with 'Valid tests.
2742 2005-09-01  Robert Dewar  <dewar@adacore.com>
2744         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
2745         spec.
2746         Implement new insertion char < (conditional warning)
2747         * errutil.adb, erroutc.adb: Implement new insertion char <
2748         (conditional warning).
2749         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
2750         (Error_Msg_Warn): New variable for < insertion char.
2751         * prj-nmsc.adb: Implement new errout insertion char < (conditional
2752         warning).
2753         (Check_For_Source): Change value of Source_Id only after the current
2754         source has been dealt with.
2756 2005-09-01  Robert Dewar  <dewar@adacore.com>
2757             Doug Rupp  <rupp@adacore.com>
2759         * exp_attr.adb: Handle vax fpt for 'Valid attribute
2760         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
2761         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
2762         (Valid_D, Valid_F, Valid_G): New functions
2764 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2765             Hristian Kirtchev  <kirtchev@adacore.com>
2766             Javier Miranda  <miranda@adacore.com>
2768         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
2769         from object notation, the original node is unanalyzed and carries no
2770         semantic information, so that accessiblity checks must be performed on
2771         the type of the actual itself.
2772         (Expand_N_Subprogram_Declaration): Change last actual parameter for
2773         compatibility with Build_Protected_Sub_Specification.
2774         (Check_Overriding_Inherited_Interfaces): Add suport to handle
2775         overloaded primitives.
2776         (Register_Interface_DT_Entry): Use the new name of the formal
2777         the the calls to Expand_Interface_Thunk
2779         * exp_dbug.ads: Augment comments on encoding of protected types to
2780         include the generation of dispatching subprograms when the type
2781         implements at least one interface.
2783         * lib.ads: Extend information in Load_Stack to include whether a given
2784         load comes from a Limited_With_Clause.
2786         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
2787         whether a potential circularity is harmless, because it includes units
2788         loaded through a limited_with clause. Extends previous treatment which
2789         did not handle properly arbitrary combinations of limited and
2790         non-limited clauses.
2792 2005-09-01  Nicolas Setton  <setton@adacore.com>
2794         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
2795         to be encoded as typ___XBLU_lowerbound__upperbound instead of
2796         typ___XB_lowerbound__upperbound.
2798 2005-09-01  Thomas Quinot  <quinot@adacore.com>
2800         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
2801         dummy access formal for RACW/RAS TypeCode TSS.
2802         (Build_TypeCode_Call): Do not generate dummy null access actual for
2803         calls to the TypeCode TSS.
2805 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2807         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
2808         fully qualified name, to distinguish instances with the same local name.
2810         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
2811         fully qualified.
2813 2005-09-01  Robert Dewar  <dewar@adacore.com>
2815         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
2816         packed arrays.
2818 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
2820         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
2821         (Free): New deallocation procedure for filter elements
2822         (Close): Deallocate any existing filter for the concerned connection
2824 2005-09-01  Laurent Pautet  <pautet@adacore.com>
2826         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
2827         position set is provided, we compute one in order to reduce the maximum
2828         length of the keys.  This computation first selects a character
2829         position between 1 and the minimum length of the keys in order to
2830         avoid reducing one of the keys to an empty string.
2831         (Initialize, Compute): When the ratio V to K is too low, the algorithm
2832         does not converge. The initialization procedure now comes with a
2833         maximum number of iterations such that when exceeded, an exception is
2834         raised in Compute. The user can initialize this ratio to another value
2835         and try again
2836         Reformating and updated headers.
2838 2005-09-01  Javier Miranda  <miranda@adacore.com>
2840         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
2841         that given an entity T creates and returns an Itype that duplicates the
2842         contents of T. The returned Itype has the null-exclusion
2843         attribute set to True, and its Etype attribute references T
2844         to keep the association between the two entities.
2845         Update copyright notice
2847         * sem_aggr.adb (Check_Can_Never_Be_Null,
2848         Aggregate_Constraint_Checks, Resolve_Aggregate,
2849         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
2851         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
2853 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
2854             Robert Dewar  <dewar@adacore.com>
2855             Hristian Kirtchev  <kirtchev@adacore.com>
2857         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
2858         Result_Definition.
2860         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
2861         function specs.
2862         Call Set_Result_Definition instead of Set_Subtype_Mark.
2863         (P_Subprogram_Specification): Add parsing of anonymous access result
2864         plus null exclusions. Call Set_Result_Definition instead of
2865         Set_Subtype_Mark.
2867         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
2868         (P_Access_Type_Definition): Add parsing for an anonymous access result
2869         subtype, plus parsing for null exclusions. Call Set_Result_Definition
2870         instead of Set_Subtype_Mark.
2872         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
2873         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
2874         (Result_Definition): New function for N_Function_Specifications.
2875         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
2876         N_Function_Specification.
2877         (Set_Null_Exclusion_Present): Allow this flag for
2878         N_Function_Specification.
2879         (Set_Result_Definition): New procedure for N_Function_Specifications.
2880         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
2881         and N_Function_Specification.
2883         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
2884         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
2885         Add support for LIMITED NEW for Ada 2005 AI-419
2886         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
2887         syntax for anonymous access results.
2888         Replace Subtype_Mark field by Result_Definition in
2889         N_Function_Specification and N_Access_Definition specs.
2890         Add Null_Exclusion_Present to spec of N_Function_Specification.
2891         (Result_Definition): New function for N_Function_Specification and
2892         N_Access_Function_Definition.
2893         (Set_Result_Definition): New procedure for N_Function_Specification and
2894         N_Access_Function_Definition.
2896         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
2897         Result_Definition for cases of N_Access_Function_Definition and
2898         N_Function_Specification.
2899         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
2901 2005-09-01  Vincent Celier  <celier@adacore.com>
2903         * lib-writ.adb: Update Copyright notice
2904         (Write_With_Lines): On platforms where file names are case-insensitive,
2905         record the file names in lower case.
2906         (Write_ALI): For D lines, on platforms where file names are
2907         case-insensitive, record the file names in lower case.
2909 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
2910             Emmanuel Briot  <briot@adacore.com>
2912         * lib-xref.adb (Output_Overridden_Op): Display information on
2913         overridden operation.
2915         * lib-xref.ads: Add documentation on overridden operations.
2917         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
2918         information.
2920         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
2921         overriding entity information.
2923 2005-09-01  Vincent Celier  <celier@adacore.com>
2925         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
2926         including those that are inherited.
2928 2005-09-01  Robert Dewar  <dewar@adacore.com>
2930         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
2932         * par-prag.adb: Implement new pragma Debug_Policy
2934         * sem_prag.adb Implement new pragma Debug_Policy
2935         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
2936         Component_Size attribute specification. Give warning for ignored pragma
2937         Pack.
2939         * snames.h, snames.ads, snames.adb: Introduce entries in
2940         Preset_Names for Name_Disp_Asynchronous_Select,
2941         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
2942         Name_Disp_Timed_Select.
2943         New pragma Debug_Policy
2945         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
2946         explicitly.
2947         Switch -gnata also sets Debug_Pragmas_Enabled
2949         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
2950         handle an explicit -gnata when compiling predefined files.
2952 2005-09-01  Vincent Celier  <celier@adacore.com>
2954         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
2955         directories of projects that have no Ada sources.
2957 2005-09-01  Robert Dewar  <dewar@adacore.com>
2959         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
2960         (makes a difference for wide characters)
2962         * widechar.adb, widechar.ads:
2963         Add Wide_Char_Byte_Count feature to count chars vs bytes
2965 2005-09-01  Thomas Quinot  <quinot@adacore.com>
2966             Ed Schonberg  <schonberg@adacore.com>
2967             Robert Dewar  <dewar@adacore.com>
2969         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
2970         'Address attribute reference with an overloaded prefix, use the
2971         location of the prefix (not the location of the attribute reference) as
2972         the error location.
2973         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
2974         a function renaming thereof, is a valid prefix for 'Size (where it is
2975         intepreted as a function call).
2976         (Statically_Denotes_Entity): New predicate to determine whether the
2977         prefix of an array attribute can be considered static.
2979         PR ada/9087
2980         (Eval_Attr): Fix failure to evaluate Component_Size for
2981         unconstrained arrays (resulted in wrong value in packed case, since
2982         back end cannot handle this case)
2984 2005-09-01  Robert Dewar  <dewar@adacore.com>
2986         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
2987         error msgs for most common cases.
2988         Use new errout insertion char < (conditional warning)
2990 2005-09-01  Javier Miranda  <miranda@adacore.com>
2991             Ed Schonberg  <schonberg@adacore.com>
2993         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
2994         become local to the whole package.
2995         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
2996         the package was already analyzed the new algorithm "replaces" the
2997         real entities by the shadow ones. This is required to ensure that
2998         the order of these entities in the homonym chains does not change;
2999         otherwise we can have undefined references at linking time because
3000         in case of conflicts the external name of the entities will have
3001         a suffix that depends on the order of the entities in the chain.
3002         (Remove_Limited_With_Clause): Complementary code that completes the
3003         new algorithm and replaces the shadow entities by the real ones.
3004         (Install_Limited_Withed_Unit): When unchaining entities before the
3005         installation of the shadow entities, only regular entities of the
3006         public part must be taken into account. This is required to
3007         keep this routine in synch with the work done by Remove_Limited_
3008         With_Clause
3009         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
3010         even if unit is analyzed, because the analysis of the unit is
3011         idempotent in any case, and the limited view of the unit may have to
3012         be installed for proper visibility.
3013         (Expand_Limited_With_Clause): Even if the unit in the implicit
3014         with_clause has been analyzed already, a limited view of the package
3015         must be built for the current context, if it does not exist yet.
3017 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
3018             Javier Miranda  <miranda@adacore.com>
3019             Gary Dismukes  <dismukes@adacore.com>
3021         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
3022         defining entity for the instance body, make a new defining identifier
3023         rather than copying the entity of the spec, to prevent accidental
3024         sharing of the entity list.
3025         (Check_Private_View): When exchanging views of private types, build the
3026         list of exchanged views as a stack, to ensure that on exit the exchanges
3027         are undone in the proper order.
3028         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
3029         Restore the compilation environment in case of instantiation_error.
3030         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
3031         for an anonymous access result.
3032         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
3033         (Formal_Entity): Handle properly the case of a formal package that
3034         denotes a generic package renaming.
3036 2005-09-01  Thomas Quinot  <quinot@adacore.com>
3038         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
3039         clause if the array aggregate is surrounded by parentheses.
3041 2005-09-01  Cyrille Comar  <comar@adacore.com>
3042             Gary Dismukes  <dismukes@adacore.com>
3043             Ed Schonberg  <schonberg@adacore.com>
3044             Javier Miranda  <miranda@adacore.com>
3046         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
3047         underlying type
3048         to check if a type is Constrained in cases related to code generation
3049         (rather than semantic checking) since otherwise we do not generate
3050         similar code for mutable private types depending if their
3051         discriminants are visible or not.
3052         (Check_Abstract_Overriding): Do not complain about failure to override
3053         the primitive operations used in dispatching selects since they will
3054         always be overriden at the freeze point of the type.
3055         (Access_Definition): Separate out handling for resetting the scope
3056         of an anonymous access function result type. Retrieve the scope
3057         of the associated function rather than using Current_Scope, which
3058         does not have a consistent value (depends on whether we're in the
3059         middle of analyzing formal parameters). Add ??? comment about
3060         finding a cleaner way to handle the special cases of scope setting.
3061         (Process_Incomplete_Dependents): A protected operation is never a
3062         dispatching operation (only its wrapper may be).
3063         (Build_Derived_Record_Type): In case of tagged private types that
3064         implement interfaces add derivation of predefined primitive
3065         operations.
3066         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
3067         by two parameters that are used in case of derivation from abstract
3068         interface types: No_Predefined_Prims is used to avoid the derivation
3069         of predefined primitives from the interface, and Predefined
3070         Prims_Only is used to complete the derivation predefined primitives
3071         in case of private tagged types implementing interfaces.
3072         Fix typo in comments
3073         (Find_Interface_In_Descendant): Protect the frontend against
3074         wrong code with large circularity chains.
3075         (Is_Private_Overriding): Add support for entities overriding interface
3076         subprograms. The test failed because Entities associated with overriden
3077         interface subprograms are always marked as hidden (and used to build
3078         the secondary dispatch table); in this case the overriden entity is
3079         available through the field abstract_interface_alias (cf. override_
3080         dispatching_operation)
3081         (Access_Definition): Set the scope of the type to Current_Scope for the
3082         case of a function with an anonymous access result type.
3083         (Access_Subprogram_Declaration): Handle creation of the type entity for
3084         an access-to-function type with an anonymous access result.
3085         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
3086         in handling for N_Access_Function_Definition.
3087         (Analyze_Subtype_Declaration): Modify the text of error message.
3088         (Derived_Type_Declaration): Modify the text of error message.
3089         (Process_Subtype): Modify the text of error message plus cleanup
3090         of one redundant error message.
3091         (Analyze_Component_Declaration): Code cleanup.
3092         (Analyze_Object_Declaration): Code cleanup.
3093         (Analyze_Subtype_Declaration): Propagate the null-exclusion
3094         attribute in case of access types. Code cleanup.
3095         (Array_Type_Declaration): Code cleanup.
3096         (Process_Discriminants): Create the new null-excluding itype
3097         if required. Code cleanup.
3098         (Process_Subtype): Create the new null-excluding itype if
3099         required. Code cleanup.
3100         (Build_Derived_Record_Type): Code cleanup to avoid calling
3101         twice the subprogram derive_subprograms in case of private
3102         types that implement interfaces. In this particular case the
3103         subprogram Complete_Subprograms_Derivation already does the
3104         job associated with the second call.
3106         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
3107         conversion to the full view when generating an operation for a
3108         discriminant whose type may currently be private.
3110 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
3111             Javier Miranda  <miranda@adacore.com>
3113         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
3114         V (Obj.F), the rewriting does not involve the indexed component, but
3115         only the selected component itself.
3116         Do not apply the transformation if the analyzed node is an actual of a
3117         call to another subprogram.
3118         (Complete_Object_Operation): Retain the entity of the
3119         dispatching operation in the selector of the rewritten node. The
3120         entity will be used in the expansion of dispatching selects.
3121         (Analyze_One_Call): Improve location of the error message associated
3122         with interface.
3123         (Analyze_Selected_Component): No need to resolve prefix when it is a
3124         function call, resolution is done when parent node is resolved, as
3125         usual.
3126         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
3127         when attempting to resolve a call transformed from its object notation.
3128         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
3129         of the argument list for each interpretation of the operation.
3130         (Try_Object_Operation): The designated type of an access parameter may
3131         be an incomplete type obtained through a limited_with clause, in which
3132         case the primitive operations of the type are retrieved from its full
3133         view.
3134         (Analyze_Call): If this is an indirect call, and the return type of the
3135         access_to_subprogram is incomplete, use its full view if available.
3137 2005-09-01  Javier Miranda  <miranda@adacore.com>
3138             Gary Dismukes  <dismukes@adacore.com>
3140         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
3141         access types the null-exclusion and access-to-constant attributes must
3142         also match.
3143         (Analyze_Return_Statement): When the result type is an anonymous access
3144         type, apply a conversion of the return expression to the access type
3145         to ensure that appropriate accessibility checks are performed.
3146         (Analyze_Return_Type): For the case of an anonymous access result type,
3147         generate the Itype and set Is_Local_Anonymous_Access on the type.
3148         Add ??? placeholder for check to disallow returning a limited object
3149         in Ada 2005 unless it's an aggregate or a result of a function call.
3150         Change calls from Subtype_Mark to Result_Definition.
3151         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
3152         Result_Definition in call to Make_Function_Specification.
3153         (Build_Body_To_Inline): Change Set_Subtype_Mark to
3154         Set_Result_Definition.
3155         (Make_Inequality_Operator): Change formal Subtype_Mark to
3156         Result_Definition in call to Make_Function_Specification.
3157         (Process_Formals): Create the new null-excluding itype if required.
3158         (New_Overloaded_Entity): For an entity overriding an interface primitive
3159         check if the entity also covers other abstract subprograms in the same
3160         scope. This is required to handle the general case, that is, overriding
3161         other interface primitives and overriding abstract subprograms inherited
3162         from some abstract ancestor type.
3163         (New_Overloaded_Entity): For an overriding entity that comes from
3164         source, note the operation that it overrides.
3165         (Check_Conformance, Type_Conformant): Addition of one new formal
3166         to skip controlling formals in the analysis. This is used to
3167         handle overloading of abstract interfaces.
3168         (Base_Types_Match): Add missing case for types imported from
3169         limited-with clauses
3170         (New_Overloaded_Entity): Add barrier to protect the use of
3171         the "alias" attribute.
3173 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
3175         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
3176         verify that the procedure and the entry are mode conformant.
3177         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
3178         as a different operator, which is often a cut-and-paste error.
3180 2005-09-01  Javier Miranda  <miranda@adacore.com>
3181             Ed Schonberg  <schonberg@adacore.com>
3183         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
3184         used in controlling parameters exclude null because it is necessary to
3185         read the tag to dispatch, and null has no tag.
3186         (Override_Dispatching_Operation): If the previous operation is inherited
3187         from an interface, it becomes hidden  and does not participate in later
3188         name resolution.
3190 2005-09-01  Javier Miranda  <miranda@adacore.com>
3191             Ed Schonberg  <schonberg@adacore.com>
3192             Gary Dismukes  <dismukes@adacore.com>
3194         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
3195         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
3196         the expander will generate the corresponding run-time check to evaluate
3197         the expression.
3198         (Resolve_Call): Check for legal type of procedure name or prefix that
3199         appears as a trigger in a triggering alternative.
3200         (Valid_Conversion): If expression is ambiguous and the context involves
3201         an extension of System, remove System.Address interpretations.
3202         (Resolve_Qualified_Expression): Reject the case of a specific-type
3203         qualification applied to a class-wide argument. Enhance comment
3204         to explain checking of Original_Node.
3205         (Resolve_Type_Conversion): The location of the error message was not
3206         general enough to handle the general case and hence it has been removed.
3207         In addition, this patch improves the text of the message.
3208         (Resolve_Type_Conversion): Add missing support for access to interface
3209         types.
3210         (Resolve_Type_Conversion): If the target is a class-wide interface type,
3211         do not expand if the expression is the actual in a call, because proper
3212         expansion will take place when the call itself is expanded.
3213         (Resolve_Allocator): If the context is an unchecked conversion, the
3214         allocator inherits its storage pool, if any, from the target type of
3215         the conversion.
3217 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
3218             Javier Miranda  <miranda@adacore.com>
3220         * sem_type.adb (Add_One_Interp): If a candidate operation is an
3221         inherited interface operation that has an implementation, use the
3222         implementation to avoid spurious ambiguities.
3223         (Interface_Present_In_Ancestor): In case of concurrent types we can't
3224         use the Corresponding_Record_Typ attribute to look for the interface
3225         because it is set by the expander (and hence it is not always
3226         available). For this reason we traverse the list of interfaces
3227         (available in the parent of the concurrent type).
3228         (Interface_Present_In_Ancestor): Handle entities from the limited view
3230 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
3232         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
3233         from the list of required components.
3234         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
3235         primitive procedure of a limited interface with a controlling first
3236         parameter.
3237         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
3238         of an entry.
3239         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
3240         capture if it is generated in the second operand of a short-circuit
3241         operation.
3242         Do not capture values for variables with address clauses.
3243         (Is_Object_Reference): Treat a function call as an object reference only
3244         if its type is not Standard_Void_Type.
3246 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
3248         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
3249         to a variable that is statically known to be constant.
3251 2005-09-01  Geert Bosch  <bosch@adacore.com>
3252             Robert Dewar  <dewar@adacore.com>
3254         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
3255         (VAXGF_Safe_First): Idem.
3257 2005-09-01  Robert Dewar  <dewar@adacore.com>
3258             Arnaud Charlet  <charlet@adacore.com>
3260         * g-dirope.ads: Minor reformatting
3261         Document that bounds of result of Base_Name match the input index
3262         positions.
3263         Add documentation on environment variable syntax for Expand_Path
3265         * gnat_ugn.texi: Update documentation to include mention of -m switches
3266         Document new treatment of wide characters in max line length
3267         style check.
3268         Remove -gnatL/-gnatZ switches, no longer used.
3269         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
3270         of -gnata switch.
3272         * gnat_rm.texi: Add doc for two argument form of pragma
3273         Float_Representation.
3274         Add documentation for pragma No_Strict_Aliasing
3275         Add note that explicit component clause overrides pragma Pack.
3276         Add documentation of pragma Debug_Policy
3278 2005-09-01  Matthew Heaney  <heaney@adacore.com>
3280         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
3281         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
3282         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
3283         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
3284         draft (Draft 13, August 2005) of Ada Amendment 1.
3286 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
3288         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
3289         Note that the platform-specific version of g-soccon.ads for VMS is now
3290         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
3291         really is a package spec).
3292         Replace s-taspri-linux.ads by s-taspri-posix.ads
3293         Remove references to s-mastop-x86.adb
3295         * system-vxworks-xscale.ads: Removed, no longer used.
3296         * s-vxwork-xscale.ads: Removed, no longer used.
3298 2005-09-01  Robert Dewar  <dewar@adacore.com>
3300         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
3301         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
3302         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
3303         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
3304         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
3305         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
3306         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
3307         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
3308         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
3309         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
3310         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
3311         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
3312         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
3313         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
3314         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
3315         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
3316         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
3317         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
3318         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
3319         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
3320         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
3322 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
3324         PR ada/23187
3325         * adaint.c
3326         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
3328 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
3329             Doug Rupp  <rupp@adacore.com>
3331         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
3332         when needed.
3333         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
3334         this code in the GNAT run-time.
3336         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
3338         PR ada/21053
3339         * init.c (__gnat_error_handler [many]): Mark "msg" as const
3340         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
3342         (__gnat_inside_elab_final_code): Moved here from
3343         Standard_Library and only defined for the compiler.
3344         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
3345         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
3346         using RTPs because directly vectored Interrupt routines are not
3347         supported on this configuration.
3348         (getpid): Do not redefine this function on VxWorks when using RTPs
3349         because this primitive is well supported by the RTP libraries.
3350         (copy_msg): Correct the code that checks for buffer overflow.
3351         Discovered during code reading.
3353 2005-08-29  Olivier Hainque  <hainque@adacore.com>
3355         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
3356         a library level mutable variable with an initializer, tell
3357         build_allocator to ignore the initializer's size. It may not be large
3358         enough for all the values that might be assigned to the variable later
3359         on.
3361 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
3362             Eric Botcazou  <ebotcazou@adacore.com>
3364         * trans.c: Protect < in error msg with quote
3365         Replace GCC_ZCX by Back_End_Exceptions.
3366         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
3367         has been sufficiently aligned in the record.
3369 2005-08-15  James E. Wilson  <wilson@specifix.com>
3371         * system-linux-alpha.ads: Change ia64 to alpha.
3373 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
3375         * decl.c, utils.c: Fix comment typos.
3377 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
3379         * decl.c, init.c, initialize.c: Fix comment typos.
3381 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
3383         Make CONSTRUCTOR use VEC to store initializers.
3384         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
3385         CONSTRUCTOR_ELTS.
3386         * trans.c (extract_values): Likewise.
3387         * utils.c (convert, remove_conversions): Likewise.
3388         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
3389         gnat_build_constructor): Likewise.
3391 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
3393         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
3394         DECL_SECTION_NAME.
3395         (compare_field_bitpos): Likewise.
3397 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
3399         * utils.c (create_var_decl): Only set DECL_COMMON on
3400         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
3401         VAR_OR_FUNCTION_DECL_P.
3403 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
3405         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
3406         removed.
3408 2005-07-07  Pascal Obry  <obry@adacore.com>
3410         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
3411         returned type on Windows.
3413         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
3414         routine.
3416         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
3417         exception in this case.
3418         Simplify the code as "Image (Image'Range)" = "Image".
3420 2005-07-07  Vincent Celier  <celier@adacore.com>
3422         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
3423         the destructor/constructor attributes for <lib>final/<lib>init.
3425         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
3427 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3429         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
3430         type if the parameter is not passed by copy but reference by default.
3432 2005-07-07  Javier Miranda  <miranda@adacore.com>
3434         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
3435         Reimplementation of the support for abstract interface types in order
3436         to leave the code more clear and easy to maintain.
3438         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
3439         abstract interface types in order to leave the code clearer and easier
3440         to maintain.
3442         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
3443         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
3444         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
3445         appropriate entry of the secondary dispatch table.
3446         (Make_DT): Add code to inherit the secondary dispatch tables of
3447         the ancestors.
3449         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
3450         implementing both functionalities by means of a common routine, each
3451         routine has its own code.
3453 2005-07-07  Javier Miranda  <miranda@adacore.com>
3455         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
3457         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
3458         types:
3459         --
3460           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
3461         --
3463         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
3464         use of tag incomplete types.
3466         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
3467         give support to tagged incomplete types.
3469         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
3470         expression is a discriminant reference and its type is private, as can
3471         happen within a stream operation for a mutable record, use the full
3472         view of the type to resolve the case alternatives.
3473         (Analyze_Assignment): Check wrong dereference of incomplete types.
3475         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
3476         types.
3478         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
3479         incomplete types.
3481         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
3482         N_Incomplete_Type_Declaration nodes.
3484         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
3485         Tag_Present to give support to tagged incomplete types:
3486         --
3487           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
3488         --
3490 2005-07-07  Olivier Hainque  <hainque@adacore.com>
3492         PR ada/22301
3493         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
3494         definitions for the Unwind wrappers in the compiler case.
3496 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
3497             Javier Miranda  <miranda@adacore.com>
3499         * par-load.adb (Load): If a child unit is loaded through a limited_with
3500         clause, each parent must be loaded as a limited unit as well.
3502         * sem_ch10.adb (Previous_Withed_Unit): Better name for
3503         Check_Withed_Unit. Return true if there is a previous with_clause for
3504         this unit, whether limited or not.
3505         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
3506         the current unit.
3507         (Is_Visible_Through_Renamings): New local subprogram of install_limited
3508         _withed_unit that checks if some package installed through normal with
3509         clauses has a renaming declaration of package whose limited-view is
3510         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
3511         of the current Draft document for Ada 2005.
3512         (Analyze_Context): Complete the list of compilation units that
3513         are allowed to contain limited-with clauses. It also contains
3514         checks that were previously done by Install_Limited_Context_Clauses.
3515         This makes the code more clear and easy to maintain.
3516         (Expand_Limited_With_Clause) It is now a local subprogram of
3517         Install_Limited_Context_Clauses, and contains the code that adds
3518         the implicit limited-with clauses for parents of child units.
3519         This functionality was prevously done by Analyze_Context.
3521         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
3522         incomplete type.
3524         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
3525         been erroneously named in a limited-with clause of its own context.
3526         In this case the error has been previously notified by Analyze_Context.
3528 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
3530         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
3531         generic package that contains local declarations with the same name.
3532         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
3534 2005-07-07  Bernard Banner  <banner@adacore.com>
3536         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
3537         ia64 platform only on platforms that you the GCC unwind library
3538         rather than the system unwind library.
3540 2005-07-07  Thomas Quinot  <quinot@adacore.com>
3542         * expect.c: Minor reformatting
3544 2005-07-07  Sergey Rybin  <rybin@adacore.com>
3546         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
3547         --no-separate-is
3549         * gnat_ugn.texi: Add description for new gnatpp option
3550         (--no-separate-is)
3552 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3554         * g-expect-vms.adb, g-expect.ads, g-expect.adb
3555         (Get_Command_Output): New subprogram to launch a process and get its
3556         standard output as a string.
3558 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3559             Olivier Hainque  <hainque@adacore.com>
3561         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
3562         fetch a code-range descriptor associated with the machine state. On
3563         failure set the machine state's PC to 0; on success, pass the
3564         descriptor to exc_virtual_unwind.
3566         * init.c (Tru64 section): New function __gnat_set_code_loc.
3568 2005-07-04  Vincent Celier  <celier@adacore.com>
3570         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
3571         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
3572         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
3573         Remove all auto-initialization code, as this is now done through the
3574         constructor mechanism.
3576         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
3577         __gnat_sals_init_using_constructors): New functions.
3579         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
3580         Linker_Constructor and Linker_Destructor when switch -a is used.
3582         * bindusg.adb: Add line for new switch -a
3584         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
3585         (Gnatbind): When switch -a is used, check if it is allowed
3587         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
3589 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
3591         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
3592         This prevents us from hitting a limitation during the debug info
3593         generation when using stabs.
3594         (Prims_Ptr): Likewise.
3596 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
3597             Ed Schonberg  <schonberg@adacore.com>
3598             Javier Miranda  <miranda@adacore.com>
3600         * checks.adb (Null_Exclusion_Static_Checks): In the case of
3601         N_Object_Declaration, only perform the checks if the Object_Definition
3602         is not an Access_Definition.
3604         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
3605         where the parent of an the access definition is an N_Object_Declaration
3606         when determining the Associated_Node_For_Itype and scope of an
3607         anonymous access-to-subprogram type.
3609         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
3610         Corresponding_Spec on the body created for a null procedure. Add ???
3611         comment. Remove New_Copy_Tree call on body argument to
3612         Set_Body_To_Inline.
3614         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
3615         discriminants, use the type of the actual as well, because the
3616         discriminants may be read by the called subprogram.
3618         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
3619         access type we do not need to handle non-limited views.
3620         (Build_Derived_Record_Type): Additional check to check that in case of
3621         private types, interfaces are only allowed in private extensions.
3623 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3625         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
3626         <Pragma_Linker_Destructor>: Likewise.
3628         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
3629         Pragma_Linker_Destructor.
3631         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
3632         ATTR_LINK_DESTRUCTOR.
3633         (static_ctors, static_dtors): New variables.
3635         * misc.c (gnat_expand_body): Output current function as constructor
3636         and destructor if requested.
3638         * par-prag.adb: Add processing for pragma Linker_Constructor and
3639         Linker_Destructor.
3641         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
3642         extracted from Check_Interrupt_Or_Attach_Handler.
3643         (Check_Interrupt_Or_Attach_Handler): Invoke it.
3644         Implement pragma Linker_Constructor and Linker_Destructor with the
3645         help of Find_Unique_Parameterless_Procedure.
3646         Replace Name_Alias with Name_Target for pragma Linker_Alias.
3648         * snames.h, snames.ads, snames.adb:
3649         Add Name_Linker_Constructor and Name_Linker_Destructor.
3650         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
3651         * snames.adb: Remove Name_Alias.
3653         * trans.c: Include cgraph.h.
3654         (build_global_cdtor): New function.
3655         (Compilation_Unit_to_gnu): Build global constructor and destructor if
3656         needed.
3657         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
3658         of objects too.
3659         (addressable_p) <COMPONENT_REF>: Unconditionally test
3660         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
3662         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
3663         variable if it is external.
3665         (static_ctors, static_dtors): New global variables.
3666         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
3667         <ATTR_LINK_DESTRUCTOR>: Likewise.
3668         (end_subprog_body): Chain function as constructor and destructor
3669         if requested.
3671         * exp_util.adb (Force_Evaluation): Unconditionally invoke
3672         Remove_Side_Effects with Variable_Ref set to true.
3673         (Remove_Side_Effects): Handle scalar types first. Use a renaming
3674         for non-scalar types even if Variable_Ref is true and for class-wide
3675         expressions.
3677 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3679         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
3680         to prevent spurious warnings.
3682 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3684         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
3685         Itypes. Itypes are really unexpected there.
3686         (Build_TypeCode_Function): Generalise special processing for Itypes to
3687         handle the case of numeric implicit base types as well as enumerated
3688         ones.
3690 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3692         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
3693         controlled, indicate the expected type of the dereference that is
3694         created for the call to Deep_Finalize, to prevent spurious errors when
3695         the designated type is private and completed with a derivation from
3696         another private type.
3698 2005-07-04  Vincent Celier  <celier@adacore.com>
3700         * make.adb (Change_To_Object_Directory): When unable to change the
3701         current dir to the object directory, output the full path of the
3702         directory.
3704 2005-07-04  Matthew Gingell  <gingell@adacore.com>
3706         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
3708         * indepsw-linux.adb: Replace by...
3710         * indepsw-gnu.adb: ...this new file
3712 2005-07-04  Vincent Celier  <celier@adacore.com>
3714         * mlib-prj.adb (Auto_Initialize): New constant String
3715         (SALs_Use_Constructors): New Boolean function
3716         (Build_Library): Call gnatbind with Auto_Initialize switch when
3717         SALs_Use_Constructors returns True.
3719         * mlib-tgt.ads: Minor reformatting
3721         * mlib-utl.ads: Minor reformatting
3723         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
3725 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3727         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
3728         single protected declarations can have an interface list.
3729         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
3730         with seriously malformed entry declarations, and lead to compilation
3731         abandoned messages.
3733 2005-07-04  Javier Miranda  <miranda@adacore.com>
3735         * par-load.adb: Load the context items in two rounds.
3737 2005-07-04  Robert Dewar  <dewar@adacore.com>
3739         * scng.adb: Do not consider Mod used as an attribute to be a keyword
3741 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3742             Javier Miranda  <miranda@adacore.com>
3744         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
3745         type extension needs a limited view.
3746         Remove previous restriction on private types available through the
3747         limited-view (only tagged private types were previously allowed).
3748         (Install_Withed_Unit): In the code that implements the
3749         legality rule given in AI-377, exclude a child unit with the name
3750         Standard, because it is a homonym of the Standard environment package.
3752 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3754         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
3755         overloaded function call, carry interpretations from the original tree
3756         to the copy.
3758 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3760         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
3761         types check whether some designated type is a limited view, and use
3762         the non-limited view if available.
3764 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
3766         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
3767         constraint of full view of a private view T1 if present, when T2 is a
3768         discriminated full view.
3770 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3772         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
3773         actual that is a view conversion of a bit packed array reference.
3775 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3777         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
3778         present before checking whether an interface type covers a synchronized
3779         type.
3781 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
3783         * sem_util.adb (Is_Object_Reference): An indexed or selected component
3784         whose prefix is an implicit dereference is an object reference. Removes
3785         spurious errors when compiling with -gnatc.
3787 2005-07-04  Robert Dewar  <dewar@adacore.com>
3789         PR ada/22039
3790         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
3792 2005-07-04  Matthew Gingell  <gingell@adacore.com>
3794         * tracebak.c: Enable tracebacks on ia64 platforms
3796 2005-07-04  Vincent Celier  <celier@adacore.com>
3798         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
3799         the GNAT BIND command, as gnatbind accepts multiples ALI files with
3800         the -L or -n switches.
3802 2005-07-04  Vincent Celier  <celier@adacore.com>
3804         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
3805         correctly computed and the main project data is not modified while
3806         doing so.
3807         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
3808         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
3809         c++linker as this does not work on some platforms.
3811 2005-07-04  Matthew Heaney  <heaney@adacore.com>
3813         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
3814         was changed.
3815         * a-coinve.adb: Perform constraint checks explicitly.
3817 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3818             Thomas Quinot  <quinot@adacore.com>
3820         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
3821         new target gen-soccon.
3823 2005-07-04  Robert Dewar  <dewar@adacore.com>
3825         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
3827 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3829         * g-socket.ads (Check_Selector): Minor rewording of comment.
3831 2005-07-04  Vincent Celier  <celier@adacore.com>
3833         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
3835 2005-07-04  Thomas Quinot  <quinot@adacore.com>
3837         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
3839 2005-07-04  Sergey Rybin  <rybin@adacore.com>
3841         * gnat_ugn.texi: Add description of --eol gnatpp option
3843 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3844             Thomas Quinot  <quinot@adacore.com>
3846         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
3847         if the user wants all calls of a subprogram to be flagged,
3848         independently of whether they are made from within the same unit or
3849         another unit.
3850         Mention restriction for pragma Linker_Alias on some platforms.
3851         Document pragma Linker_Constructor and Linker_Destructor.
3852         Rewrite documentation of Weak_External, Linker_Section and
3853         Linker_Alias pragmas.
3855 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
3857         * s-stausa.ads, s-stausa.adb: New files.
3859 2005-06-30  Kelley Cook
3861         * all files:  Update FSF address in copyright headers.
3862         * gen-soccon.co (main): Output new FSF address in generated files.
3864 2005-06-28  Paul Brook  <paul@codesourcery.com>
3866         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
3868 2005-06-14  Olivier Hainque  <hainque@adacore.com>
3869             Eric Botcazou  <ebotcazou@adacore.com>
3871         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
3872         exc_unwind, now that we are generating proper .debug_frame output for
3873         that target.
3875         * tracebak.c: Remove the mips-irix section, as we are now using the
3876         s-mastop based unwinder again.
3877         Under SPARC/Solaris, take into account the stack bias to compute the
3878         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
3879         ABI.
3881 2005-06-14  Doug Rupp  <rupp@adacore.com>
3883         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
3885         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
3887 2005-06-14  Pascal Obry  <obry@adacore.com>
3889         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
3890         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
3891         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
3892         package name).
3894         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
3895         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
3896         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
3897         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
3898         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
3899         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
3900         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
3901         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
3902         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
3903         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
3904         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
3905         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
3906         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
3907         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
3908         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
3909         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
3910         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
3911         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
3912         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
3913         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
3914         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
3915         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
3916         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
3917         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
3918         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
3919         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
3920         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
3921         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
3922         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
3923         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
3924         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
3925         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
3926         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
3927         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
3928         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
3929         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
3930         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
3931         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
3932         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
3933         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
3934         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
3935         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
3936         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
3937         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
3938         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
3939         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
3940         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
3941         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
3942         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
3943         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
3944         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
3945         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
3946         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
3947         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
3948         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
3949         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
3950         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
3951         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
3952         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
3953         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
3954         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
3955         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
3956         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
3957         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
3958         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
3959         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
3960         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
3961         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
3962         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
3963         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
3964         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
3965         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
3966         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
3967         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
3968         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
3969         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
3970         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
3971         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
3972         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
3973         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
3974         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
3975         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
3976         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
3977         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
3978         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
3979         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
3980         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
3981         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
3982         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
3983         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
3984         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
3985         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
3986         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
3987         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
3988         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
3989         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
3990         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
3991         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
3992         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
3993         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
3994         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
3995         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
3996         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
3997         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
3998         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
3999         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
4000         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
4001         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
4002         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
4003         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
4004         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
4005         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
4006         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
4007         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
4008         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
4009         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
4010         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
4011         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
4012         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
4013         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
4014         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
4015         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
4016         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
4017         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
4018         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
4019         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
4020         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
4021         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
4022         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
4023         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
4024         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
4025         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
4026         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
4028 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
4029             Arnaud Charlet  <charlet@adacore.com>
4031         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
4032         longer protected objects. They have been replaced by lower-level
4033         suspension objects made up by a mutex and a condition variable (or
4034         their equivalent given a particular OS) plus some internal data to
4035         reflect the state of the suspension object.
4036         (Initialize, Finalize): Add this initialization procedure for
4037         Suspension_Object, which is a controlled type.
4038         (Finalize): Add the finalization procedure for Suspension_Object,
4039         which is a controlled type.
4041         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
4042         Ada.Synchronous_Task_Control because there is no longer a need for a
4043         VxWorks specific version of this package. Target dependencies
4044         has been moved to System.Task_Primitives.Operations.
4046         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
4047         longer needed.
4048         (InitializeCriticalSection, EnterCriticalSection,
4049         LeaveCriticalSection, DeleteCriticalSection): Replace the type
4050         pCriticalSection by an anonymous access type so that we avoid problems
4051         of accessibility to local objects.
4053         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
4054         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
4055         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
4056         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
4057         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
4058         set the environment task mask here.
4059         (Current_State): Add this function that returns the state of the
4060         suspension object.
4061         (Set_False): Add this procedure that sets the state of the suspension
4062         object to False.
4063         (Set_True): Add this procedure that sets the state of the suspension
4064         object to True, releasing the task that was suspended, if any.
4065         (Suspend_Until_True): Add this procedure that blocks the calling task
4066         until the state of the object is True. Program_Error is raised if
4067         another task is already waiting on that suspension object.
4068         (Initialize): Add this procedure for initializing the suspension
4069         object. It initializes the mutex and the condition variable which are
4070         used for synchronization and queuing, and it sets the internal state
4071         to False.
4072         (Finalize): Add this procedure for finalizing the suspension object,
4073         destroying the mutex and the condition variable.
4075         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
4076         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
4077         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
4078         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
4079         which provides a low-level abstraction (using operating system
4080         primitives) for Ada.Synchronous_Task_Control.
4081         This object is made up by a mutex (for ensuring mutual exclusion), a
4082         condition variable (for queuing threads until the condition is
4083         signaled), a Boolean (State) indicating whether the object is open,
4084         and a Boolean (Waiting) reflecting whether there is a task already
4085         suspended on this object.
4087         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
4088         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
4089         s-intman-vms.ads, s-intman-mingw.adb,
4090         (Initialize_Interrupts): Removed, no longer used.
4092         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
4093         (Setup_Interrupt_Mask): New procedure.
4095         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
4097         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
4099         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
4100         this is no longer done in the body of s-taprop
4101         (Server_Task): Explicitely test for Pending_Action in case
4102         System.Parameters.No_Abort is True.
4104         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
4105         is no longer done in the body of s-taprop
4107 2005-06-14  Robert Dewar  <dewar@adacore.com>
4109         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
4110         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
4111         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
4112         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
4113         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
4114         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
4115         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
4116         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
4117         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
4118         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
4119         system-linux-hppa.ads, system-vms_64.ads,
4120         system-vxworks-alpha.ads: Minor comment update for
4121         AI-362 (unit is Pure).
4123         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
4124         Add pragma Pure_05 for AI-362
4125         Make remaining conversion functions obsolescent in Ada 95
4127         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
4128         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
4129         Add entries for a-wichun and a-zchuni
4130         Add a-widcha a-zchara for AI-395
4131         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
4133         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
4134         Add entries for a-wichun.o and a-zchuni.o
4135         Entries for a-widcha.o and a-zchara.o
4136         Add entry for a-chacon.o
4138         * a-ztenau.adb: Add with of Ada.Characters.Conversions
4140         * a-chacon.ads, a-chacon.adb: New files.
4142         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
4143         categorization violations.
4145         * a-strmap.ads: Add pragma Pure_05 for AI-362
4146         * a-strmap.ads: Add note on implicit categorization for AI-362
4148         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
4150         * par-prag.adb: Dummy entry for pragma Persistent_BSS
4151         Set Ada_Version_Explicit, for implementation of AI-362
4152         Add processing for pragma Pure_05 and Preelaborate_05
4153         Add entry for Assertion_Policy pragma
4155         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
4156         when needed for proper processing of categorization stuff
4158         * sem_cat.adb:
4159         For several cases, make errors in preealborate units warnings,
4160         instead of errors, if GNAT_Mode is set. For AI-362.
4162         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
4163         preelaborate unit is now warning if in GNAT mode
4165         * s-stoele.ads: Document AI-362 for pragma preelaborate
4167 2005-06-14  Doug Rupp  <rupp@adacore.com>
4169         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
4170         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
4171         Default_Exception_Msg_Max_Length: new parameter.
4173         * a-except.ads: (Exception_Msg_Max_Length): Set to
4174         System.Parameters.Default_Exception_Msg_Max_Length
4175         Add pragma Preelaborate_05 for AI-362
4176         Add warnings off to allow categorization violations for AI-362
4178 2005-06-14  Vincent Celier  <celier@adacore.com>
4180         * gnatsym.adb: Adapt to modification of package Symbols: procedure
4181         Process is now in package Processing.
4183         * symbols.ads, symbols.adb:
4184         (Processing): New package, containing procedure Process
4186         * symbols-vms-alpha.adb:
4187         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
4189         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
4190         symbols-processing-vms-ia64.adb: New files.
4192 2005-06-14  Pascal Obry  <obry@adacore.com>
4194         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
4195         implementation. This new version generates the proper DllMain routine
4196         to initialize the SAL. The DllMain is generated in Ada and compiled
4197         before being added as option to the library build command.
4199 2005-06-14  Doug Rupp  <rupp@adacore.com>
4200             Pascal Obry  <obry@adacore.com>
4202         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
4203         call to decc$translate_vms.
4204         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
4205         need to remove those quotes before catenating the filename.
4206         (__gnat_locate_exec_on_path): improvements to the Win32 section:
4207         * avoid allocating the memory twice for better efficiency;
4208         * allocate 32K buffer for environment expansion as suggested by MSDN;
4209         * prepend ".;" to the path so that current directory is searched too.
4211 2005-06-14  Robert Dewar  <dewar@adacore.com>
4213         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
4214         instead of raising CE (AI-241)
4215         Add warnings off to allow categorization violations for AI-362
4217 2005-06-14  Robert Dewar  <dewar@adacore.com>
4219         * ali-util.adb, gnatbind.adb: Remove references to
4220         Force_RM_Elaboration_Order.
4222         * switch-b.adb: Remove recognition of -f switch
4224 2005-06-14  Pascal Obry  <obry@adacore.com>
4226         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
4227         implementation which is slightly more efficient.
4229 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
4230             Javier Miranda  <miranda@adacore.com>
4231             Ed Schonberg  <schonberg@adacore.com>
4232             Hristian Kirtchev  <kirtchev@adacore.com>
4234         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
4235         allocator's designated type is a class-wide type, and compiling for
4236         Ada 2005, emit a run-time check that the accessibility level of the
4237         type given in the allocator's expression is not deeper than the level
4238         of the allocator's access type.
4240         (Tagged_Membership): Modified to gives support to abstract interface
4241         types.
4243         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
4244         Access_Level.
4245         (Descendant_Tag): New predefined function
4246         (Is_Descendant_At_Same_Level): New predefined function
4247         (Get_Access_Level): New private function
4248         (Set_Access_Level): New private procedure
4249         (IW_Membership): New function. Given the tag of an object and the tag
4250         associated with an interface, evaluate if the object implements the
4251         interface.
4252         (Register_Interface_Tag): New procedure used to initialize the table of
4253         interfaces used by the IW_Membership function.
4254         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
4255         of the dispatch table.
4256         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
4257         table of interfaces of the parent.
4258         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
4259         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
4260         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
4261         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
4262         Ada 2005 semantics for the new predefined function.
4264         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
4265         call to Descendant_Tag rather than Internal_Tag.
4266         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
4267         the accessibility level of the attribute's Item parameter is not deeper
4268         than the level of the attribute's prefix type. Tag_Error is raised if
4269         the check fails. The check is only emitted for Ada_05.
4270         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
4271         requested stream attribute, use it.
4272         (Expand_N_Attribute_Reference): If the designated type is an interface
4273         then rewrite the referenced object as a conversion to force the
4274         displacement of the pointer to the secondary dispatch table.
4275         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
4276         is a dereference of an object with a constrained partial view.
4278         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
4279         type is a class-wide type, emit a run-time check that the accessibility
4280         level of the returned object is not deeper than the level of the
4281         function's master (only when compiling for Ada 2005).
4283         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
4284         Action_Nb_Arg): Add entries for new Get_Access_Level and
4285         Set_Access_Level routines in these tables.
4286         (Make_DT): Generate a call to set the accessibility level of the
4287         tagged type in its TSD.
4288         (Make_DT): Code cleanup. The functionality of generating all the
4289         secondary dispatch tables has been moved to freeze_record_type.
4290         (Make_Abstract_Interface_DT): Minor code cleanup.
4291         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
4292         this subprogram implements a new algorithm that provides the
4293         same functionality and it is more clear in case of primitives
4294         associated with abstract interfaces.
4295         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
4296         clean up, the functionality of this subprogram is now provided
4297         by Set_All_DT_Position.
4298         (Write_DT): New subprogram: a debugging procedure designed to be called
4299         within gdb to display the dispatch tables associated with a tagged
4300         type.
4301         (Collect_All_Interfaces): New subprogram that collects the whole list
4302         of interfaces that are directly or indirectly implemented by a tagged
4303         type.
4304         (Default_Prim_Op_Position): New subprogram that returns the fixed
4305         position in the dispatch table of the default primitive operations.
4306         (Expand_Interface_Actuals): New subprogram to generate code that
4307         displaces all the actuals corresponding to class-wide interfaces to
4308         reference the interface tag of the actual object.
4309         (Expand_Interface_Conversion): New subprogram. Reference the base of
4310         the object to give access to the interface tag associated with the
4311         secondary dispatch table.
4312         (Expand_Interface_Thunk): New subprogram that generates the code of the
4313         thunk. This is required for compatibility with the C+ ABI.
4314         (Make_Abstract_Interface_DT): New subprogram that generate the
4315         declarations for the secondary dispatch tables associated with an
4316         abstract interface.
4317         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
4318         attribute for each primitive operation covering interface subprograms
4319         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
4320         These subprograms were upgraded to give support to abstract interfaces
4322         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
4323         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
4324         RE_Set_Access_Level.
4325         (RE_Unit_Table): Add entries for new Ada.Tags operations.
4326         Add support to call the followig new run-time subprograms:
4327         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
4329         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
4330         match its full declaration when both have an access definition with
4331         statically matching designated subtypes.
4332         (Analyze_Component_Declaration): Delete commented out code that was
4333         incorrectly setting the scope of an anonymous access component's type.
4334         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
4335         an access discriminant when the containing type is nonlimited.
4336         (Make_Incomplete_Type_Declaration): Create an incomplete type
4337         declaration for a record type that includes self-referential access
4338         components.
4339         (Check_Anonymous_Access_Types): Before full analysis of a record type
4340         declaration, create anonymous access types for each self-referential
4341         access component.
4342         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
4343         an access component in this context is a Local_Anonymous_Access, for
4344         proper accessibility checks.
4345         (Access_Definition): Set properly the scope of the anonymous access type
4346         created for a stand-alone access object.
4347         (Find_Type_Of_Object): An object declaration may be given with an access
4348         definition.
4349         (Complete_Subprograms_Derivation): New subprogram used to complete
4350         type derivation of private tagged types implementing interfaces.
4351         In this case some interface primitives may have been overriden
4352         with the partial-view and, instead of re-calculating them, they
4353         are included in the list of primitive operations of the full-view.
4354         (Build_Derived_Record_Type): Modified to give support to private
4355         types implemening interfaces.
4356         (Access_Definition): Reject ALL on anonymous access types.
4357         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
4358         type derivation to occur at a deeper accessibility level than the
4359         parent type.
4360         For the case of derivation within a generic body however, disallow the
4361         derivation if the derived type has an ancestor that is a formal type
4362         declared in the formal part of an enclosing generic.
4363         (Analyze_Object_Declaration): For protected objects, remove the check
4364         that they cannot contain interrupt handlers if not declared at library
4365         level.
4366         (Add_Interface_Tag_Components): New subprogram to add the tag components
4367         corresponding to all the abstract interface types implemented by a
4368         record type or a derived record type.
4369         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
4370         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
4371         Process_Full_View, Record_Type_Declaration): Modified to give
4372         support to abstract interface types
4373         (Collect_Interfaces): New subprogram that collects the list of
4374         interfaces that are not already implemented by the ancestors
4375         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
4376         when partial view has no discriminants and full view has defaults.
4377         (Constrain_Access): Reject a constraint on a general access type
4378         if the discriminants of the designated type have defaults.
4379         (Access_Subprogram_Declaration): Associate the Itype node with the inner
4380         full-type declaration or subprogram spec. This is required to handle
4381         nested anonymous declarations.
4382         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
4383         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
4384         Process_Full_View, Record_Type_Declaration): Modified to give
4385         support to abstract interface types
4386         (Derive_Subprograms): Addition of a new formal to indicate if
4387         we are in the case of an abstact-interface derivation
4388         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
4389         to the specification because it is requied to analyze all the
4390         identifiers found in a list of interfaces
4392         * debug.adb: Complete documentation of flag "-gnatdZ"
4394         * exp_ch3.adb: Implement config version of persistent_bss pragma
4395         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
4396         testing for TSS presence to properly enforce visibility rules.
4397         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
4398         Make_Abstract_Interfaces_DT to generate the secondary tables
4399         associated with abstract interfaces.
4400         (Build_Init_Procedure): Modified to initialize all the tags
4401         corresponding.
4402         (Component_Needs_Simple_Initialization): Similar to other tags,
4403         interface tags do not need initialization.
4404         (Freeze_Record_Type): Modified to give support to abstract interface
4405         types.
4406         (Expand_N_Object_Declaration): Do not generate an initialization for
4407         a scalar temporary marked as internal.
4409         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
4410         in-out parameter that is a component in an initialization procedure,
4411         whose constraint might depend on discriminants, and that may be
4412         misaligned because of packing or representation clauses.
4413         (Is_Legal_Copy): New predicate to determine whether a possibly
4414         misaligned in-out actual can actually be passed by copy/return. This
4415         is an error in case the type is by_reference, and a warning if this is
4416         the consequence of a DEC import pragma on the subprogram.
4417         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
4418         interface types
4419         (Expand_Inlined_Call): Mark temporary generated for the return value as
4420         internal, so that no useless scalar normalization is generated for it.
4421         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
4422         null procedure can always be inlined.
4423         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
4424         procedure, generate an explicit empty body for it.
4426         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
4427         Given a type implementing an interface, returns the corresponding
4428         access_disp_table value.
4429         (Find_Interface_Tag): New subprogram. Given a type implementing an
4430         interface, returns the record component containing the tag of the
4431         interface.
4432         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
4433         previous ones that return the corresponding tag and access_disp_table
4434         entities.
4435         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
4436         is a predefined primitive operation.
4437         (Expand_Subtype_From_Expr): If the expression is a selected component
4438         within an initialization procedure, compute its actual subtype, because
4439         the component may depend on the discriminants of the enclosing record.
4441         * i-cpp.ads, i-cpp.adb:
4442         This package has been left available for compatibility with previous
4443         versions of the frontend. As part of the new layout this is now a
4444         dummy package that uses declarations available at a-tags.ads
4446         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
4447         "constant access" and "aliased [constant] access" when not compiling
4448         with -gnat05.
4449         Suppress Ada 2005 keyword warning if -gnatwY used
4450         (P_Identifier_Declarations): Add support for object declarations with
4451         access definitions.
4452         (Private_Extension_Declaration): Complete the documentation
4453         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
4454         attribute in case of private extension declaration
4455         (P_Type_Declaration): Mark as "abstract" the type declarations
4456         corresponding with protected, synchronized and task interfaces
4457         (P_Declarative_Items): "not" and "overriding" are overriding indicators
4458         for a subprogram or instance declaration.
4460         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
4461         instantiation that is a dispatching operation has controlling access
4462         parameters that are null excluding.
4463         Save and restore Ada_Version_Explicit, for implementation of AI-362
4464         (Validate_Derived_Type_Instance): Add check for abstract interface
4465         types.
4466         (Analyze_Formal_Package): Establish Instantiation source for the copy of
4467         the generic that is created to represent the formal package.
4468         (Analyze_Package_Instantiation): Instantiate body immediately if the
4469         package is a predefined unit that contains inlined subprograms, and
4470         we are compiling for a Configurable_Run_Time.
4471         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
4472         If the program has a null default, generate an empty body for it.
4474         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
4475         error message condition, null procedures are correctly detected now.
4476         (New_Overloaded_Entity): Bypass trivial overriding indicator check
4477         for subprograms in the context of protected types. Instead, the
4478         indicator is examined in Sem_Ch9 while analysing the subprogram
4479         declaration.
4480         (Check_Overriding_Indicator): Check consistency of overriding indicator
4481         on subprogram stubs as well.
4482         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
4483         the library level.
4484         (Analize_Subprogram_Specification): When analyzing a subprogram in which
4485         the type of the first formal is a concurrent type, replace this type
4486         by the corresponding record type.
4487         (Analyze_Subprogram_Body): Undo the previous work.
4488         (Analyze_Procedure_Call): If the call has the form Object.Op, the
4489         analysis of the prefix ends up analyzing the call itself, after which
4490         we are done.
4491         (Has_Interface_Formals): New subprogram subsidiary to analyze
4492         subprogram_specification that returns true if some non
4493         class-wide interface subprogram is found
4494         (New_Overloaded_Entity): Modified to give support to abstract
4495         interface types
4496         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
4497         access to subprograms must be recursive.
4498         (Is_Unchecked_Conversion): Improve the test that recognizes
4499         instantiations of Unchecked_Conversion, and allows them in bodies that
4500         are to be inlined by the front-end. When the body comes from an
4501         instantiation, a reference to Unchecked_Conversion will be an
4502         Expanded_Name, even though the body has not been analyzed yet.
4503         Replace Is_Overriding and Not_Overriding in subprogram_indication with
4504         Must_Override and Must_Not_Override, to better express intent of AI.
4505         (Analyze_Subprogram_Body): If an overriding indicator is given, check
4506         that it is consistent with the overrinding status of the subprogram
4507         at this point.
4508         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
4509         always inlined.
4510         If the subprogram is a null procedure, indicate that it does not need
4511         a completion.
4513         * sem_disp.adb (Check_Controlling_Type): Give support to entities
4514         available through limited-with clauses.
4515         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
4516         allowed as the last primitive of a tagged type if it has no previous
4517         spec.
4518         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
4519         to give support to abstract interface types
4521         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
4522         in the case where the target type is an anonymous access type of an
4523         object or component (that is, when Is_Local_Anonymous_Access is true).
4524         Prevent the special checks for conversions of access discriminants in
4525         the case where the discriminant belongs to a nonlimited type, since
4526         such discriminants have their accessibility level defined in the same
4527         way as a normal component of an anonymous access type.
4528         (Resolve_Allocator): When an allocator's designated type is a class-wide
4529         type, check that the accessibility level of type given in the
4530         allocator's expression or subtype indication is not statically deeper
4531         than the level of the allocator's access type.
4532         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
4533         name in a discriminant constraint of a record component.
4534         (Resolve_Explicit_Dereference): Do not check whether the type is
4535         incomplete when the dereference is a use of an access discriminant in
4536         an initialization procedure.
4537         (Resolve_Type_Conversion): Handle conversions to abstract interface
4538         types.
4539         (Valid_Tagged_Conversion): The conversion of a tagged type to an
4540         abstract interface type is always valid.
4541         (Valid_Conversion): Modified to give support to abstract interface types
4542         (Resolve_Actuals): Enable full error reporting on view conversions
4543         between unrelated by_reference array types.
4544         The rule for view conversions of arrays with aliased components is
4545         weakened in Ada 2005.
4546         Call to obsolescent subprogram is now considered to be a violation of
4547         pragma Restrictions (No_Obsolescent_Features).
4548         (Check_Direct_Boolean_Operator): If the boolean operation has been
4549         constant-folded, there is nothing to check.
4550         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
4551         check on possible violation of restriction No_Direct_Boolean_Operators
4552         until after expansion of operands, to prevent spurious errors when
4553         operation is constant-folded.
4555         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
4556         Has_Compatible_Type): Modified to give support to abstract interface
4557         types.
4558         (Interface_Present_In_Ancestor): New function to theck if some ancestor
4559         of a given type implements a given interface
4561         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
4562         prefix is a parameterless function that returns an access_to_procedure.
4563         (Transform_Object_Operation): Handle properly function calls of the
4564         form Obj.Op (X), which prior to analysis appear as indexed components.
4565         (Analyze_One_Call): Complete the error notification to help new Ada
4566         2005 users.
4567         (Analyze_Allocator): For an allocator without an initial value, where
4568         the designated type has a constrained partial view, a discriminant
4569         constraint is illegal.
4571 2005-06-14  Robert Dewar  <dewar@adacore.com>
4573         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
4574         do with treatment of Set_Col when positioned at end of line character.
4576 2005-06-14  Robert Dewar  <dewar@adacore.com>
4578         * atree.adb: (Elist*): Protect against uninitialized field
4580 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
4582         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
4583         for an attribute reference that returns an access type.
4584         (Apply_Discriminant_Check): No need for check if (designated) type has
4585         constrained partial view.
4587         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
4588         both bound checks, rather than a conjunction.
4589         (Insert_Valid_Check): If the expression is an actual that is an indexed
4590         component of a bit-packed array, force expansion of the packed element
4591         reference, because it is specifically inhibited elsewhere.
4593 2005-06-14  Vincent Celier  <celier@adacore.com>
4595         * clean.adb (Clean_Project): Correctly delete executable specified as
4596         absolute path names.
4598         * make.adb (Gnatmake): Allow relative executable path names with
4599         directory information even when project files are used.
4600         (Change_To_Object_Directory): Fail gracefully when unable to change
4601         current working directory to object directory of a project.
4602         (Gnatmake): Remove exception handler that could no longer be exercized
4603         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
4604         may be deallocated by Normalize_Arguments.
4605         (Collect_Arguments): Eliminate empty arguments
4607         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
4608         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
4609         (Check_Project): Return False when Project is No_Project. Return True
4610         when All_Projects is True.
4611         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
4612         All_Projects to True.
4613         Minor reformatting
4615 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
4616             Javier Miranda  <miranda@adacore.com>
4617             Thomas Quinot  <quinot@adacore.com>
4618             Robert Dewar  <dewar@adacore.com>
4619             Hristian Kirtchev  <kirtchev@adacore.com>
4620             Gary Dismukes  <dismukes@adacore.com>
4622         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
4623         anonymous access types, to indicate that the accessibility level of
4624         the type is determined by that of the enclosing declaration.
4625         (Has_Persistent_BSS): New flag
4626         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
4627         of this attribute with functions.
4628         (Is_Primitive_Wrapper): Remove the barrier.
4629         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
4630         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
4631         New subprograms.
4632         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
4633         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
4634         New subprograms.
4635         (Is_Pure_Unit_Access_Type): New flag
4636         (Abstract_Interfaces): Complete the assertion to cover all usages.
4637         (Set_Is_Interface): Complete the assertion to cover all usages.
4638         (Is_Primitive_Wrapper): New attribute.
4639         (Is_Obsolescent): Now applies to all entities (though it is only set
4640         for subprograms currently)
4641         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
4642         which solves various problems concerning access subtypes.
4643         (Has_Persistent_BSS): New flag
4644         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
4645         Remove these subprograms because this attribute is currently
4646         not used.
4647         New entity flags:
4648         Has_Specified_Stream_Input (Flag190)
4649         Has_Specified_Stream_Output (Flag191)
4650         Has_Specified_Stream_Read (Flag192)
4651         Has_Specified_Stream_Write (Flag193)
4652         Present in all type and subtype entities. Set for a given view if the
4653         corresponding stream-oriented attribute has been defined by an
4654         attribute definition clause. When such a clause occurs, a TSS is set
4655         on the underlying full view; the flags are used to track visibility of
4656         the attribute definition clause for partial or incomplete views.
4657         (Is_Pure_Unit_Access_Type): New flag
4658         Clarify use of Is_Internal.
4659         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
4660         internally generated to wrap the invocation of tasks and protected
4661         types that implement interfaces.
4662         (Implementation_Base_Type): Documentation correction
4663         (Is_Obsolescent): Now applies to all entities (though it is only set
4664         for subprograms currently)
4665         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
4666         which solves various problems concerning access subtypes.
4668         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
4669         for examined parameters. Identify unequal parameter list lengths as
4670         non-conformant parameters.
4671         (Overriding_Possible): Do not check for "All" qualifier in declaration
4672         of controlling access parameter, following prescription of AI-404.
4673         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
4674         that build the procedure body that wraps an entry invocation
4675         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
4676         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
4677         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
4678         give support to abstract interface types
4680         * freeze.adb (Freeze_Entity): Issue error message if
4681         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
4682         type has no storage pool (Ada 2005) AI-366.
4683         Also modified to give support to abstract interface types
4684         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
4685         Inline_Always pragma.
4687         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
4688         now begin an entry declaration.
4689         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
4690         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
4691         a subprogram declaration preceded by an overriding indicator.
4692         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
4693         declarations or subprogram declarations preceded by reserved words
4694         "not" or "overriding".
4695         (P_Entry_Declaration): Update comment. Parse and check overriding
4696         indicator, set semantic flags of entry declarations.
4697         (P_Task): New error message in case of private applied
4698         to a task type declaration.
4699         (P_Protected): New error message in case of private applied
4700         to a task type declaration.
4702         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
4703         in which the full view of a type implementing an interface is a
4704         concurrent type.
4705         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
4706         Declare_Inherited_Private_Subprograms): If an explicit operation
4707         overrides an operation that is inherited in the private part, mark the
4708         explicit one as overriding, to enable overriding indicator checks.
4709         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
4710         full view to partial view, to simplify handling in back-end.
4712         * sprint.adb: Print interface lists where needed: derived types,
4713         protected types, task types.
4714         output "is null" for null procedures. Part of implementation of
4716         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
4717         relaxation of rules for access types in pure, shared passive partitions.
4719         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
4720         first read discriminants into temporary objects, performing checks on
4721         the read values, then possibly performing discriminant checks on the
4722         actual (if it is constrained), and only finally reading the components
4723         into a constrained temporary object.
4724         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
4725         case of reading discriminants of a mutable record type to recognize
4726         the new form of the code generated by
4727         Build_Mutable_Record_Read_Procedure.
4729         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
4730         of a simple call to Make_TSS_Name.
4731         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
4732         buffer, in order for Is_TSS to work correctly on local TSS names.
4734         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
4735         Is_Local_Anonymous_Access to check legaliy of attributes in the
4736         context of  access components and stand-alone access objects.
4737         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
4738         treated as available for a limited private type if there is an
4739         attribute_definition_clause that applies to its full view, but not in
4740         other cases where the attribute is available for the full view
4741         (specifically, the sole fact that the full view is non-limited does not
4742         make the attribute available for the partial view).
4743         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
4744         non-overloaded intrinsic subprogram.
4745         (Check_Stream_Attribute): Reject an attribute reference for an
4746         unavailable stream attribute even if the prefix is not a limited type
4747         (case of a 'Input attribute reference for an abstract, non-classwide
4748         type)
4749         (Stream_Attribute_Available): New function to determine whether a stream
4750         attribute is available at a place.
4751         (Check_Attribute): Use Stream_Attribute_Available instead of just
4752         testing for TSS presence on the implementation base type.
4753         (Analyze_Attribute): Modified to give support to task interfaces.
4754         (Analyze_Access_Attribute): Add error check for use of an Access (or
4755         Unrestricted_Access) attribute with a subprogram marked as
4756         Inline_Always.
4757         (Analyze_Attribute, case Attribute_Address): Add error check for use of
4758         an Address attribute with a subprogram marked as Inline_Always.
4759         Update Eval_Attribute to handle new value of Width from AI-395
4761         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
4762         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
4763         Factor common code across the stream-oriented attribute circcuits into
4764         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
4765         processing is functionally identical to the previous duplicated one,
4766         except that an expression that denotes an abstract subprogram will now
4767         be rejected, as mandated by AI-195 item 5.
4769         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
4770         Is_Local_Anonymous_Access to apply accessibility checks to access
4771         components and stand-alone access objects.
4772         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
4773         elsewhere.
4774         (Is_Potentially_Persistent_Type): New function
4775         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
4776         a heap-object whose type has a constrained partial view, the object is
4777         unconstrained and the component may depend on a discriminant, making its
4778         renaming illegal.
4780         * sinfo.ads, sinfo.adb
4781         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
4782         (Must_Override): Flag applicable to N_Entry_Declaration.
4783         Indicate that interface_list can appear in single task and single
4784         protected declarations.
4785         Replace Is_Overriding and Not_Overriding with Must_Override and
4786         Must_Not_Override, to better express intent of AI.
4787         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
4788         of an overriding indicator in a subprogram or instance.
4789         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
4790         Add the overriding indicator [[not] overriding] construct to the
4791         following grammar productions:
4792          ENTRY_DECLARATION
4793          GENERIC_INSTANTIATION
4794          SUBPROGRAM_SPECIFICATION
4796         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
4797         can start with an overriding indicator.
4799         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
4800         flags accordingly on subrogram specifications or instances.
4802         * sem_ch8.adb:
4803         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
4804         overriding_indicator, if present, is consistent with status of spec.
4805         Improve error message for null-excluding checks on controlling access
4806         parameters.
4807         (Check_In_Previous_With_Clause): Protect the frontend against
4808         previously reported critical errors in the context clauses.
4809         Save and restore Ada_Version_Explicit, for implementation of AI-362
4810         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
4811         operation verify that controlling formals of the renamed entity that
4812         are access parameters are explicitly non-null.
4813         (Find_Expanded_Name): Improve error message when prefix is an illegal
4814         reference to a private child unit.
4816         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
4817         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
4818         Rewrite to correspond to new wide character names in AI-395
4820         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
4821         default procedures.
4823 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
4824             Robert Dewar  <dewar@adacore.com>
4826         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
4827         code, not on the bodies of predefined operations, to cut down on
4828         spurious noise.
4830 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
4832         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
4833         be expanded in place. The size computation does not require a
4834         subtraction, which would raise an exception on a compiler built with
4835         assertions when the upper bound is Integer'first.
4836         (Flatten): For an array of composite components, take into account the
4837         size of the components to determine whether it is safe to expand the
4838         array into a purely positional representation.
4840 2005-06-14  Thomas Quinot  <quinot@adacore.com>
4842         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
4843         denoting a formal parameter into account.
4845 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
4847         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
4848         the entry_call alternative of a conditional entry call, wrap the
4849         conditional entry call itself.
4851 2005-06-14  Nicolas Setton  <setton@adacore.com>
4852             Ed Schonberg  <schonberg@adacore.com>
4854         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
4855         the "simple_choice" member in a variant record, in accordance with the
4856         description in the package spec: the information output for a constant
4857         should be "S number", not "SS number".
4858         (Get_Encoded_Name): Return at once if not generating code. Avoids name
4859         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
4861 2005-06-14  Thomas Quinot  <quinot@adacore.com>
4863         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
4864         RACW without any primitives, do not generate the if statement for
4865         dispatching by name in the PolyORB/DSA case, as it would be malformed
4866         (it would have an Elsif_Parts list that is not No_List, but with a
4867         length of 0).
4869 2005-06-14  Robert Dewar  <dewar@adacore.com>
4871         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
4873 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
4875         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
4876         can determine whether pragma Suppress_Exception_Locations is in effect.
4878         * utils2.c (build_call_raise): Do not pass the file name to the
4879         exception handler if pragma Suppress_Exception_Locations is in effect.
4880         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
4882 2005-06-14  Emmanuel Briot  <briot@adacore.com>
4884         * g-debpoo.adb (Deallocate, Dereference): Improve output.
4886 2005-06-14  Nicolas Roche  <roche@adacore.com>
4888         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
4889         to ""
4890         (Next_Level): Fix minor bug in handling of ../dir case
4891         (Read): Add dir separator to Directory name so that "" is understood as
4892          "/"
4894 2005-06-14  Pascal Obry  <obry@adacore.com>
4896         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
4897         releasing the items.
4899 2005-06-14  Vincent Celier  <celier@adacore.com>
4900             Cyrille Comar  <comar@adacore.com>
4902         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
4903         with output file descriptor and with output file name.
4904         (Dup, Dup2): Now global procedures as they are used by two subprograms
4905         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
4907 2005-06-14  Thomas Quinot  <quinot@adacore.com>
4909         PR ada/6717
4910         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
4911         broadcast address.
4912         (Create_Selector): Bind listening socket used to create the signalling
4913         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
4914         Set listen backlog to 1 to ensure that we detect socket theft by a
4915         failure of our own connect(2) call.
4916         (Check_Selector): Improve documentation of the selector mechanism.
4917         (Broadcast_Inet_Addr): New constant.
4919 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
4921         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
4922         type which turns out to be an incomplete and incorrect fix.
4923         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
4924         of the type is declared in a record (for determination of insertion
4925         type).
4926         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
4927         a private type and ensure that the primary entity is used for the type
4928         of the newly created function's V formal by taking the Etype of the
4929         view.
4931 2005-06-14  Javier Miranda  <miranda@adacore.com>
4932             Jose Ruiz  <ruiz@adacore.com>
4933             Robert Dewar  <dewar@adacore.com>
4934             Ed Schonberg  <schonberg@adacore.com>
4936         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
4937         that indicates if we are parsing a compilation unit found in a
4938         limited-with clause.
4939         It is use to avoid the circularity check.
4941         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
4942         we are parsing a compilation unit found in a limited-with clause. This
4943         is use to avoid the circularity check.
4945         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
4946         unit as a consequence of parsing a limited-with clause. This is used
4947         to avoid the circularity check.
4949         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
4950         (Analyze_Context): Limited-with clauses are now allowed
4951         in more compilation units.
4952         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
4953         againts previously reported critical errors in context clauses
4954         (Install_Limited_Withed_Unit): Code cleanup plus static detection
4955         of two further errors: renamed subprograms and renamed packages
4956         are not allowed in limited with clauses.
4957         (Install_Siblings): Do not install private_with_clauses on the package
4958         declaration for a non-private child unit.
4959         (Re_Install_Parents): When a parent of the subunit is reinstalled,
4960         reset visibility of child units properly.
4961         (Install_Withed_Unit): When a child unit appears in a with_clause of its
4962         parent, it is immediately visible.
4964 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
4965             Emmanuel Briot  <briot@adacore.com>
4967         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
4968         declared within an inlined body as referenced, to prevent spurious
4969         warnings.
4970         (Output_One_Ref): If an entity renames an array component, indicate in
4971         the ALI file that this aliases (renames) the array. Capture as well
4972         function renamings that rename predefined operations.
4973         Add information about generic parent for package and subprogram
4974         instances.
4975         (Get_Type_Reference): For a subtype that is the renaming of an actual in
4976         an instantiation, use the first_subtype to ensure that we don't generate
4977         cross-reference information for internal types.
4978         For objects and parameters of a generic private type, retain the '*'
4979         indicator to distinguish such an entity from its type.
4981         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
4982         to store information about instantiated entities.
4984         * ali.adb (Scan_ALI): Add support for parsing the reference to the
4985         generic parent
4987         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
4988         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
4989         information.
4991 2005-06-10  Doug Rupp  <rupp@adacore.com>
4992             Arnaud Charlet  <charlet@adacore.com>
4993             Olivier Hainque  <hainque@adacore.com>
4994             Jose Ruiz  <ruiz@adacore.com>
4996         * Make-lang.in: Add initialize.o when needed.
4997         Remove obsolete references to RT_FLAGS.
4998         Add missing dependencies for sdefault.o
5000         * initialize.c: New file.
5002         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
5003         [VMS] cond_signal_table: Fix problem in declaration.
5004         [VMS] __gnat_error_handler: rewrite.
5005         Move all __gnat_initialize() routines to initialize.c
5006         Specialize the former "hpux" section to "hppa hpux", as this is what the
5007         section really is here for and we now have other hpux ports that need
5008         different contents.
5009         (__gnat_adjust_context_for_raise) i386-linux: First version of this
5010         function for this target. Adjust PC by one in the machine context. This
5011         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
5012         it is more reliable to do that in the signal handler itself.
5013         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
5014         flags, so that the handler is passed the context structure to adjust
5015         prior to the raise.
5016         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
5017         SA_SIGINFO sigaction should look like. Call
5018         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
5019         Machine_State_Operations stuff.
5020         Add conditional code so that the x86_64 is also supported.
5022 2005-06-14  Pascal Obry  <obry@adacore.com>
5024         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
5025         the library name.
5027 2005-06-14  Robert Dewar  <dewar@adacore.com>
5029         * opt.ads, opt.adb: New flags for persistent_bss mode
5030         Add Ada_Version_Explicit, for implementation of AI-362
5031         Add Assertions_Enabled_Config and associated handling
5032         Needed since setting can be changed with Assertion_Policy pragma
5033         Add new flag Warn_On_Ada_2005_Compatibility
5035         * switch-c.adb: Recognize -gnatwy/Y
5036         Set Ada_Version_Explicit, for implementation of AI-362
5037         The -gnatg switch now includes -gnatyu
5039         * usage.adb: Add -gnatwy/Y
5040         Remove wrong asterisk on -gnatwX line
5041         Add line for -gnatyu switch
5043 2005-06-14  Vincent Celier  <celier@adacore.com>
5045         * osint.adb (Add_Default_Search_Dirs): Put source and object
5046         directories of project files before directories coming from
5047         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
5049 2005-06-14  Robert Dewar  <dewar@adacore.com>
5051         PR ada/15613
5052         * par-ch2.adb (Scan_Pragma_Argument): New procedure
5053         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
5055 2005-06-14  Vincent Celier  <celier@adacore.com>
5057         * prep.adb (Preprocess): Ignore error when scanning the first token of
5058         a line.
5060 2005-06-14  Vincent Celier  <celier@adacore.com>
5062         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
5063         (Check_Stand_Alone_Library): If the specified reference symbol file does
5064         not exist, only issue a warning when the symbol policy is not
5065         Controlled. And, when symbol policy is Compliant, set the symbol
5066         policy to Autonomous.
5068 2005-06-14  Vincent Celier  <celier@adacore.com>
5070         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
5071         when the project file in a with clause is not the last one, that is the
5072         project file name is followed by a comma.
5073         * prj-pp.adb: (First_With_In_List): New Boolean global variable
5074         (Print): Issue list of project files separated by commas in with clauses
5075         according to the values returned by Is_Not_Last_In_List.
5076         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
5077         (Set_Is_Not_Last_In_List): New procedure
5079 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
5081         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
5083 2005-06-14  Robert Dewar  <dewar@adacore.com>
5085         * scng.adb: Add call to new Check_EOF routine
5086         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
5087         Add some comments regarding wide character handling
5089         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
5091         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
5093         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
5094         characters are now considered graphic characters and hence yield false
5095         in this call.
5097         * nmake.adt: Modify header so that xnmake does not generate output
5098         files with multiple blank lines.
5100         * treeprs.adt: Remove a blank line so that output from xtreeprs does
5101         not have an extra blank line
5103 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
5105         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
5106         expression when the component type is an anonymous access type to
5107         ensure that appropriate accessibility checks are done.
5109         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
5110         expression of an assignment when the target object is of an anonymous
5111         access type. This ensures that required accessibility checks are done.
5112         (One_Bound): Move the check for type Universal_Integer to
5113         Process_Bounds.
5114         (Process_Bounds): Check whether the type of the preanalyzed range is
5115         Universal_Integer, and in that case set Typ to Integer_Type prior
5116         to setting the type of the original range and the calls to One_Bound.
5118 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
5120         * sem_case.adb (Expand_Others_Choice): Improve warning.
5122 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
5124         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
5125         constraint of full view if present, when other type is discriminated.
5126         (Eval_Relational_Op): Recognize tests of pointer values against Null,
5127         when the pointer is known to be non-null, and emit appropriate warning.
5129 2005-06-14  Robert Dewar  <dewar@adacore.com>
5130             Ed Schonberg  <schonberg@adacore.com>
5132         PR ada/10671
5133         * sem_prag.adb: Implement pragma Persistent_BSS
5134         Remove obsolete pragma Persistent_Data, Persistent_Object
5135         Set Ada_Version_Explicit, for implementation of AI-362
5136         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
5137         Add processing for pragma Pure_05 and Preelaborate_05
5138         Add processing for Assertion_Policy pragma
5139         Add pragma identifiers for Assert
5140         (Analyze_Pragma, case Assert): Check number of arguments
5141         (Process_Inline): Additional guard against an illegal program, where the
5142         argument of the pragma is undefined, and warnings on redundant
5143         constructs are enabled.
5144         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
5145         Ada_05 to this pragma, specifying that the pragma is only active in
5146         Ada_05 mode.
5147         (Check_Arg_Order): New procedure
5148         Add appropriate calls to this procedure throughout
5149         Also throughout, check entity name before doing any other checks
5151         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
5152         Remove obsolete pragma Persistent_Data, Persistent_Object
5153         Add entries for pragma Pure_05 and Preelaborate_05
5154         Add entries for Assertion_Policy pragma and associated names
5155         Add some names for pragma argument processing
5157         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
5159 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
5161         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
5162         appears within a negation (either from source or as a rewriting of
5163         inequality) adjust text of warning accordingly.
5165 2005-06-14  Thomas Quinot  <quinot@adacore.com>
5167         * s-strxdr.adb: Follow AI95-00132
5169 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
5171         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
5173 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
5174             Jose Ruiz  <ruiz@adacore.com>
5176         * s-tposen.adb, s-tpobop.adb
5177         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
5178         the exception id.
5179         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
5180         there is no violation of the Max_Entry_Queue_Length restriction (if it
5181         has been set); Program_Error is raised otherwise.
5182         (Requeue_Call): Before requeuing the task on the target entry queue we
5183         check that there is no violation of the Max_Entry_Queue_Length
5184         restriction (if it has been set); Program_Error is raised otherwise.
5186 2005-06-14  Robert Dewar  <dewar@adacore.com>
5188         * styleg.adb: Fix several remaining problems in -gnatyu switch
5189         Blank line count not reset at start
5190         Scanning outside source buffer in some cases
5191         Confusing message for blanks at end of file
5192         Non-empty blank lines not recognized
5194         * nmake.adt: Modify header so that xnmake does not generate output
5195         files with multiple blank lines.
5197         * treeprs.adt: Remove a blank line so that output from xtreeprs does
5198         not have an extra blank line
5200 2005-06-14  Sergey Rybin  <rybin@adacore.com>
5202         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
5204 2005-06-14  Doug Rupp  <rupp@adacore.com>
5205             Vincent Celier  <celier@adacore.com>
5207         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
5208         Update copyright.
5210         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
5211         Remove "Library" command.
5212         Change keyword for style check -gnatyd from NOCRLF to
5213         DOS_LINE_ENDINGS.
5214         Remove useless second style check keyword NONE
5215         Remove help documentation for inexistent style check keyword
5216         RM_COLUMN_LAYOUT.
5217         Add help documentation for style check keywords DOS_LINE_ENDINGS,
5218         UNNECESSARY_BLANK_LINES and XTRA_PARENS
5219         Add UNNECESSARY_BLANK_LINES for -gnatyu
5220         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
5222         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
5224 2005-06-14  Vincent Celier  <celier@adacore.com>
5226         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
5227         gprmake was invoked with -d.
5228         (Compile_Sources): If -d was used, output the "completed ..." message
5229         for each compilation.
5230         (Scan_Arg): Recognize new switch -d
5231         When -c and at least one main is specified, set
5232         Unique_Compile to True to guarantee that no other sources will be
5233         compiled.
5235 2005-06-14  Matthew Heaney  <heaney@adacore.com>
5237         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
5238         * a-swuwha.ads, a-swuwha.adb: New files
5240         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
5241         * a-szuzha.ads, a-szuzha.adb: New files.
5243         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
5244         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
5245         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
5246         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
5247         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
5248         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
5249         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
5250         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
5251         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
5252         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
5253         Ada 2005 RM.
5255 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
5256             Olivier Hainque  <hainque@adacore.com>
5257             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5258             Pascal Obry  <obry@adacore.com>
5260         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
5262         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
5263         making a temporary around a procedure call because of non-addressable
5264         actual parameter.
5265         (process_freeze_entity): If entity is a private type, capture size
5266         information that may have been computed for the full view.
5267         (tree_transform, case N_Allocator): If have initializing expression,
5268         check type for Has_Constrained_Partial_View and pass that to
5269         build_allocator.
5270         (tree_transform, case N_Return_Statement): Pass extra arg to
5271         build_allocator.
5273         * decl.c (annotate_value): Remove early return if -gnatR is not
5274         specified.
5275         (gnat_to_gnu_field): Don't make a packable type for a component clause
5276         if the position is byte aligned, the field is aliased, and the clause
5277         size isn't a multiple of the packable alignment. It serves no useful
5278         purpose packing-wise and would be rejected later on.
5279         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
5281         PR ada/20515
5282         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
5283         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
5284         instead.
5285         (create_concat_name): Idem.
5287 2005-06-10  Robert Dewar  <dewar@adacore.com>
5288             Eric Botcazou  <ebotcazou@adacore.com>
5289             Ben Brosgol  <brosgol@adacore.com>
5290             Cyrille Comar  <comar@adacore.com>
5291             Sergey Rybin  <rybin@adacore.com>
5292             Pascal Obry  <obry@adacore.com>
5294         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
5295         Document second argument (Ada_05) of pragma Obsolescent
5296         Add note that call to subprogram marked with pragma Obsolescent
5297         is now considered to be a violation of program Restrictions
5298         (No_Obsolescent_Features).
5299         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
5300         that only machine-dependent attributes are supported.
5302         * gnat_ugn.texi:
5303         Commented out menu lines and empty section for gnatclean examples
5304         Document -gnatwy/Y
5305         Fix some over long lines
5306         Clarify and enhance documentation of ADA_PROJECT_PATH.
5307         Rework section 2.11.2(3) about linking with a non-GNU compiler.
5308         Mention new switch -fcallgraph-info.
5309         Mention new switch -fstack-usage.
5310         For gnatpp, replace '-notab' with '-N' and add this option to Index
5311         Corrected VMS example.
5312         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
5313         Minor reformatting
5314         Add documentation for -gnatyu switch (unnecessary blank lines)
5315         Document new switch -U for GNAT PRETTY and GNAT METRIC
5316         Add note about Stdcall being handled as C convention on non Windows OS.
5317         Remove some junk typo in description of gnatbind -S switch
5318         Remove reference to Extensions_Allowed pragma
5319         Document the new order of the directories to be searched (source and
5320         object directories of project files before directories in ADA_*_PATH
5321         environment variables.
5323         * g-trasym.ads: Document that IRIX is supported
5325 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
5327         * Makefile.in: Add initialize.o when needed.
5328         Adapt to new VMS package body Symbols and subunits
5329         No specialized version of a-sytaco is needed for VxWorks.
5331         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
5332         * a-zchara.ads, a-widcha.ads: New files.
5334         * system-hpux-ia64.ads: New file.
5336         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
5337         is imported from the VxWorks kernel.
5339 2005-06-14  Robert Dewar  <dewar@adacore.com>
5341         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
5342         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
5343         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
5344         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
5345         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
5346         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
5347         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
5348         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
5349         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
5350         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
5351         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
5352         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
5354 2005-06-14  Thomas Quinot  <quinot@adacore.com>
5356         * xeinfo.adb: Fix typo in comment
5358 2005-06-14  Javier Miranda  <miranda@adacore.com>
5360         * repinfo.ads: Fix typo in comment
5362 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
5364         * s-finimp.adb (Parent_Tag): Delete this imported function (function
5365         Parent_Tag is now in the visible part of Ada.Tags).
5366         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
5367         using imported function.
5369 2005-06-14  Bernard Banner  <banner@adacore.com>
5371         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
5372         also apply for handling support for VxSim 653.
5374 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
5376         * xsnames.adb: Add automatic generation of snames.h.
5378 2005-06-14  Thomas Quinot  <quinot@adacore.com>
5380         * gen-soccon.c: Add IP_MULTICAST_IF constant
5381         Minor reformatting and adjustments to prevent warnings.
5383 2005-06-14  Pascal Obry  <obry@adacore.com>
5385         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
5387 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
5389         * trans.c (gnat_gimplify_expr): Call
5390         recompute_tree_invarant_for_addr_expr when we change
5391         the operand of the ADDR_EXPR.
5393 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5395         * misc.c: Don't include errors.h.
5397 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5399         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
5401 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
5403         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
5404         comment typos.
5405         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
5407 2005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5409         PR ada/20270
5410         * Makefile.in: Make TGT_LIB behave correctly.
5412 2005-04-23  DJ Delorie  <dj@redhat.com>
5414         * misc.c: Adjust warning() callers.
5416 2005-04-16  Laurent Guerby  <laurent@guerby.net>
5418         PR ada/18847
5419         * a-nudira.adb (Value): Check for valid string.
5420         * a-nuflra.adb (Value): Likewise.
5422 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
5424         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
5426 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
5428         * adaint.c, init.c, tracebak.c: Fix comment typos.
5429         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
5431 2005-04-07  Laurent Guerby  <laurent@guerby.net>
5432             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5434         * Makefile.in: Add make ifeq define for hppa linux tasking support.
5435         * system-hpux.ads: Define Signed_Zeros to be True.
5436         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
5438 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
5440         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
5441         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
5442         typos.
5444 2005-03-30  Tom Tromey  <tromey@redhat.com>
5446         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
5448 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5450         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
5452 2005-03-29  Robert Dewar  <dewar@adacore.com>
5454         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
5455         fixed-point expression has value that is not a multiple of the Small
5456         value.
5458         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
5460         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
5461         nanoseconds.
5463         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
5465 2005-03-29  Vincent Celier  <celier@adacore.com>
5467         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
5468         (Build_Dynamic_Library.Version_String): Return the empty string when
5469         Lib_Version is empty or when the symbol policy is not Autonomous.
5471         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
5472         a symbol is not in the reference symbol file, increase the Major ID
5473         and set the Minor ID to 0.
5474         Use gsmatch=lequal instead of gsmatch=equal
5476 2005-03-29  Doug Rupp  <rupp@adacore.com>
5478         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
5479         name and translate.
5481 2005-03-29  Javier Miranda  <miranda@adacore.com>
5483         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
5484         (Inherit_DT): The first formal has been redefined as a Tag.
5485         This allows us the removal of the subprogram Get_TSD.
5486         (TSD): Replace the call to Get_TSD by the actual code.
5488         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
5489         (Make_DT): Upgrade the call to Inherit_TSD according to the
5490         new interface: the first formal is now a Tag.
5492         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
5493         redefined as a Tag.
5494         This change allows us to remove the subprogram Get_TSD.
5495         (CPP_Get_TSD): Subprogram removed.
5496         (TSD): Replace the call to CPP_Get_TSD by the actual code.
5498         * rtsfind.ads: Remove support to call the run-time
5499         subprogram Get_TSD
5501 2005-03-29  Robert Dewar  <dewar@adacore.com>
5503         * errutil.adb, errout.adb:
5504         Minor comment updates on Line_Terminator references
5506         * par-ch10.adb: Add ??? comment about line terminator
5508         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
5509         (check dos line terminator).
5510         (Check_Line_Max_Length): New procedure, split off from the existing
5511         Check_Line_Terminator routine. Separating this out allows -gnatyf to
5512         be properly recognized.
5514         * styleg.adb: Add ??? comment for line terminator reference
5516         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
5517         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
5519         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
5520         (check dos line terminator).
5521         (Check_Line_Max_Length): New procedure, split off from the existing
5522         Check_Line_Terminator routine. Separating this out allows -gnatyf to
5523         be properly recognized.
5525         * stylesw.ads, stylesw.adb:
5526         Add handling for new -gnatyd switch (check dos line terminator)
5528         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
5529         Recognize -gnatwb/-gnatwB switches
5530         Include Warn_On_Bad_Fixed_Value for -gnatg
5532         * usage.adb:
5533         Add line for new -gnatyd switch (check dos line terminator)
5535         * usage.adb: Add lines for -gnatwb/-gnatwB
5537         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
5539         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
5541         * gnat_ugn.texi: Fix overlong lines
5542         Document new -gnatyd switch
5543         Document new -gnatwb/-gnatwB switches
5545 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
5547         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
5548         order to retrieve the component list of the type, before examining
5549         individual components.
5551         * sem_type.adb (Covers): Types are compatible if one is the base type
5552         of the other, even though their base types might differ when private
5553         views are involved.
5555 2005-03-29  Thomas Quinot  <quinot@adacore.com>
5557         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
5558         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
5559         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
5560         analyzed if expansion is disabled (which could otherwise cause spurious
5561         error messages if expansion has been disabled due to previous
5562         (unrelated) errors).
5564         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
5565         is disabled, the entity denoted by the argument is the access type
5566         itself, not an underlying record type, so there is no need to go back
5567         to the Corresponding_Remote_Type.
5569 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
5570             Robert Dewar  <dewar@adacore.com>
5572         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
5573         expand a call to an instance of
5574         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
5575         Constructor actual of the instance. A class-wide membership
5576         check is also generated, to ensure that the tag passed to the instance
5577         denotes a type in the class.
5578         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
5579         of Name_Generic_Dispatching_Constructor.
5581         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
5582         05 unit for AI-260-02).
5584         * a-tgdico.ads: New file.
5586         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
5587         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
5589         * snames.ads, snames.adb (Preset_Names): Add entry for
5590         Generic_Dispatching_Constructor.
5592         PR ada/20300
5593         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
5594         character type cases.
5595         (Analyze_Subprogram_Renaming): Add special handling for
5596         the case of renaming of stream attributes when the renaming denotes a
5597         generic formal subprogram association for an abstract formal subprogram.
5598         Check that the attribute is a primitive stream attribute (and not
5599         a class-wide stream attribute) and then rewrite the attribute name
5600         as the name of the appropriate compiler-generated stream primitive.
5602 2005-03-29  Robert Dewar  <dewar@adacore.com>
5604         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
5605         recursive calls.
5606         (Is_Possibly_Unaligned_Object): Correct typo that
5607         resulted in inaccurate result for unaligned scalars within records.
5609 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
5611         * freeze.adb (Freeze_Record_Type): If the type of the component is an
5612         itype whose parent is controlled and not yet frozen, do not create a
5613         freeze node for the itype if expansion is disabled.
5615 2005-03-29  Vincent Celier  <celier@adacore.com>
5617         * make.adb (Gnatmake): Don't fail if the main project file is declared
5618         as having no Ada sources. Do not display message "no sources to
5619         compile" in quiet output.
5621 2005-03-29  Doug Rupp  <rupp@adacore.com>
5623         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
5624         extra tools.
5626 2005-03-29  Robert Dewar  <dewar@adacore.com>
5628         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
5629         child.
5631 2005-03-29  Robert Dewar  <dewar@adacore.com>
5633         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
5634         missing TYPE Improve the error message generated when compiling a
5635         limited interface in Ada83 or Ada95 mode.
5637 2005-03-29  Robert Dewar  <dewar@adacore.com>
5639         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
5640         rather than proceed ahead using a junk attribute name.
5642 2005-03-29  Vincent Celier  <celier@adacore.com>
5644         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
5646         * prj-part.adb (Parse_Single_Project): Set the location of a project
5647         on its defining identifier, rather than on the reserved word "project".
5649         * prj-proc.adb (Expression): Adapt to the fact that default of external
5650         references may be string expressions, not always literal strings.
5651         (Recursive_Process): Set Display_Name equal to Name
5652         when Location is No_Location, that is when there is no actual file.
5653         Get the Display_Name of the project from the source, when it is not a
5654         virtual project.
5655         (Process): Use the Display_Name in error messages
5657         * prj-strt.adb (External_Reference): Allow default to be string
5658         expressions, not only literal strings.
5660 2005-03-29  Vincent Celier  <celier@adacore.com>
5662         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
5663         file and the reference symbol file to be the same file.
5665 2005-03-29  Thomas Quinot  <quinot@adacore.com>
5667         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
5668         forbid conversion of a local access-to-subprogram type to a remote one.
5670         * sem_util.adb (Wrong_Type): For a record type that is the expanded
5671         equivalent type for a remote access-to-subprogram type, go back to the
5672         original RAS entity when displaying an error message, so the casing is
5673         the original source casing.
5675 2005-03-29  Robert Dewar  <dewar@adacore.com>
5677         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
5678         on param update.
5680 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
5682         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
5683         subtype if code is being pre-analyzed, to prevent un-expanded
5684         references to protected formals, among others.
5685         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
5686         interpretation that can be a call, include the result of the call as a
5687         possible interpretation of the dereference.
5689         * sem_ch5.adb (Process_Bounds): Determine type of range by
5690         pre-analyzing a copy of the original range, and then analyze the range
5691         with the expected type.
5693         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
5694         with an overloaded prefix where not all interpretations yield an
5695         access to subprogram, do not rewrite node as a call.
5696         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
5697         the node as a call once the context identifies the interpretation of
5698         the prefix whose call yields the context type.
5699         (Valid_Conversion): For the case of a conversion between
5700         local access-to-subprogram types, check subtype conformance using
5701         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
5702         detailed error message.
5704 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
5706         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
5707         indicator, indicate that the formal can never be null.
5708         (Process_Formals): If a formal has a non_null indicator, insert the
5709         resulting subtype immediately before the enclosing subprogram decl,
5710         and not at the beginning of the corresponding declarative part, to
5711         prevent access before elaboration (Ada2005).
5713 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5715         PR ada/19956
5716         * utils.c (finish_record_type): Use variable_size when setting sizes.
5718 2005-03-29  Robert Dewar  <dewar@adacore.com>
5720         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
5721         guarantee Unix style line terminators for the output files, even when
5722         running on windows.
5724 2005-03-29  Robert Dewar  <dewar@adacore.com>
5726         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
5727         buffer if an exception is raised.
5729 2005-03-29  Ed Falis  <falis@adacore.com>
5731         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
5732         VxWorks 653 1.4
5734 2005-03-29  Robert Dewar  <dewar@adacore.com>
5736         * sem_util.ads: Minor reformatting
5737         * gnat_rm.texi: Minor editing.
5739 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
5741         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
5742         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
5744 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5746         * adaint.c (__gnat_portable_spawn): Adjust cast.
5748 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
5750         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
5752 2005-03-17  Pascal Obry  <obry@adacore.com>
5754         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
5755         used.
5757         * expect.c (__gnat_waitpid): Moved here from adaint.c.
5758         Reimplement under Win32 using Win32 API.
5760         (__gnat_kill) [Win32]: Properly close the process handle before leaving
5761         this routine.
5763 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
5765         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
5766         (DECL_RENAMED_OBJECT): New accessor macro.
5767         (SET_DECL_RENAMED_OBJECT): New setter macro.
5769         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
5770         object in all cases.  Attach the renamed object to the VAR_DECL.
5771         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
5772         field is not prescribed.
5774         * misc.c (gnat_handle_option): Handle -gnatO separately.
5775         (gnat_print_decl) <VAR_DECL>: New case.
5776         Print the DECL_RENAMED_OBJECT node.
5778         * lang.opt:  Declare separate -gnatO option.
5780         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
5781         pointer, replace it with the renamed object.
5782         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
5783         pointer type if the source is not a fat pointer type whose underlying
5784         array has the same non-zero alias set as that of the destination array.
5786 2005-03-17  Javier Miranda  <miranda@adacore.com>
5788         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
5789         (Get_Inheritance_Depth): Removed.
5790         (Set_Inheritance_Depth): Removed.
5792         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
5793         subprogram Get_Expanded_Name because it is not referenced by the
5794         frontend.
5796         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
5797         (CPP_Get_Inheritance_Depth): Removed.
5798         (CPP_Set_Inheritance_Depth): Removed.
5800         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
5802 2005-03-17  Robert Dewar  <dewar@adacore.com>
5804         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
5805         3, since we now expect GCC 3 to do all the work.
5807 2005-03-17  Javier Miranda  <miranda@adacore.com>
5809         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
5810         of one barrier to avoid wrong usage of this attribute.
5812         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
5813         First_Private_Entity.
5815         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
5816         the subprogram against wrong usage.
5817         Adapt the code to traverse the entities in the
5818         scope of a record_type because in addition to its usage regarding
5819         packages, this subprogram is also called by Expand_N_Freeze_Entity
5820         to install the visible declarations of the enclosing scope of a
5821         record_type_with_private to establish the proper visibility before
5822         freezing the entity and related subprograms.
5824 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
5826         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
5827         entry formals.
5829 2005-03-17  Thomas Quinot  <quinot@adacore.com>
5831         * exp_ch3.adb (Check_Attr): New subprogram.
5832         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
5833         into a new Check_Attr subprogram, in order to provide a more
5834         explanatory error message (including the name of the missing attribute).
5835         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
5836         subprogram determines whether a default implementation exists for a
5837         given stream attribute.
5838         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
5839         Determine whether to generate a default implementation for each stream
5840         attribute separately, as this depends on the specific attribute.
5842         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
5843         limited extension where a stream attribute is missing for a limited
5844         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
5845         generate a bogus reference to the missing attribute to prevent
5846         cascaded errors. Instead, generate a null statement.
5848         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
5849         available for a limited type if it has been specified for an ancestor
5850         of the type.
5852 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
5854         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
5855         entity is an operator.
5857 2005-03-17  Thomas Quinot  <quinot@adacore.com>
5859         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
5860         spec, to make this predicate available to other units.
5862         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
5863         reimplementing it.
5865         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
5866         when no distribution runtime library is available.
5868         * sem_res.adb, sem_dist.adb: Disable expansion of remote
5869         access-to-subprogram types when no distribution runtime library is
5870         available.
5871         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
5872         predicate available to other units.
5874         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
5875         spec, to make this predicate available to other units.
5877 2005-03-17  Vincent Celier  <celier@adacore.com>
5879         * make.adb (Insert_Project_Sources): Make sure the Q is always
5880         initialized.
5882         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
5883         the default for the tree, not the global default naming.
5885         * prj-proc.adb (Recursive_Process): No need to put the default naming
5886         in the project data, it's already there.
5888 2005-03-17  Doug Rupp  <rupp@adacore.com>
5890         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
5892         * 5xcrtl.ads: Renamed to...
5893         * s-crtl-vms64.ads: ...this new file
5895 2005-03-17  Robert Dewar  <dewar@adacore.com>
5897         PR ada/19519
5898         * namet.adb (Copy_One_Character): Set proper wide character encoding
5899         for upper half character if we have upper half encoding.
5901 2005-03-17  Robert Dewar  <dewar@adacore.com>
5903         * par.adb (Par): Improved msg for attempt to recompile predefined unit
5905 2005-03-17  Thomas Quinot  <quinot@adacore.com>
5907         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
5908         tagged limited type, the TSS is a newly built renaming declaration:
5909         insert it using Set_TSS, not Copy_TSS.
5911 2005-03-17  Javier Miranda  <miranda@adacore.com>
5913         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
5914         Try_Object_Operation): Analyze the object that is accessible
5915         through the prefix of the subprogram call before we apply
5916         the transformation of the object-operation notation.
5918 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
5920         * s-taprob.adb (Initialize_Protection): Initialize the protected
5921         object's owner to Null_Task.
5922         (Lock): If pragma Detect_Blocking is in effect and the caller of this
5923         procedure is already the protected object's owner then Program_Error
5924         is raised. In addition the protected object's owner is updated.
5925         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
5926         of this procedure is already the protected object's owner then
5927         Program_Error is raised.
5928         In addition the protected object's owner is updated.
5929         (Unlock): Remove the ownership of the protected object.
5931         * s-taprob.ads (Protection): Add the field Owner, used to store the
5932         protected object's owner.
5933         This component is needed for detecting one type of potentially blocking
5934         operations (external calls on a protected subprogram with the same
5935         target object as that of the protected action). Document the rest of
5936         the components.
5938         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
5939         Initialize the protected object's owner to Null_Task.
5940         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
5941         caller of this procedure is already the protected object's owner then
5942         Program_Error is raised.
5943         Do not raise Program_Error when this procedure is called from a
5944         protected action.
5945         (Unlock_Entries): Remove the ownership of the protected object.
5946         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
5947         of this procedure is already the protected object's owner then
5948         Program_Error is raised.
5949         Do not raise Program_Error when this procedure is called from
5950         a protected action.
5952         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
5953         used to store the protected object's owner.
5955         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
5956         effect and this procedure (a potentially blocking operation) is called
5957         from whithin a protected action, Program_Error is raised.
5958         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
5959         and this procedure (a potentially blocking operation) is called from
5960         whithin a protected action, Program_Error is raised.
5962 2005-03-17  Vincent Celier  <celier@adacore.com>
5963             Nicolas Setton  <setton@adacore.com>
5965         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
5966         switch, not supported by the linker on Darwin. Add '_' before
5967         <library>init, as this character is added unconditionally by the
5968         compiler.
5969         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
5970         correct one ".dylib". This fixes detection of the archive files when
5971         building library projects.
5973 2005-03-17  Vincent Celier  <celier@adacore.com>
5975         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
5976         -gnat83, -gnat95 and -gnat05.
5978 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
5980         * gnat_ugn.texi: Document gnatmem restriction
5982 2005-03-17  Thomas Quinot  <quinot@adacore.com>
5984         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
5985         cleanup
5987 2005-03-17  Robert Dewar  <dewar@adacore.com>
5989         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
5990         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
5991         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
5993         * casing.adb: Comment improvements
5995 2005-03-17  Pascal Obry  <obry@adacore.com>
5997         * g-expect.adb: Minor reformatting.
5999 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
6001         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
6002         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
6003         to dependencies.
6005 2005-03-15  Vincent Celier  <celier@adacore.com>
6007         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
6008         Add new parameter In_Tree to specify the project tree: needed
6009         by the project manager. Adapt to changes in project manager
6010         using new parameter In_Tree.
6012 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
6014         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
6015         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
6016         ada/bldtools to avoid make -jN failures.
6018 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6020         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
6021         to NULL_TREE on entry.
6023 2005-03-15  Robert Dewar  <dewar@adacore.com>
6025         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
6026         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
6027         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
6028         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
6029         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
6030         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
6031         system-interix.ads, system-solaris-sparc.ads,
6032         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
6033         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
6034         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
6035         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
6036         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
6037         Compiler_System_Version to be False.
6039         * opt.ads: Add new flag Opt.Address_Is_Private
6041         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
6042         Add new parameter Compiler_System_Version to avoid checking for
6043         completeness of parameters when compiler is compiling itself.
6044         Allows old versions of GNAT to be compiled with new compiler.
6046 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6048         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
6049         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
6050         calling thread.
6051         (Stack_Base_Available): New flag.
6052         (Get_Page_Size): New overloaded functions imported from C.
6053         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
6054         PROT_ON, PROT_OFF): New constants.
6055         (mprotect): New function imported from C.
6056         (pthread_teb_t): New record type.
6058         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
6059         (Create_Task): Account for the Yellow Zone and the guard page.
6061 2005-03-15  Vincent Celier  <celier@adacore.com>
6063         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
6064         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
6065         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
6066         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
6067         Library_File_Name_For): Add new parameter In_Tree
6068         to specify the project tree: needed by the project manager.
6069         Adapt to changes in project manager using new parameter In_Tree.
6070         Remove local imports, use functions in System.CRTL.
6072         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
6073         to use the project manager.
6075         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
6076         In_Tree to designate the project tree. Adapt to changes in the project
6077         manager, using In_Tree.
6079         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
6080         Copy_Interface_Sources): Add new parameter In_Tree to specify the
6081         project tree: needed by the project manager.
6082         (Build_Library): Check that Arg'Length >= 6 before checking if it
6083         contains "--RTS=...".
6085         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
6086         Library_File_Name_For): Add new parameter In_Tree to specify the
6087         project tree: needed by the project manager.
6089         * prj.ads, prj.adb: Major modifications to allow several project trees
6090         in memory at the same time.
6091         Change tables to dynamic tables and hash tables to dynamic hash
6092         tables. Move tables and hash tables from Prj.Com (in the visible part)
6093         and Prj.Env (in the private part). Move some constants from the visible
6094         part to the private part. Make other constants deferred.
6095         (Project_Empty): Make it a variable, not a function
6096         (Empty_Project): Add parameter Tree. Returns the data with the default
6097         naming data of the project tree Tree.
6098         (Initialize): After updating Std_Naming_Data, copy its value to the
6099         component Naming of Project Empty.
6100         (Register_Default_Naming_Scheme): Use and update the default naming
6101         component of the project tree, instead of the global variable
6102         Std_Naming_Data.
6103         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
6104         Tree is not defaulted, return the default naming data of the Tree.
6105         (Initial_Buffer_Size): Constant moved from private part
6106         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
6107         variables initialized in procedure Initialize.
6108         (Add_To_Buffer): Add two in out parameters to replace global variables
6109         Buffer and Buffer_Last.
6110         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
6111         functions.
6112         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
6113         hash tables.
6114         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
6115         for the project tree.
6116         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
6117         constant at the beginning of the package spec, so that they cane be used
6118         in subprograms before their full declarations.
6119         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
6120         (Empty_Project): Add parameter of type Project_Node_Ref
6121         (Private_Project_Tree_Data): Add component Default_Naming of type
6122         Naming_Data.
6123         (Buffer, Buffer_Last): remove global variables
6124         (Add_To_Buffer): Add two in out parameters to replace global variables
6125         Buffer and Buffer_Last.
6126         (Current_Packages_To_Check): Remove global variable
6127         (Empty_Name): Move to private part
6128         (No-Symbols): Make it a constant
6129         (Private_Project_Tree_Data): New type for the private part of the
6130         project tree data.
6131         (Project_Tree_Data): New type for the data of a project tree
6132         (Project_Tree_Ref): New type to designate a project tree
6133         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
6134         for the project tree.
6136         * prj-attr.ads: Add with Table; needed, as package Prj no longer
6137         imports package Table.
6139         * prj-com.adb: Remove empty, no longer needed body
6141         * prj-com.ads: Move most of the content of this package to package Prj.
6143         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
6144         designate the project node tree and Packages_To_Check to replace
6145         global variable Current_Packages_To_Check.
6146         Add new parameters In_Tree and Packages_To_Check to local subprograms,
6147         when needed. Adapt to changes in project manager with project node tree
6148         In_Tree.
6150         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
6151         project tree to most subprograms. Move tables and hash tables to
6152         private part of package Prj.
6153         Adapt to changes in project manager using project tree In_Tree.
6155         * prj-makr.adb (Tree): New constant to designate the project node tree
6156         Adapt to change in project manager using project node tree Tree
6158         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
6159         display the Library_Src_Dir and the Library_Dir.
6160         Add new parameter In_Tree to designate the project node tree to most
6161         subprograms. Adapt to changes in the project manager, using project tree
6162         In_Tree.
6163         (Check_Naming_Scheme): Do not alter the casing on platforms where
6164         the casing of file names is not significant.
6165         (Check): Add new parameter In_Tree to designate the
6167         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
6168         designate the project tree.
6169         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
6171         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
6172         to replace those that were in the private part of package Prj.
6173         Add new parameter In__Tree to designate the project node tree to most
6174         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
6175         (Post_Parse_Context_Clause): When specifying the project node of a with
6176         clause, indicate that it is a limited with only if there is "limited"
6177         in the with clause, not necessarily when In_Limited is True.
6178         (Parse): Add new parameter In_Tree to designate the project node tree
6180         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
6181         designate the project node tree. Adapt to change in Prj.Tree with
6182         project node tree In_Tree.
6184         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
6185         tree In_Tree in the call to function Empty_Process to give its initial
6186         value to the project data Processed_Data.
6187         Add new parameters In_Tree to designate the project tree and
6188         From_Project_Node_Tree to designate the project node tree to several
6189         subprograms. Adapt to change in project manager with project tree
6190         In_Tree and project node tree From_Project_Node_Tree.
6192         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
6193         to replace those that were in the private part of package Prj.
6194         Add new parameter In_Tree to designate the project node tree to most
6195         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
6197         * prj-tree.ads, prj-tree.adb: Add new parameter of type
6198         Project_Node_Tree_Ref to most subprograms.
6199         Use this new parameter to store project nodes in the designated project
6200         node tree.
6201         (Project_Node_Tree_Ref): New type to designate a project node tree
6202         (Tree_Private_Part): Change table to dynamic table and hash tables to
6203         dynamic hash tables.
6205         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
6206         the project tree to most subprograms. Adapt to changes in project
6207         manager using project tree In_Tree.
6209         * makegpr.adb (Project_Tree): New constant needed to use project
6210         manager.
6212 2005-03-15  Olivier Hainque  <hainque@adacore.com>
6214         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
6215         for sigactions with SA_SIGINFO set. Call
6216         __gnat_adjust_context_for_raise before raising, to perform the
6217         potentially required adjustments to the machine context for the GCC
6218         unwinder.
6220         * raise.h (__gnat_adjust_context_for_raise): New prototype.
6222         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
6223         Adjust PC by one in the provided machine context.
6224         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
6225         so that the handler is passed the context structure to adjust prior to
6226         the raise.
6227         (__gnat_error_handler) HPUX: Adjust the signature to match what an
6228         SA_SIGINFO sigaction should look like. Call
6229         __gnat_adjust_context_for_raise before actually raising.
6230         (__gnat_adjust_context_for_raise): Default noop to help PC
6231         adjustments before raise from signal handlers.
6232         (__gnat_error_handler): Indirectly call a predicate function to
6233         determine if a condition should be resignaled or not.
6234         (__gnat_set_resignal_predicate): User interface to modify the predicate.
6235         (__gnat_default_resignal_p): Default GNAT predicate.
6237 2005-03-15  Doug Rupp  <rupp@adacore.com>
6239         * adaint.c: Prefix #include of VMS system header files with vms/
6240         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
6241         Do not define a dummy function "convert_addresses" under Darwin,
6242         not needed.
6244         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
6245         with vms/
6247 2005-03-15  Nicolas Setton  <setton@adacore.com>
6249         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
6250         PPC/AIX.
6252 2005-03-15  Robert Dewar  <dewar@adacore.com>
6254         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
6255         AI-386.
6257         * a-retide.ads: Minor comment changes
6259 2005-03-15  Robert Dewar  <dewar@adacore.com>
6261         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
6262         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
6263         Realloc_For_Chunk to private part of package.
6264         New subprograms for AI-301
6266         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
6267         Get_Line procedure.
6268         Avoid unnecessary use of Get/Set_Wide_String
6270 2005-03-15  Robert Dewar  <dewar@adacore.com>
6272         PR ada/13470
6273         * a-stunau.ads, a-stunau.adb:
6274         Change interface to allow efficient (and correct) implementation
6275         The previous changes to allow extra space in unbounded strings had
6276         left this interface a bit broken.
6278         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
6280         * g-spipat.ads, g-spipat.adb: New interface for Get_String
6281         Minor reformatting (function specs)
6283         * g-spitbo.adb: New interface for Get_String
6285         * g-spitbo.ads: Minor reformatting
6287         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
6289         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
6291 2005-03-15  Javier Miranda  <miranda@adacore.com>
6292             Robert Dewar  <dewar@adacore.com>
6293             Thomas Quinot  <quinot@adacore.com>
6294             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6296         * atree.ads, atree.adb: Add support for Elist24 field
6298         * atree.h: Fix wrong definition of Field27
6299         Add support for Elist16 field
6300         Add support for Elist24 field
6302         * einfo.ads, einfo.adb (Abstract_Interfaces,
6303         Set_Abstract_Interfaces): New subprograms.
6304         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
6305         subprograms.
6306         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
6307         entities rather than a single node.
6308         (Is_Interface, Set_Is_Interface): New subprogram
6309         (First_Tag_Component): New syntesized attribute
6310         (Next_Tag_Component): New synthesized attribute
6311         (Write_Entity_Flags): Upgraded to write Is_Interface
6312         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
6313         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
6314         (Task_Body_Procedure): New subprogram to read this attribute.
6315         (Set_Task_Body_Procedure): New subprogram to set this attribute.
6316         (Has_Controlled_Component): Now applies to all entities.
6317         This is only a documentation change, since it always worked to apply
6318         this to other than composite types (yielding false), but now this is
6319         official.
6320         Update documentation on Must_Be_Byte_Aligned for new spec
6322         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
6323         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
6324         uses of the Access_Disp_Table attribute to reference the first dispatch
6325         table associated with a tagged type. As
6326         part of the implementation of abstract interface types,
6327         Access_Disp_Table has been redefined to contain a list of dispatch
6328         tables (rather than a single dispatch table).
6329         Similarly, upgrade all the references to Tag_Component by the
6330         new attribute First_Tag_Component.
6331         (Find_Inherited_TSS): Moved to exp_tss.
6332         Clean up test in Expand_N_Object_Declaration for cases
6333         where we need to do a separate assignment of the initial value.
6334         (Expand_N_Object_Declaration): If the expression in the
6335         declaration of a tagged type is an aggregate, no need to generate an
6336         additional tag assignment.
6337         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
6338         is to be deleted.
6339         Bit packed array ops are only called if operands are known to be
6340         aligned.
6341         (Component_Equality): When returning an N_Raise_Program_Error statement,
6342         ensure that its Etype is set to Empty to avoid confusing GIGI (which
6343         expects that only expressions have a bona fide type).
6344         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
6345         determine the amount of data to be copied.
6347         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
6348         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
6349             INTERFACE_TYPE_DEFINITION ::=
6350               [limited | task | protected | synchronized] interface
6351                 [AND interface_list]
6353         * par-ch3.adb (P_Type_Declaration): Modified to give support to
6354         interfaces.
6355         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
6356         interfaces.
6357         (P_Interface_Type_Definition): New subprogram that parses the new
6358         syntax rule of Ada 2005 interfaces
6359         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
6360         messages by the correct RENAMES (quotes removed).
6362         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
6363         attribute First_Tag_Component.
6365         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
6366         (Interface_List, Set_Interface_List): New subprograms.
6367         (Interface_Present, Set_Interface_Present): New subprograms.
6368         (Limited_Present, Set_Limited_Present): Available also in derived
6369         type definition nodes.
6370         (Protected_Present, Set_Protected_Present): Available also in
6371         record type definition and
6372         derived type definition nodes.
6373         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
6374         (Task_Present, Set_Task_Present): New subprogram.
6375         (Task_Body_Procedure): Removed.
6376         (Set_Task_Body_Procedure): Removed.
6377         These subprogram have been removed because the attribute
6378         Task_Body_Procedure has been moved to the corresponding task type
6379         or task subtype entity to leave a field free to store the list
6380         of interfaces implemented by a task (for AI-345)
6381         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
6382         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
6383         expression flag Do_Range_Check
6384         (Exception_Junk): Change to Flag7 to accomodate above change
6385         (Box_Present, Default_Name, Specification, Set_Box_Present,
6386         Set_Default_Name, Set_Specification): Expand the expression
6387         "X in N_Formal_Subprogram_Declaration" into the corresponding
6388         two comparisons. Required to use the csinfo tool.
6390         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
6391         "with string" given.
6393         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
6394         expression given.
6396         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
6397         in 2005 mode
6399         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
6400         attribute Task_Body_Procedure rather than the old semantic field that
6401         was available in the task_type_declaration node.
6403         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
6404         interface type definitions.
6405         (P_Formal_Derived_Type_Definition): Modified to handle the list of
6406         interfaces.
6408         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
6409         task type declaration.
6410         (P_Protected): Modified to handle the list of interfaces in a
6411         protected type declaration.
6413 2005-03-15  Doug Rupp  <rupp@adacore.com>
6414             Vincent Celier  <celier@adacore.com>
6416         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
6417         (Gen_Output_File_C): Likewise.
6418         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
6420 2005-03-15  Thomas Quinot  <quinot@adacore.com>
6422         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
6423         is an N_Raise_Constraint_Error node, create a new copy of it without
6424         going through a call to Duplicate_Subexpr.
6426 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6427             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6428             Nicolas Setton  <setton@adacore.com>
6429             Ed Schonberg  <schonberg@adacore.com>
6431         PR ada/19900
6432         PR ada/19408
6433         PR ada/19140
6434         PR ada/20255
6435         * decl.c (gnat_to_gnu_field): Reject aliased components with a
6436         representation clause that prescribes a size not equal to the rounded
6437         size of their types.
6438         (gnat_to_gnu_entity, case E_Component): Always look at
6439         Original_Record_Component if Present and not the entity.
6440         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
6441         of tagged extension types by not making field for components that are
6442         inside the parent.
6443         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
6444         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
6445         expression to the type of the object when the object is constant.
6446         Reverse defer_debug_incomplete_list before traversing it, so that trees
6447         are processed in the order at which they were added to the list. This
6448         order is important when using the stabs debug format.
6449         If we are deferring the output of debug information, also defer this
6450         output for a function return type.
6451         When adding fields to a record, prevent emitting debug information
6452         for incomplete records, emit the information only when the record is
6453         complete.
6454         (components_to_record): New parameter defer_debug.
6455         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
6456         (gnat_to_gnu_field_decl): New function.
6457         (substitution_list, annotate_rep): Call it.
6458         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
6459         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
6460         No longer update discriminants to not be a COMPONENT_REF.
6461         (copy_alias_set): Strip padding from input type; also handle
6462         unconstrained arrays properly.
6464         * gigi.h (write_record_type_debug_info): New function.
6465         Convert to use ANSI-style prototypes. Remove unused
6466         declarations for emit_stack_check, elab_all_gnat and
6467         set_second_error_entity.
6468         (gnat_to_gnu_field_decl): New decl.
6470         * utils.c (write_record_type_debug_info): New function.
6471         (finish_record_type): Delegate generation of debug information to
6472         write_record_type_debug_info.
6473         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
6474         (update_pointer_to): Fix pasto.
6475         (convert) <UNION_TYPE>: Accept slight type variations when
6476         converting to an unchecked union type.
6478         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
6479         replace the N_Freeze_Entity with a null statement.
6481         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
6482         within a constrained subcomponent of an enclosing record, place the
6483         freeze nodes in the scope stack entry for the enclosing record.
6484         (Undelay_Type): New Subprogram.
6485         (Set_Small_Size): Pass T, the type to modify; all callers changed.
6486         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
6487         within records; allow them to have freeze nodes if their base types
6488         aren't frozen yet.
6490         * exp_util.adb (Remove_Side_Effects): Properly test for
6491         Expansion_Delayed and handle case when it's inside an
6492         N_Qualified_Expression.
6494         * sem_ch3.adb (Derived_Type_Declaration): New predicate
6495         Comes_From_Generic, to recognize accurately that the parent type in a
6496         derived type declaration can be traced back to a formal type, because
6497         it is one or is derived from one, or because its completion is derived
6498         from one.
6499         (Constrain_Component_Type): If component comes from source and has no
6500         explicit constraint, no need to constrain in in a subtype of the
6501         enclosing record.
6502         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
6503         Minor change to propagate Is_Ada_2005 flag
6505         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
6506         Expansion_Delayed is False.
6507         (assoc_to_constructor): Ignore fields that have a
6508         Corresponding_Discriminant.
6509         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
6510         function returns "by target", dereference the target pointer using the
6511         type of the actual return value.
6512         <all>: Be prepared for a null gnu_result.
6513         (processed_inline_subprograms): Check flag_really_no_inline
6514         instead of flag_no_inline.
6515         (set_second_error_entity): Remove unused function.
6516         (gnat_to_gnu, case N_Selected_Component): Call
6517         gnat_to_gnu_field_decl.
6518         (assoc_to_constructor): Likewise.
6520 2005-03-15  Robert Dewar  <dewar@adacore.com>
6521             Ed Schonberg  <schonberg@adacore.com>
6522             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6524         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
6525         Must_Be_Byte_Aligned for cases where we do not need to use a
6526         System.Pack_nn unit.
6528         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
6529         as procedures.
6530         Needed now that we do some processing for IN parameters as well. This
6531         may well fix some unrelated errors.
6532         (Expand_Call): Handle case of unaligned objects (in particular those
6533         that come from packed arrays).
6534         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
6535         renamed entity is an inherited operation, re-expand the call using the
6536         original operation, which is the one to call.
6537         Detect attempt to inline parameterless recursive subprogram.
6538         (Represented_As_Scalar): Fix to work properly with private types
6539         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
6540         accurate estimate. Yields True in far fewer cases than before,
6541         improving the quality of code that depends on this test.
6543         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
6544         over both visible and private declarations to remove them from tree,
6545         and mark subprograms declared in package as eliminated, to prevent
6546         spurious use in subsequent compilation of generic units in the context.
6548         * exp_util.ads: Minor cleanup in variable names
6550         * sem_eval.ads, sem_eval.adb: Minor reformatting
6551         (Compile_Time_Known_Bounds): New function
6553 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
6555         * exp_ch7.adb (Convert_View): Use base types of underlying types when
6556         determining whether an unchecked conversion is needed for the argument
6557         of an initialization call.
6559 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
6561         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
6562         that appears in the instantiation rather than the internal subtype
6563         generated in the wrapper package, to avoid anomalies in gigi when the
6564         target is derived from a private type whose full view is an access type.
6566 2005-03-15  Robert Dewar  <dewar@adacore.com>
6568         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
6569         not needed.
6570         Add documentation to replace the use of this flag
6571         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
6572         the x86_64.
6574 2005-03-15  Thomas Quinot  <quinot@adacore.com>
6576         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
6577         here from exp_attr so it can be shared between exp_attr and exp_dist.
6578         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
6579         all TSS names, not a subset thereof, and the previous name introduced
6580         an unnecessarily confusion that a distinction might exist between
6581         "OK" TSS names and some "not OK" TSS names.
6583 2005-03-15  Doug Rupp  <rupp@adacore.com>
6585         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
6586         Command_Name.
6588 2005-03-15  Pascal Obry  <obry@adacore.com>
6589             Eric Botcazou  <ebotcazou@adacore.com>
6591         PR ada/20226
6592         PR ada/20344
6593         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
6594         when IN_RTS. This is to work around a bootstrap path problem.
6596         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
6597         table and pass it to __gnat_install_SEH_handler().
6598         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
6600         * lang.opt: Fix specification of -fRTS=.
6602 2005-03-15  Doug Rupp  <rupp@adacore.com>
6603             Bernard Banner  <banner@adacore.com>
6604             Vincent Celier  <celier@adacore.com>
6605             Arnaud Charlet  <charlet@adacore.com>
6607         PR ada/6852
6608         This change works fine when gnatlib is built from the gcc directory,
6609         but does not work when using the libada Makefile, since GCC_FOR_TARGET
6610         is not passed to ada/Makefile.in, so more work is needed by a
6611         Makefile/configure expert.
6613         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
6614         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
6615         Setup gnatlink switch -M for x86_64 linux, as it is already setup
6616         for Linux x86.
6617         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
6618         Run ranlib on libgccprefix.a
6619         Define PREFIX_OBJS for Darwin, to build libgccprefix.
6620         (ADA_INCLUDE_SRCS): Split Ada packages.
6622 2005-03-15  Robert Dewar  <dewar@adacore.com>
6624         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
6626         * impunit.adb: Add GNAT.UTF_32
6628         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
6630         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
6631         now uses GNAT.UTF_32).
6633         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
6634         capabilities for categorizing characters using Unicode categories
6636 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
6638         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
6639         instantiation that has been rewritten as a package body, retrieve spec
6640         to generate proper name for implicit_with_clause.
6641         (Install_Parents): Recognize a parent that is an instantiation but has
6642         been rewritten as a package declaration during analysis.
6644 2005-03-15  Javier Miranda  <miranda@adacore.com>
6645             Ed Schonberg  <schonberg@adacore.com>
6647         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
6648         parameter reported some error we immediately return. This improves the
6649         behaviour of the frontend in case of errors.
6650         (Install_Parent, Remove_Parent): Introduce new flag
6651         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
6652         ancestor of a generic child unit, when the child is being instantiated.
6653         (Inline_Instance_Body): If we are compiling the private
6654         part or the body of a child unit, restore the proper visibility of the
6655         parents after compiling the instance body.
6657 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
6658             Javier Miranda  <miranda@adacore.com>
6660         PR ada/15608
6661         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
6662         of a private type, in which case it is underlying_type that denotes
6663         the proper task. Also modified to use the new entity attribute
6664         that is directly available in the task type and task subtype entities
6665         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
6666         arrays when other dimensions than the first are constrained by
6667         discriminants of an enclosing record.
6668         (Insert_Explicit_Dereference): If the prefix is an indexed component or
6669         a combination of indexed and selected components, find ultimate entity
6670         and generate the appropriate reference for it, to suppress spurious
6671         warnings.
6672         (Note_Possible_Modification): If an entity name has no entity, return.
6673         (Is_Variable): A function call never denotes a variable.
6674         (Requires_Transient_Scope): For record types, recurse only on
6675         components, not on internal subtypes that may have been generated for
6676         constrained components.
6678 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
6680         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
6681         Eliminated as candidates for resolution. Both efficient, and avoids
6682         anomalies with operators declared in deleted code.
6683         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
6684         expansion is disabled (as when compiling a generic) to prevent spurious
6685         warnings on prefixes of selected components.
6687 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
6689         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
6690         attached to a list before checking whether it appears in the private
6691         declarations of the current package.
6692         (Make_Inequality_Operator): Insert declaration in proper declarative
6693         list rather than just setting the Parent field, so that
6694         Is_Private_Declaration can handle it properly.
6696 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
6698         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
6699         a renaming a body, check that the renamed subprogram in not intrinsic.
6700         (Find_Direct_Name): If several use_visible entities hide
6701         each other, and the context is a predefined file compiled through
6702         rtsfind, keep only the entity that comes from a predefined file.
6704 2005-03-15  Geert Bosch  <bosch@adacore.com>
6706         * s-fatgen.adb (Valid): Extend special exceptions to account for long
6707         long float padding to also cover AMD64 and IA64.
6709 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
6711         * s-imgwch.adb: Add with and use of Interfaces.
6712         (Img_Wide_Character): Change type of Val to Unsigned_16.
6713         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
6715 2005-03-15  Matthew Gingell  <gingell@adacore.com>
6717         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
6719 2005-03-15  Robert Dewar  <dewar@adacore.com>
6721         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
6723         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
6725         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
6727 2005-03-15  Robert Dewar  <dewar@adacore.com>
6729         * s-bitops.adb, s-bitops.ads,
6730         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
6731         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
6732         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
6733         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
6734         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
6735         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
6736         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
6737         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
6738         reformatting.
6740 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6742         * utils2.c (build_binary_op): Fix typo.
6744 2005-03-15  Doug Rupp  <rupp@adacore.com>
6746         * s-crtl.ads (popen,pclose): New imports.
6748 2005-03-15  Cyrille Comar  <comar@adacore.com>
6750         * comperr.adb (Compiler_Abort): remove references to obsolete
6751         procedures in the bug boxes for various GNAT builds.
6753 2005-03-15  Vincent Celier  <celier@adacore.com>
6755         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
6757 2005-03-15  Geert Bosch  <bosch@adacore.com>
6758             Arnaud Charlet  <charlet@adacore.com>
6759             Robert Dewar  <dewar@adacore.com>
6760             Cyrille Comar  <comar@adacore.com>
6761             Sergey Rybin  <rybin@adacore.com>
6763         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
6764         too specific and long-winded to be appropriate for the GNAT User's
6765         Guide.
6766         Warn about use of GCC switches not documented in the GNAT User's Guide,
6767         as these may cause generated code to not conform to Ada semantics.
6768         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
6769         Add documentation for -gnat95 and -gnat05 switches
6770         Remove paragraph documenting obsolete way to refer to third party
6771         libraries.
6772         Add a few references to Ada_05 that were missing.
6773         Update documentation on -gnatZ/-gnatL.
6774         Document limitation when using -m64 under Solaris.
6775         Change the "Name Casing" subsection of the pretty-printer section
6776         according to the changes in the dictionary processing.
6778         * gnat_rm.texi: Document the Ada_05 pragma.
6779         Section on record representation clauses describes the new more
6780         relaxed rules about placement of large packed bit array components.
6781         Add documentation of GNAT.UTF_32
6783 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
6785         * misc.c (gnat_post_options): Turn off structural
6786         aliasing for now.
6788 2005-03-08  Laurent Guerby  <laurent@guerby.net>
6790         * system-linux-sparc.ads: Fix typo in previous commit.
6792 2005-03-07  James A. Morrison  <phython@gcc.gnu.org>
6793             Laurent Guerby  <laurent@guerby.net>
6795         PR ada/20035
6796         * system-linux-sparc.ads: New.
6797         * Makefile.in: Add sparc linux entry.
6799 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
6801         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
6802         parameters as unused.
6804 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
6805         Partial merge from libada-gnattools-branch:
6807         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
6808         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
6809         into code in gnattools/Makefile.in.  Remove direct dependencies on
6810         stamp-tools by tools clauses.
6811         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
6812         * config-lang.in: Add gnattools to $lang_dirs.
6814 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
6816         PR ada/19942
6817         * utils.c (gnat_type_for_mode): Return null instead of ICE because
6818         we asked for an unknown mode.
6820 2005-02-12  Richard Henderson  <rth@redhat.com>
6822         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
6823         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
6825 2005-02-10  Andreas Jaeger  <aj@suse.de>
6827         * init.c (__gnat_initialize): Mark parameter as unused.
6829 2005-02-09  Doug Rupp  <rupp@adacore.com>
6831         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
6832         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
6834 2005-02-09  Doug Rupp  <rupp@adacore.com>
6836         * gnatchop.adb (dup, dup2),
6837         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
6839         * gnatlbr.adb (mkdir),
6840         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
6842         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
6844 2005-02-09  Doug Rupp  <rupp@adacore.com>
6846         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
6848 2005-02-09  Robert Dewar  <dewar@adacore.com>
6849             Thomas Quinot  <quinot@adacore.com>
6850             Javier Miranda  <miranda@adacore.com>
6851             Pascal Obry  <obry@adacore.com>
6852             Ed Schonberg  <schonberg@adacore.com>
6853             Doug Rupp  <rupp@adacore.com>
6854             Gary Dismukes  <dismukes@adacore.com>
6855             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6857         * g-zstspl.ads: New file.
6859         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
6861         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
6862         Ada 95 mode
6863         Add definition of Wide_Wide_Space for AI-285
6865         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
6866         interface (to support Ada 95 and Ada 2005 units).
6867         Add Unbounded_IO files
6868         Add entries for Wide_Wide packages for AI-285
6869         Add list of containers packages to Ada 2005 unit list
6871         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
6872         support new Unbounded_IO package cleanly.
6874         * g-utf_32.ads, g-utf_32.adb: New files.
6876         * Makefile.rtl: Add entry for g-utf_32
6877         Add new files for Unbounded_IO
6878         Adjust make file for new AI-285 wide wide packages
6879         Add AI-302 containers to the run time.
6881         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
6882         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
6883         subprograms for AI-301.
6885         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
6887         * a-stunau.ads: Minor comment correction
6889         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
6890         etc.
6891         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
6892         (Check_RPC): Update to match changes in expanded code.
6893         Clean up unused entity.
6895         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
6896         was not taken into account.
6897         This includes proper initialization with Normalize_Scalars.
6898         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
6899         normalize scalars cases (particularly the latter) to do a better job
6900         of finding invalid representations.
6902         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
6904         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
6905         used
6907         * exp_dist.adb: Add support for wide wide character type
6908         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
6909         private part, generate stub bodies at the end of the private part,
6910         not the visible part.
6911         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
6912         PolyORB support.
6913         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
6914         generic wrapper to execute final processing after completing the
6915         expansion of the RPC receiver for an RACW.
6917         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
6918         packages and attributes.
6919         (Preset_Names): Addition of the new reserved words of Ada 2005,
6920         that is interface, overriding and synchronized.
6921         (Get_Pragma_Id): Give support to the use of the new reserved word
6922         "interface" as a pragma name.
6923         (Is_Pragma_Name): Give support to the use of the new reserved word
6924         "interface" as a pragma name.
6925         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
6926         attribute implementation.
6928         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
6929         checks to entities that are output parameters of Asm operations.
6930         Handle the Stream_Size attribute.
6931         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
6933         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
6935         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
6936         for second parameter being 0.0.
6937         Add support for wide wide character type.
6938         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
6940         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
6941         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
6942         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
6943         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
6944         for wide wide character cases.
6946         * cstand.adb: Create entities for Wide_Wide_Character and
6947         Wide_Wide_String.
6949         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
6950         accordance with AI-258.
6951         Add new declarations for 16/32 bit C character types (Part of AI285)
6953         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
6954         (Obsolescent_Warning): New field
6955         (Rep_Clause): New local subprogram used to share code. Returns the rep
6956         clause for which the name is given in parameter.
6957         (Has_Stream_Size_Clause): New routine.
6958         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
6959         (Address_Clause): Implementation is now using Rep_Clause.
6960         (Alignment_Clause): Idem.
6961         (Size_Clause): Idem.
6963         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
6964         entity in non-Ada 2005 mode and generate warning.
6966         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
6967         (Prag): Code cleanup. Remove old gnat pragma "overriding"
6969         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
6970         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
6971         on the named unit if the pragma is not in the current compilation unit,
6972         so that elaboration calls in the current unit can set up an elaboration
6973         dependency on the named unit, as needed.
6974         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
6975         subprogram as well as for subprograms declared within a package.
6976         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
6977         pragma overriding.
6979         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
6980         to z) to avoid some instances of duplication for Wide_Wide packages.
6982         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
6983         characters.
6985         * scn.adb: Char_Literal_Value field is now a Uint
6987         * scng.adb: Significant rewrite to handle new Ada 2005 features
6988         allowing wide and wide wide characters in program text, e.g. for
6989         identifiers, as described in AI-285.
6990         (Set_Reserved): New procedure, makes setting up keywords cleaner.
6991         (Initialize_Scanner): Register the new reserved words of Ada 2005.
6992         (Scan): Give support to the new reserved words.
6994         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
6995         warning notifying that interface, overriding, and synchronized are
6996         new reserved words.
6997         (P_Pragma): Allow the use of the new reserved word "interface" as
6998         a pragma name.
7000         * gnatls.adb, gnatbind.adb,
7001         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
7002         identifiers named "interface" to "SAL_Interface".
7004         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
7005         (Structured Exception handling).
7006         (Gen_Main_C): Idem.
7008         * bindgen.adb:
7009         (Gen_Main_Ada): Set the default exit code if specified.
7010         (Gen_Main_C): Likewise.
7011         Part of *DC20-006.
7012         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
7013         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
7015         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
7016         new -Xnnn switch.
7018         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
7019         has a collision with the new Ada 2005 "interface" reserved word.
7021         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
7022         generate a warning notifying that interface, overriding, and
7023         synchronized are new reserved words.
7025         * scans.ads (Token_Type): Addition of the tokens corresponding to the
7026         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
7027         and Tok_Synchronized.
7029         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
7030         "dispatching" rather than "primitive" operations, since dispatching
7031         calls are now allowed to abstract formal subprograms (which are not
7032         primitive).
7033         Char_Literal_Value field is now a Uint
7034         (Resolve_Slice): If the prefix is an access to an unconstrained array,
7035         compute the actual subtype of the designated object to impose the proper
7036         index constraints.
7037         (Resolve_Selected_Component): Do not insert an access check if the
7038         prefix is an access type: such a node is expanded into an explicit
7039         dereference, on which the access check is performed anyway. Removes
7040         expensive duplicate checks.
7041         (Resolve_Call): Use new flag Is_Obsolescent and field
7042         Obsolescent_Warning so that pragma Obsolescent works on library
7043         subprograms.
7044         Add support for wide wide character type
7045         (Resolve_Allocator): Replace the error message on wrong null-exclusion
7046         value by a warning message.
7047         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
7048         as fixed-point, and one of the operands is non-static and universal, it
7049         can only be an illegal exponentiation operation, in which case there is
7050         no real value to retrieve.
7052         * exp_strm.adb: Add support for wide wide character type
7053         (Build_Elementary_Input_Call): Compute the size of the stream element by
7054         querying the rep chain to find the Stream_Attribute attribute value.
7055         (Build_Elementary_Write_Call): Ditto.
7057         * sem_aggr.adb: Char_Literal_Value field is now a Uint
7058         Add support for wide wide character type
7059         Replace the error messages on wrong null-exclusion value by warnings
7060         as described in Ada 2005.
7061         (Resolve_Extension_Aggregate): Document the fact that the error
7062         message on class-wide expressions in extensions aggregates.
7064         * sem_case.adb: Add support for wide wide character type
7066         * sem_ch13.adb: Add support for wide wide character type
7067         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
7069         * sem_ch3.adb: Add support for wide wide character type
7070         (Process_Subtype): If constraint is illegal for the type, set Ekind of
7071         now-useless Itype, to prevent cascaded errors on a compiler built
7072         without -gnatp.
7074         * sem_ch8.adb: Add with and use of Sem_Disp.
7075         (Analyze_Subprogram_Renaming): Replace unclean uses of
7076         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
7077         of Corresponding_Spec to Empty).
7078         (Attribute_Renaming): Replace use of Corresponding_Spec with
7079         Corresponding_ Formal_Spec and simplify condition.
7080         (Use_One_Package): Check that scope of homonym of identifier is defined,
7081         before checking whether it is a wrapper package.
7082         Add support for wide wide character type
7084         * sem_eval.adb: Add support for wide wide character type.
7085         (Eval_Arithmetic_Op): Check for compile time known signed integer
7086         overflow in the non-static case.
7087         (Subtypes_Statically_Match): A formal scalar type and its base type do
7088         not statically match.
7090         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
7091         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
7092         subtype).
7093         (Unit_Declaration_Node): Ditto.
7094         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
7095         has a packed array type, the prefix has been rewritten into a type
7096         conversion. Determine variable-ness from the converted expression.
7097         Handle wide wide character cases.
7099         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
7101         * stringt.ads, stringt.adb: Handle full UTF-32 range.
7102         Remove ["0A"] from comment, since it can look like a line terminator.
7103         Currently we don't permit this, but this is under discussion by the
7104         ARG, and it is easy enough to use a different example.
7106         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
7107         handling UTF-32 encoding for wide wide character.
7108         Implement new brackets coding ["hhhhhhhh"]
7109         Add UTF-8 encodings for full UTF-32 range
7111         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
7113         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
7114         bit range Add full UTF-32 support.
7115         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
7116         notify that constraint error will be raised at run-time
7117         because a null value is assigned to a null-excluding object.
7118         Remove some obsolete declarations and make Char_Code
7119         unsigned.
7121         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
7122         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
7123         Rcheck subprograms.
7125         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
7126         wrong null-exclusion value by a warning message.
7127         (Enable_Range_Check): Do range check if the prefix is an
7128         explicit dereference whose designated object is an unconstrained array.
7129         Current algorithm for removing duplicate checks is over-eager in this
7130         case.
7132         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
7133         null-exclusion value by a warning message
7135         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
7136         completely. Add support for Uint2 field
7138         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
7139         exp_prag.adb: Char_Literal_Value field is now a Uint.
7141         * exp_util.adb (Insert_Actions): Replace
7142         N_Formal_Subprogram_Declaration by
7143         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
7144         Char_Literal_Value field is now a Uint.
7146         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
7147         defined for subprogram renaming declarations. When set, the field
7148         indicates the defining entity of a corresponding formal subprogram
7149         when the renaming corresponds to a formal subprogram association in an
7150         instantiation.
7151         (Set_Corresponding_Formal_Spec): New procedure to return
7152         Corresponding_Formal_Spec field.
7153         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
7154         (which is now a subtype).
7155         Char_Literal_Value field is now a Uint
7157         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
7158         pointer to the base of the dispatch table.
7159         Minor changes to comments.
7160         (Controlling_Type): New function for determining the tagged type
7161         associated with a tagged primitive subprogram.
7162         (Expand_Dispatching_Call): Add support for a controlling actual that is
7163         directly a value of type Ada.Tag rather than a tagged object.
7165         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
7166         describing the new layout.
7167         (Dispatch_Table): The expander computes the actual array size, allocates
7168         the Dispatch_Table record accordingly, and generates code that displaces
7169         the base of the record after the Typeinfo_Ptr component. The access to
7170         these components is done by means of local functions.
7171         (Offset_To_Top): New function.
7172         (Typeinfo_Ptr): New function.
7173         (Get_TSD): Modified to access the new position of the TSD.
7174         (Set_TSD): Modified to save the TSD in its new position.
7176         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
7177         case of formal abstract subprograms. Add check and message for -gnat05.
7178         Update comments.
7180         * sem_ch12.adb: Add with and use for Sem_Disp.
7181         (Analyze_Associations): Minor change from "=" to "in" for use of
7182         N_Formal_Subtype_Declaration (which is now a subtype).
7183         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
7184         N_Formal_Subtype_Declaration (which is now a subtype).
7185         (Analyze_Formal_Subprogram): Add handling for
7186         N_Formal_Abstract_Subprogram, marking the formal as abstract and
7187         dispatching, setting the controlling status of the formal parameters
7188         and result, and issuing an error if there is no controlling type for
7189         the formal subprogram.
7190         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
7191         which is an unclean use of that field, we set the new field
7192         Corresponding_Formal_Spec to make the formal subprogram available to
7193         processing in Analyze_Subprogram_Declaration.
7194         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
7195         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
7196         Constrained, so that it is is does not statically match its anonymous
7197         base type.
7199         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
7200         abstract formal subprograms in error check for functions returning
7201         abstract types. Set scope of new designator for
7202         a parameterless subprogram, so that it is available when checking the
7203         body for nested subprograms, before full analysis of said body.
7204         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
7205         subprogram only if inner one comes from source.
7206         (Analyze_Function_Call): If the call is given in object notation, the
7207         analysis of the name rewrites the node and analyzes it with the proper
7208         argument list. After analyzing the name, if the call has been rewritten
7209         and the result type is set, no further analysis is needed.
7210         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
7211         mark in function specification, in a context where the formals are
7212         visible and hide outer homographs.
7214         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
7215         as the tagged type for the cases of abstract formal subprograms and
7216         renamings of those.  Clean up spec comments.
7217         (Check_Dispatching_Context): Add error message to indicate "abstract
7218         procedure", covering the case of a call to a formal abstract procedure
7219         that has statically tagged operands.
7220         (Check_Dispatching_Call): Check for the case of an actual given by
7221         a tag-indeterminate function call whose type is an ancestor of the
7222         containing call's associated tagged type. This situation can occur
7223         for inherited primitives with function defaults. In this case we
7224         use the tagged type's tag directly as the controlling argument for
7225         the calls.
7226         (Expand_Call): Name change on call to Expand_Dispatch_Call.
7228         * sprint.adb (Sprint_Node_Actual): Split
7229         N_Formal_Subprogram_Declaration into two alternatives for the new
7230         cases N_Formal_Abstract_Subprogram_Declaration and
7231         N_Formal_Concrete_Subprogram_Declaration.
7232         Char_Literal_Value field is now a Uint.
7234         * trans.c: Get rid of junk Uint2 reference.
7235         Char_Literal_Value field is now a Uint.
7236         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
7237         (gigi): Correct third arg to gimplify_body.
7239         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
7240         (TYPE_LANG_FLAG_0): Check for record or union.
7242         * treepr.adb: Char_Literal_Value field is now a Uint
7244         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
7245         UI_From_CC.
7247         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
7248         Add full UTF-32 support
7249         Char_Code is now 32 bits
7251         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
7252         wide character UTF_32 line terminators.
7253         Initialize Main_Source_File to avoid error when no main
7254         source is loaded.
7256         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
7257         (Main_Source_File) when no main source has been loaded, to avoid
7258         potential crash.
7260 2005-02-09  Robert Dewar  <dewar@adacore.com>
7262         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
7263         Fix name of Set routine
7265         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
7266         fixed packages.
7268         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
7269         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
7270         fixed packages
7272         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
7273         forms of Get_Line subprograms for AI-301.
7275         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
7276         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
7277         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
7278         a-stwima.ads: Minor reformatting.
7280 2005-02-09  Doug Rupp  <rupp@adacore.com>
7281             Thomas Quinot  <quinot@adacore.com>
7283         * adaint.c, adaint.h
7284         [VMS] (to_ptr32): New function.
7285         (MAYBE_TO_PTR32): New macro.
7286         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
7287         for pointer size.
7288         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
7289         [VMS] (#define fork()): Remove since unneccessary.
7290         (__gnat_set_close_on_exec): New routine to support
7291         GNAT.OS_Lib.Set_Close_On_Exec.
7293         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
7294         the parent side as close-on-exec so that they are not inherited by the
7295         child.
7297         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
7298         set or clear the FD_CLOEXEC flag on a file descriptor.
7300 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
7301             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7303         PR ada/19386
7304         * decl.c:
7305         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
7306         on the field if Pragma Component_Alignment (Storage_Unit).
7307         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
7308         side-effects as if it were a constant; also make SAVE_EXPR to protect
7309         side-effects.
7310         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
7311         UNION_TYPE.
7312         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
7313         (components_to_record): Test it.
7314         Fix improper usage of REFERENCE_CLASS_P.
7316         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
7317         RECORD_TYPE.
7319         * utils2.c: Minor reformatting.
7321         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
7322         handle other cases like RECORD_TYPE.
7324         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
7326 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
7328         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
7329         component of an array of arrays in an assignment context, and the
7330         aggregate has component associations that require sliding on
7331         assignment, force reanalysis of the aggregate to generate a temporary
7332         before the assignment.
7333         (Must_Slide): Make global to the package, for use in Gen_Assign.
7335 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
7337         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
7338         unchecked union with no inferable discriminants, return a
7339         Raise_Program_Error node, rather than inserting it at the point the
7340         type is frozen.
7341         (Expand_Record_Equality, Component_Equality): Handle properly the case
7342         where some subcomponent is an unchecked union whose generated equality
7343         code raises program error.
7345 2005-02-09  Doug Rupp  <rupp@adacore.com>
7347         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
7348         [VMS] (#define exit hack): Remove.
7350 2005-02-09  Pascal Obry  <obry@adacore.com>
7351             Arnaud Charlet  <charlet@adacore.com>
7353         * init.c (__gnat_initialize): Add a new parameter eh which contains the
7354         address of the exception registration. The Win32 version of this
7355         routine calls __gnat_install_SEH_handler() to initialize the SEH
7356         (Structured Exception Handling) handler.
7357         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
7358         SEH (Structured Exception Handling) now.
7359         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
7360         (__gnat_initialize for ppc-vxworks): Adjust comments and the
7361         preprocessor condition protecting the call to the extra eh setup
7362         subprogram, which is only available for the ppc target.
7363         (__gnat_clear_exception_count): replaced reference to
7364         variable taskIdCurrent by call to taskIdSelf(), cleaner.
7366         * seh_init.c: New file.
7368         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
7369         (GNATBIND_OBJS): Idem.
7371         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
7372         routine takes a new parameter (a pointer to the exception registration
7373         for the SEH (Structured Exception Handling) support.
7375         * raise.h: (__gnat_install_SEH_handler): New prototype.
7376         Update copyright notice.
7378         * s-tassta.adb (Task_Wrapper): Declare the exception registration
7379         record and initialize it by calling __gnat_install_SEH_handler.
7381 2005-02-09  Vincent Celier  <celier@adacore.com>
7383         * make.adb (Gnatmake): Do not fail when the main project has no object
7384         directory.
7386 2005-02-09  Doug Rupp  <rupp@adacore.com>
7388         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
7389         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
7390         [VMS]: Add translations for g-enblsp.adb.
7392         * s-asthan-vms.adb: Removed.
7393         * s-asthan-vms-alpha.adb: Added.
7395 2005-02-09  Pascal Obry  <obry@adacore.com>
7397         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
7398         (LIBGNAT_OBJS): Add seh_init.o.
7400 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
7402         PR ada/16592
7403         * Makefile.in: Link all gnat tools with -static-libgcc, since
7404         -shared-libgcc is now used by default on some systems (e.g. linux with
7405         recent binutils).
7406         Remove references to Makefile.prolog/generic, no longer used.
7408 2005-02-09  Vincent Celier  <celier@adacore.com>
7410         * prj-makr.adb (Process_Directory): Put file name in canonical case
7411         before matching against the patterns.
7412         If gnatname has been invoked as <prefix>-gnatname
7413         then invoke the compiler as <prefix>-gcc, not just "gcc".
7415 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
7417         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
7418         with expansion disabled. The actual subtype is needed among other
7419         places when the selected component appears in the context of a loop
7420         bound, and denotes a packed array.
7421         (Operator_Check): Always use the first subtype in the
7422         error message, to avoid the appearance of internal base types.
7423         (Transform_Object_Operation): Copy each actual in full
7424         to the parameter associations of the constructed call, rather than
7425         using the shallow copy mechanism of New_Copy_List. This ensures that
7426         the chaining of named associations is done properly.
7427         (Complete_Object_Operation): Rewrite node, rather than
7428         replacing it, so that we can trace back to the original selected
7429         component.
7431         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
7432         and calls that use object notation, if the called function is not
7433         declared  in a withed unit, place the elaboration constraint on the
7434         unit in the context that makes the function accessible.
7435         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
7436         imposes an elaboration constraint between two packages.
7438 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
7440         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
7441         views of a private type after handling its private dependents, to
7442         maintain proper stack discipline between entry and exit from the
7443         package.
7445 2005-02-09  Cyrille Comar  <comar@adacore.com>
7447         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
7448         Minor reformatting.
7450 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
7452         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
7453         fields for foreign threads.
7455 2005-02-09  Doug Rupp  <rupp@adacore.com>
7457         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
7458         recursion warnings when compiled with -gnatdm.
7460 2005-02-09  Robert Dewar  <dewar@adacore.com>
7462         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
7463         Slight fix to documentation of -gnaty with no parameters
7465         * xr_tabls.ads: Add ??? comment for missing overall comment
7467         * xsinfo.adb: Make default file name be sinfo.h, since this is what
7468         we now use by default.
7470         * xsnames.adb: Adjust end of file test to look for five space followed
7471         by '#' instead of six spaces. The format of xsnames.adb was modified
7472         in the last update.
7474         * a-numeri.ads: Add reference to AI-388 for greek letter pi
7475         identifier.
7477         * clean.adb: Minor reformatting.
7479         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
7480         gnatname.adb: Minor reformatting
7481         Add 2005 to copyright output when utility is run
7483         * csets.adb: Eliminate obsolete comment
7485         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
7486         Update comments.
7488         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
7490 2005-02-09  Sergey Rybin  <rybin@adacore.com>
7492         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
7493         the difference between compact and incompact layout and add the record
7494         representation clause to the example illustrating different layouts.
7495         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
7496         component clauses").
7498 2005-02-09  Florian Villoing  <villoing@adacore.com>
7500         * gnat_ugn.texi: Fix typos.
7501         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
7502         @file.
7503         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
7504         in the generated documentation.
7506 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
7508         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
7509         longer supported.
7510         Update linker wrapper when linking with non GNU C++.
7512 2005-02-09  Pascal Obry  <obry@adacore.com>
7514         * gnat_ugn.texi:
7515         Document the procedure to debug the DllMain routine on Windows.
7516         Add note about -funwind-tables and mixed Ada and C/C++ programming in
7517         ZCX mode.
7518         Document new BIND qualifer /RETURN_CODES=VMS.
7520 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
7522         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
7523         Edited gnatmetric chapter
7525 2005-02-09  Robert Dewar  <dewar@adacore.com>
7527         * gnat_rm.texi:
7528         Changes to document new wide wide character support
7529         For AI-285
7530         Update documentation on Normalize_Scalars and Initialize_Scalars
7532 2005-02-09  Pascal Obry  <obry@adacore.com>
7534         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
7536 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
7538         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
7539         from the VxWorks kernel) that is needed for getting the active
7540         priority of the different tasks.
7542         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
7543         Use a pragma Elaborate_Body in the spec file instead.
7544         Noticed by code reading.
7546 2005-02-09  Thomas Quinot  <quinot@adacore.com>
7548         * exp_util.ads: Minor correction in comment.
7550 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
7552         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
7553         since this procedure is now too complex to be worth inlining.
7555 2005-02-09  Richard Henderson  <rth@redhat.com>
7557         * utils.c (gnat_define_builtin): Remove.
7558         (gnat_install_builtins): Use build_common_builtin_nodes.
7560 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
7562         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
7563         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
7564         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
7565         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
7566         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
7567         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
7568         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
7569         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
7570         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
7571         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
7572         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
7573         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
7574         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
7575         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
7576         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
7577         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
7578         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
7579         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
7580         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
7581         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
7582         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
7583         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
7584         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
7585         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
7586         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
7587         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
7588         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
7589         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
7590         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
7591         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
7592         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
7593         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
7594         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
7595         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
7596         library.
7598 2005-01-27  Laurent Guerby  <laurent@guerby.net>
7600         * Makefile.in: Fix a-intnam.ads from previous commit,
7601         add 2005 to copyright.
7602         * a-intman-rtems.ads: Renamed to...
7603         * a-intnam-rtems.ads:
7605 2005-01-27  Laurent Guerby  <laurent@guerby.net>
7607         * Makefile.in: Rename GNAT RTEMS specific files.
7608         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
7609         5rosinte.ads, 5rparame.adb: Replaced by files below.
7610         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
7611         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
7613 2005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
7614             Laurent Guerby  <laurent@guerby.net>
7616         PR ada/19488
7617         * 5rosinte.ads: Add No_Key constant.
7618         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
7619         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
7621 2005-01-26  Laurent Guerby  <laurent@guerby.net>
7623         PR ada/19414
7624         * i-cobol.adb (Valid_Numeric): Handle zero length case.
7626 2005-01-20  Richard Henderson  <rth@redhat.com>
7628         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
7629         a-intnam-linux.ads and system-linux-alpha.ads.
7630         * a-intnam-linux-alpha.ads: Remove file.
7631         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
7632         * system-linux-alpha.ads: New file.
7634 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
7636         PR ada/13470
7637         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
7638         set to the new string.
7640 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
7642         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
7643         to True.
7645 2005-01-18  Richard Henderson  <rth@redhat.com>
7647         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
7648         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
7649         for alpha-linux.
7650         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
7652 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
7654         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
7655         (GCC_ZCX_Support): Likewise.
7657 2005-01-11  Bastian Blank  <waldi@debian.org>
7659         * system-linux-s390.ads: Define Preallocated_Stacks.
7660         * system-linux-s390x.ads: Likewise.
7662 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
7664         * gnat_ugn.texi: Fix texi errors with null variables.
7666 2005-01-03  Thomas Quinot  <quinot@adacore.com>
7668         * gen-soccon.c: New utility program to generate g-soccon.ads
7669         automatically.
7671         * socket.c, gsocket.h: Split inclusion of system header files into a
7672         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
7674         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
7675         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
7676         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
7677         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
7678         should not be edited by hand anymore, but should be regenerated using
7679         gen-soccon.
7681 2005-01-03  Robert Dewar  <dewar@adacore.com>
7682             Ed Schonberg  <schonberg@adacore.com>
7683             Vincent Celier  <celier@adacore.com>
7685         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
7686         on/off, since this is an obsolescent feature, for which we now generate
7687         a warning.
7689         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
7690         warning mode is set and obsolescent usage of this attribute occurs.
7691         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
7692         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
7693         predates, and partly motivates, the adoption of the AI.
7694         Implement new Ada 2005 attribute Mod
7696         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
7697         attribute Mod.
7699         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
7701         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
7702         pragma restrictions.
7703         New entry for Ada 2005 attribute Mod.
7705         * par-prag.adb:
7706         Add recognition of new pragma Restrictions No_Dependence
7707         Recognize restriction No_Obsolescent_Features at parse time
7709         * bcheck.adb: Add circuitry for checking for consistency of
7710         No_Dependence restrictions.
7712         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
7713         restrictions.
7715         * restrict.ads, restrict.adb: Add subprograms to deal with
7716         No_Dependence restrictions.
7718         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
7719         restrictions.
7721         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
7722         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
7724         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
7725         dummy parameter to scng instantiation.
7726         Needed for new restriction No_Obsolescent_Features
7728         * scn.adb: (Obsolescent_Check): New procedure
7729         Needed for new restriction No_Obsolescent_Features
7731         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
7732         specified by AI-285, needed for implementation of AI-388 (adding greek
7733         pi to Ada.Numerics).
7734         Add new generic formal to scng, needed for new restriction
7735         No_Obsolescent_Features.
7737         * s-rident.ads: Add new restriction No_Obsolescent_Features.
7739         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
7740         restrictions lines.
7741         (Scan_ALI): When finding an unexpected character on an R line, raise
7742         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
7743         Ignore_Errors is True, default restrictions are set and scanning of the
7744         ALI file continues with the next line. Also, when Bad_R_Line is raised
7745         and Ignore_Errors is True, skip to the end of le line.
7747         * sem_ch10.adb: Check that explicit with's do not violate
7748         No_Dependence restrictions.
7749         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
7750         illegal context clauses containing child units of instance.
7752         * sem_prag.adb: Processing and checking for new No_Dependence
7753         restrictions.
7754         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
7755         analyze and check the External argument.
7757         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
7759 2005-01-03  Robert Dewar  <dewar@adacore.com>
7761         * atree.adb: Add a fifth component to entities
7762         This allows us to add 32 flags and four new fields
7764         * atree.ads: Add a fifth component to entities
7765         This allows us to add 32 flags and four new fields
7767         * einfo.ads, einfo.adb: Document new fields and new flags now available
7768         Add routines for printing new fields
7770         * treepr.adb: Call routines to print out additional fields if present
7772 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
7774         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
7775         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
7777         * Makefile.in: Add support to build shared Ada libraries on solaris x86
7778         Remove gpr2make, replaced by gprmake.
7779         Remove references to gnatmem and libaddr2line.
7780         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
7781         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
7782         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
7783         a-numaux-darwin.ads and a-numaux-darwin.adb
7784         Enable mlib-tgt-lynxos.adb on lynxos.
7786         * Make-lang.in: Remove rules for gpr2make.
7787         When generating sdefault.adb, do not call Relocate_Path
7788         on S3 for function Target_Name, as it is not a path.
7789         Remove references to gnatmem and libaddr2line.
7791         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
7792         files.
7794 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
7796         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
7797         address is incompatible with its base type alignment constraints when
7798         this can be decided statically.
7800 2005-01-03  Olivier Hainque  <hainque@adacore.com>
7802         * decl.c (compatible_signatures_p): New function. The intended purpose
7803         is to check if two function signatures for a call-site and a callee are
7804         compatible enough for the call to be valid. The underlying purpose is
7805         to check if a call to a mapped builtin is using the right interface.
7806         The current code actually does not check antyhing - this a placeholder
7807         for future refinements.
7808         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
7809         builtin calls for convention Intrinsic.
7811         * gigi.h (builtin_decl_for): Declare (new function).
7813         * utils.c (gnat_install_builtins): Install the target specific builtins.
7814         (builtin_decl_for): New function, provide a dummy body for now.
7816 2005-01-03  Geert Bosch  <bosch@adacore.com>
7818         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
7819         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
7820         (Pred): Implement in terms of Succ.
7822         * trans.c (convert_with_check): Reimplement conversion of float to
7823         integer.
7825 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
7826             Vincent Celier  <celier@adacore.com>
7828         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
7829         bounds can be negative, and must be declared Int, not Nat.
7831         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
7832         array is checked after using the index in the array.
7834         * makegpr.adb (Add_Switches): Check if there is a package for the
7835         processor. If there is no package, do not look for switches.
7837 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
7839         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
7840         generation of predefined stream operations (specs and bodies) should
7841         proceed. Under various restrictions these subprograms must not be
7842         generated.
7844 2005-01-03  Thomas Quinot  <quinot@adacore.com>
7846         * exp_dist.adb:
7847         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
7848         amount of PCS-specific code in RACW stubs generation.
7849         (Copy_Specification): Set Etype on copied formal parameter entities, as
7850         this information is needed for PolyORB stubs generation.
7851         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
7852         variable Dynamic_Async.
7853         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
7854         (Build_RPC_Receiver_Specification): Make generic again, as recent
7855         changes have allowed RPC receivers to have the same profile for both
7856         variants of the PCS.
7857         Reorganise RPC receiver generation to reduce differences between the
7858         structure of GARLIC and PolyORB RPC receivers.
7859         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
7860         PCS-specific.
7861         Simplify elaboration code for RCI packages.
7863         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
7864         generation to reduce differences between the structure of GARLIC and
7865         PolyORB RPC receivers.
7867         * s-stratt.adb: Fix typo in comment.
7869 2005-01-03  Thomas Quinot  <quinot@adacore.com>
7871         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
7872         copied from Make_Init_Call).
7874         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
7875         reads and assignments on a temporary variable declared with appropriate
7876         discriminants.
7878 2005-01-03  Robert Dewar  <dewar@adacore.com>
7880         * i-c.adb (To_C): Raise CE if string is null and Append_Null
7882 2005-01-03  Robert Dewar  <dewar@adacore.com>
7884         * i-cstrin.adb (Update): Do not append a null in form called with a
7885         String. This avoids unintended behavior.
7887 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
7889         PR ada/17527
7890         * init.c: Fix warnings on Free BSD section.
7892 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
7894         PR ada/16949
7895         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
7896         xsinfo.adb).
7898 2005-01-03  Vincent Celier  <celier@adacore.com>
7900         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
7901         libraries when Unique_Compile is True (-u switch).
7902         (Gnatmake): ditto.
7904 2005-01-03  Robert Dewar  <dewar@adacore.com>
7906         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
7907         upper case letter or underscore after W, as allowed by spec.
7909 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
7911         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
7912         darwin port by using proper type definitions from header files.
7913         Use SIGTERM instead of SIGABRT for SIGADAABORT.
7915 2005-01-03  Robert Dewar  <dewar@adacore.com>
7917         * par.adb: Enhance error message handling for configuration file
7918         pragmas.
7920 2005-01-03  Robert Dewar  <dewar@adacore.com>
7922         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
7923         removed during the previous update (test properly for case of dividing
7924         largest negative number by -1, which generates overflow).
7926 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
7927             Sergey Rybin  <rybin@adacore.com>
7929         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
7930         to use as the defining identifier for a formal package.
7931         (Remove_Parent): If the instance takes place within (an instance of)
7932         a sibling, preserve private declarations of common parent.
7934 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
7936         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
7937         to determine whether one of the operands is a fixed-point type for
7938         which a user-defined multiplication or division operation might be
7939         defined.
7941         * sem_res.adb (Valid_Conversion): The legality rules for conversions
7942         of access types are symmetric in Ada 2005: either designated type can
7943         be unconstrained.
7945 2005-01-03  Vincent Celier  <celier@adacore.com>
7947         * s-fileio.adb (Temp_File_Record): Change length of string component
7948         Name from L_tmpnam + 1 to max_path_len + 1.
7950 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
7952         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
7953         Self_Id.Deferral_Level = 0.
7954         (Do_Pending_Action): Move this function to the spec.
7956         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
7957         Do_Pending_Action explicitely when needed, in case we're using
7958         No_Abort restrictions.
7960         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
7961         deferral level since it will not get changed by the generated code.
7962         Keeping a default value of 1 would prevent some operations (e.g.
7963         select or delay) to proceed successfully.
7965 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
7966             Robert Dewar  <dewar@adacore.com>
7967             Cyrille Comar  <comar@adacore.com>
7969         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
7970         porting guide chapter (vms version).
7971         Revised doc title (removed "for native platforms") and subtitle.
7972         Add discussion on warning flag for obsolescent features. First we
7973         note that it applies to obsolete GNAT features, which was previously
7974         omitted. Second we contrast the behavior with that of the new
7975         Ada 2005 AI-368 restriction No_Obsolescent_Features.
7976         Preliminary rewriting of GNAT & libraries chapter in order to take
7977         into account default project locations & new project manager
7978         capabilities.
7980 2005-01-03  Robert Dewar  <dewar@adacore.com>
7982         * cstand.adb (Create_Operators): Clean up format and documentation of
7983         unary and binary operator result tables. No change in code, just
7984         reformatting and addition of comments.
7986         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
7987         sem_ch2.adb: Minor reformatting
7989         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
7990         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
7991         comments for Tree_Read and Tree_Write.
7993 2005-01-03  Pascal Obry  <obry@adacore.com>
7995         * exp_attr.ads: Minor reformatting.
7997 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
7999         * comperr.adb (Compiler_Abort): Add specialized message for GAP
8000         versions.
8002 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
8004         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
8005         whether the ancestor type is private, as may be the case with nested
8006         instantiations.
8010 Copyright (C) 2005 Free Software Foundation, Inc.
8012 Copying and distribution of this file, with or without modification,
8013 are permitted in any medium without royalty provided the copyright
8014 notice and this notice are preserved.