12005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2
3	* s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
4
52005-12-12  Arnaud Charlet  <charlet@adacore.com>
6
7	* Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
8	needed.
9
102005-12-12  Arnaud Charlet  <charlet@adacore.com>
11
12	* Make-lang.in: Update dependencies
13
142005-12-12  Arnaud Charlet  <charlet@adacore.com>
15
16	* Make-lang.in: Add rule for ada/exp_sel.o
17
182005-12-12  Arnaud Charlet  <charlet@adacore.com>
19
20	* Makefile.in (mingw section): Remove EH_MECHANISM setting.
21
222005-12-09  Arnaud Charlet  <charlet@adacore.com>
23
24	* gnatvsn.ads (Library_Version): Bump to version 4.2
25	(ASIS_Version_Number): Bumped.
26
272005-12-09  Doug Rupp  <rupp@adacore.com>
28
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.
33
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__.
38
39	* butil.adb: Change some Hostparm.OpenVMS checks to
40	Targparm.OpenVMS_On_Target.
41
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__.
47
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__.
58
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__.
63
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__.
68
69	* targext.c: New file.
70
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.
79
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.
83
84	* osint.adb Change some Hostparm.OpenVMS checks to
85	Targparm.OpenVMS_On_Target.
86	(Object_File_Name): Use target object suffix.
87
88	* osint.ads (Object_Suffix): Remove, no longer used.
89	(Target_Object_Suffix): Initialize with target object suffix.
90
91	* rident.ads: Add special exception to license.
92
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.
97
98	* targparm.ads: Add special exception to license.
99
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.
104
105	* make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
106	(Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
107
108	* osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
109	target object suffix.
110
1112005-12-09  Jose Ruiz  <ruiz@adacore.com>
112	    Quentin Ochem  <ochem@adacore.com>
113	    Florian Villoing  <villoing@adacore.com>
114
115	* a-taster.ads, a-taster.adb: New files.
116
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.
121
122	* a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
123	handler because of an unhandled exception.
124
125	* a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
126	System.Tasking.Utilities instead of that in System.Tasking.Stages.
127
128	* s-finimp.adb (initialization code): Modify the soft link for the
129	finalization of the global list instead of Adafinal.
130
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.
142
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.
154
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.
161
162	* s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
163	Fall_Back_Handler, and Specific_Handler.
164
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.
178
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.
187
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.
194
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.
199
200	* bindusg.adb: (Bindusg): Added documentation for -u option.
201
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.
205
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.
209
210	* opt.ads: Added flags used by dynamic stack measurement.
211	(Max_Line_Length): Remove (not used anymore)
212
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.
218
219	* s-stausa.ads: Complete implementation.
220
221	* switch-b.adb: Added handling of -u switch for dynamic stack analysis.
222
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.
226
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.
230
2312005-12-09  Nicolas Setton  <setton@adacore.com>
232
233	* adaint.c (__gnat_locate_regular_file): Return immediately if
234	file_name is empty.
235
2362005-12-09  Javier Miranda  <miranda@adacore.com>
237	    Hristian Kirtchev  <kirtchev@adacore.com>
238
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.
264
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.
271
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.
293
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.
298
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.
309
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.
322
323	* exp_sel.ads, exp_sel.adb: New files.
324
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.
338
3392005-12-09  Olivier Hainque  <hainque@adacore.com>
340
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.
347
3482005-12-09  Matthew Heaney  <heaney@adacore.com>
349
350	* a-convec.adb (Merge): Added assertions to check whether vector params
351	are sorted.
352
353	* a-coinve.adb (Merge): Added assertions to check whether vector params
354	are sorted.
355
356	* a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
357	draft.
358	(Cursor'Read): raises PE
359
360	* a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
361	to its default value.
362
363	* a-cihama.adb: Manually check whether cursor's key and elem are
364	non-null
365
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
369
370	* a-cdlili.ads: (Splice): Changed param name and param mode
371
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
375
376	* a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
377	(Write): declare Stream param as not null
378
379	* a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
380	an exception message.
381
3822005-12-09  Thomas Quinot  <quinot@adacore.com>
383	    Robert Dewar  <dewar@adacore.com>
384
385	* hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
386	which is the absolute maximum length we can support.
387
388	* frontend.adb: For the processing of configuration pragma files,
389	remove references to Opt.Max_Line_Length, which is not checked anymore.
390
391	* namet.ads (Name_Buffer): Adjust size to reflect increase on max line
392	length.
393
394	* scn.adb, scng.adb:
395	Always check line length against the absolute supported maximum,
396	Hostparm.Max_Line_Length.
397
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)
404
405	* switch-c.adb: New interface for Set_Style_Check_Options
406
407	* stylesw.ads (Set_Style_Check_Options): New interface returning error
408	msg.
409
4102005-12-09  Javier Miranda  <miranda@adacore.com>
411
412	* exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
413	with IP subprogram were only supported if there were limited types.
414
415	* sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
416	records with IP subprogram were only supported if there were limited
417	types.
418
4192005-12-09  Olivier Hainque  <hainque@adacore.com>
420	    Eric Botcazou  <ebotcazou@adacore.com>
421
422	* trans.c (tree_transform, emit_check): Adjust calls to
423	build_call_raise, passing the now expected GNAT_NODE argument.
424
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.
428
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.
435
4362005-12-09  Pascal Obry  <obry@adacore.com>
437
438	* g-diopit.adb (Find): Fix test to exit the iterator and make sure that
439	the iterator is quitting iteration on parent directory.
440
4412005-12-09  Javier Miranda  <miranda@adacore.com>
442
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.
447
4482005-12-09  Robert Dewar  <dewar@adacore.com>
449
450	* exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
451	parameter in call to Image_Wide_Character.
452
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.
457
4582005-12-09  Robert Dewar  <dewar@adacore.com>
459	    Javier Miranda  <miranda@adacore.com>
460	    Ed Schonberg  <schonberg@adacore.com>
461
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.
473
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.
477
4782005-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>
483
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.
489
490	* einfo.ads (Itype_Printed): New flag
491	Move Is_Wrapper_Package to proper section
492	Add missing Inline for Is_Volatile
493
494	* output.ads, output.adb (Write_Erase_Char): New procedure
495	(Save/Restore_Output_Buffer): New procedures
496	(Save/Restore_Output_Buffer): New procedures
497
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
502
503	* par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
504	use of "limited" in declaration.
505
506	* sinfo.ads, sinfo.adb:
507	Formal derived types can carry an explicit "limited" indication.
508
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.
543
5442005-12-09  Robert Dewar  <dewar@adacore.com>
545
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.
552
5532005-12-09  Vincent Celier  <celier@adacore.com>
554
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.
564
565	* prj-attr.adb: Add package Check and its attributes
566
567	* vms_conv.ads (Command_Type): New command Check, for gnatcheck
568
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
573
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
578
5792005-12-09  Thomas Quinot  <quinot@adacore.com>
580
581	* mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
582	command line switch overruns the output buffer.
583
5842005-12-09  Robert Dewar  <dewar@adacore.com>
585
586	* sem_prag.adb: Processing for new pragma Complete_Representation
587	(Analyze_Pragma, case Debug): Implement two argument form.
588
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.
592
593	* sem_ch13.adb: Implement new pragma Complete_Representation.
594
595	* snames.adb, snames.ads, snames.h: Entry for new pragma
596	Complete_Representation.
597
5982005-12-09  Gary Dismukes  <dismukes@adacore.com>
599
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).
607
6082005-12-09  Ed Schonberg  <schonberg@adacore.com>
609
610	* sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
611	anonymous access types.
612
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).
616
6172005-12-09  Ed Schonberg  <schonberg@adacore.com>
618
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.
623
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.
629
6302005-12-09  Robert Dewar  <dewar@adacore.com>
631
632	* sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
633	for case where spec is categorized.
634
6352005-12-09  Javier Miranda  <miranda@adacore.com>
636
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.
641
6422005-12-09  Ed Schonberg  <schonberg@adacore.com>
643
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.
647
6482005-12-09  Robert Dewar  <dewar@adacore.com>
649
650	* sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
651	decoded names.
652
6532005-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>
659
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
671
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
678
679	* types.ads (Column_Number): Update documentation.
680
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).
684
685	* system-mingw.ads: (Underlying_Priorities): Update comment.
686
6872005-12-09  Robert Dewar  <dewar@adacore.com>
688
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.
698
6992005-12-09  Robert Dewar  <dewar@adacore.com>
700
701	* s-vaflop-vms-alpha.adb: (Ne_F): New function
702	(Ne_G): New function
703
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.
708
7092005-12-09  Thomas Quinot  <quinot@adacore.com>
710
711	* exp_aggr.ads: Fix typo in comment.
712	???-mark Convert_Aggr_In_Assignment as needing documentation.
713
7142005-12-09  Gary Dismukes  <dismukes@adacore.com>
715
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.
720
7212005-12-09  Matthew Gingell  <gingell@adacore.com>
722
723	* g-exctra.ads: Fix typo in comment.
724
7252005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
726
727	* utils.c: Minor reformatting.
728
7292005-12-09  Robert Dewar  <dewar@adacore.com>
730
731	* g-soccon.ads:
732	Further comment fixes to make the status of the default file clear
733
734	* s-bitops.adb: Clarify comment for Bits_Array
735
7362005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
737
738	* Make-lang.in (ada.install-normal): Remove.
739
7402005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
741
742	* Make-lang.in: Remove all dependencies on s-gtype.
743
7442005-12-05  Richard Guenther  <rguenther@suse.de>
745
746	* utils.c (convert): Use fold_convert where appropriate.
747
7482005-12-05  Paolo Bonzini  <bonzini@gnu.org>
749
750	* Makefile.in (gnatlib): Fix regex, using \. instead of . when
751	a period is meant.
752
7532005-12-02  Richard Guenther  <rguenther@suse.de>
754
755	* trans.c (gnat_gimplify_expr): Use buildN instead of build.
756
7572005-12-01  Roger Sayle  <roger@eyesopen.com>
758
759	* utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
760	nodes.
761
7622005-11-23  Laurent Guerby  <laurent@guerby.net>
763
764	* mlib-prj.adb (Build_Library): Initialize Delete.
765
7662005-11-21  Joel Sherrill  <joel.sherrill@oarcorp.com>
767
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.
771
7722005-11-19  Richard Guenther  <rguenther@suse.de>
773	Roger Sayle  <roger@eyesopen.com>
774
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.
779
7802005-11-18  Laurent Guerby  <laurent@guerby.net>
781
782	PR ada/24857
783	* Makefile.in: Use s-auxdec-empty for RTEMS.
784
7852005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
786
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.
792
7932005-11-17  Laurent Guerby  <laurent@guerby.net>
794
795	PR ada/24857
796	* s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
797
7982005-11-16  Richard Guenther  <rguenther@suse.de>
799
800	* Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
801
8022005-11-16  Joel Sherrill  <joel.sherrill@oarcorp.com>
803
804	PR ada/24855
805	* raise-gcc.c: Add missing stdarg.h include.
806
8072005-11-16  Richard Guenther  <rguenther@suse.de>
808
809	* Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
810	(ada/misc.o): Likewise.
811
8122005-11-14  Thomas Quinot  <quinot@adacore.com>
813
814	* g-soccon.ads: Minor reformatting. Update comments.
815
816	* gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
817	gain visibility on the declaration of struct timeval.
818
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.
829
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.
833
834	* g-socthi-mingw.adb:
835	(Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
836
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.
843
844	* g-socthi-vxworks.adb:  Add error handling circuitry.
845
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.
853
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.
859
860	* socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
861	hosts database last error code.
862
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.
868
8692005-11-14  Robert Dewar  <dewar@adacore.com>
870	    Ed Schonberg  <schonberg@adacore.com>
871
872	PR ada/18434
873	* types.ads: Include All_Checks in Suppress_Array
874
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
885
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.
897
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.
907
908	* sem_prag.ads: Minor reformatting
909
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.
919
920	* s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
921	statement.
922
923	* s-taprop-solaris.adb:
924	Change some <= to =, to avoid new warning
925
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)
929
9302005-11-14  Robert Dewar  <dewar@adacore.com>
931
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.
935
936	* s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
937
9382005-11-14  Matthew Gingell  <gingell@adacore.com>
939
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.
944
9452005-11-14  Vincent Celier  <celier@adacore.com>
946
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
953
9542005-11-14  Doug Rupp  <rupp@adacore.com>
955
956	* system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
957	private part.
958
9592005-11-14  Arnaud Charlet  <charlet@adacore.com>
960
961	* s-traces-default.adb, s-trafor-default.ads,
962	s-tratas-default.adb: Fix compilation errors.
963
9642005-11-14  Jose Ruiz  <ruiz@adacore.com>
965
966	* s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
967	raising the exception so the memory used is freed.
968
9692005-11-14  Arnaud Charlet  <charlet@adacore.com>
970
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.
974
975	* s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
976	no longer used.
977
9782005-11-14  Pascal Obry  <obry@adacore.com>
979	    Vincent Celier  <celier@adacore.com>
980
981	* gnatdll.adb (Parse_Command_Line): Remove redundant use of
982	GNAT.Command_Line.
983
984	* memroot.adb: Remove redundant with/use clause on
985	System.Storage_Elements.
986
9872005-11-14  Arnaud Charlet  <charlet@adacore.com>
988
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.
996
997	* a-exexpr-gcc.adb, raise-gcc.c: New file.
998
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
1002
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.
1022
1023	* raise.c: Move all GCC EH-related routines to raise-gcc.c
1024
10252005-11-14  Jose Ruiz  <ruiz@adacore.com>
1026
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.
1033
10342005-11-14  Thomas Quinot  <quinot@adacore.com>
1035	    Olivier Hainque  <hainque@adacore.com>
1036	    Eric Botcazou  <ebotcazou@adacore.com>
1037
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.
1077
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.
1104
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.
1110
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.
1123
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.
1142
1143	* repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
1144
1145	* repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
1146
11472005-11-14  Matthew Heaney  <heaney@adacore.com>
1148
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.
1157
11582005-11-14  Olivier Hainque  <hainque@adacore.com>
1159
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.
1163
11642005-11-14  Matthew Gingell  <gingell@adacore.com>
1165	    Olivier Hainque  <hainque@adacore.com>
1166
1167	* tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
1168	ia64 HP-UX.
1169
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.
1175
11762005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
1177	    Javier Miranda  <miranda@adacore.com>
1178
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.
1183
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).
1187
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.
1193
11942005-11-14  Emmanuel Briot  <briot@adacore.com>
1195
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.
1199
12002005-11-14  Vincent Celier  <celier@adacore.com>
1201
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
1209
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
1215
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.
1226
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
1231
1232	* prj-attr.adb: New project level attribute name Library_ALI_Dir
1233
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.
1240
1241	* mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
1242	all temporary files.
1243
12442005-11-14  Robert Dewar  <dewar@adacore.com>
1245	    Ed Schonberg  <schonberg@adacore.com>
1246
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
1253
1254	* ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
1255	desirable
1256
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.
1259
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
1263
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)
1269
1270	* debug.adb: Introduce d.f flag for compiler
1271	Add -da switch for binder
1272
12732005-11-14  Ed Schonberg  <schonberg@adacore.com>
1274	    Cyrille Comar  <comar@adacore.com>
1275
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.
1288
12892005-11-14  Robert Dewar  <dewar@adacore.com>
1290	    Hristian Kirtchev  <kirtchev@adacore.com>
1291
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.
1299
1300	* s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
1301	to avoid warnings.
1302
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
1306
1307	* exp_attr.adb: Implement Machine_Rounding attribute
1308
1309	* snames.h: Add entry for Machine_Rounding attribute
1310
13112005-11-14  Javier Miranda  <miranda@adacore.com>
1312	    Robert Dewar  <dewar@adacore.com>
1313	    Hristian Kirtchev  <kirtchev@adacore.com>
1314
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
1331
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.
1335
1336	* Makefile.rtl: Add new instantiations of system.fat_gen
1337
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.
1341
1342	* s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
1343	s-fvagfl.ads: New files.
1344
13452005-11-14  Cyrille Comar  <comar@adacore.com>
1346	    Thomas Quinot  <quinot@adacore.com>
1347
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.
1361
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.
1366
13672005-11-14  Thomas Quinot  <quinot@adacore.com>
1368
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.
1372
13732005-11-14  Pascal Obry  <obry@adacore.com>
1374
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.
1381
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.
1386
13872005-11-14  Robert Dewar  <dewar@adacore.com>
1388
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).
1393
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.
1401
14022005-11-14  Thomas Quinot  <quinot@adacore.com>
1403	    Robert Dewar  <dewar@adacore.com>
1404	    Ed Schonberg  <schonberg@adacore.com>
1405
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.
1416
1417	* sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
1418	null object.
1419
14202005-11-14  Javier Miranda  <miranda@adacore.com>
1421
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.
1427
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.
1433
14342005-11-14  Robert Dewar  <dewar@adacore.com>
1435
1436	* impunit.adb: Exclude container helper units not intended for use by
1437	users.
1438
14392005-11-14  Ed Schonberg  <schonberg@adacore.com>
1440
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.
1447
14482005-11-14  Arnaud Charlet  <charlet@adacore.com>
1449
1450	PR ada/23732
1451	* gnatvsn.ads (Library_Version): Bump to 4.1
1452
14532005-11-14  Robert Dewar  <dewar@adacore.com>
1454
1455	* g-debpoo.adb (Set_Valid): Use Integer_Address instead of
1456	Storage_Offset to avoid wrap around causing invalid results.
1457
14582005-11-14  Pascal Obry  <obry@adacore.com>
1459
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.
1464
14652005-11-14  Robert Dewar  <dewar@adacore.com>
1466	    Vincent Celier  <celier@adacore.com>
1467
1468	* gprep.adb: Implement -C switch to scan comments
1469
1470	* scng.adb: Scan comment symbol separately if Replace_In_Comments set
1471
1472	* scans.ads: Comment updates (including new use of Tok_Comment in
1473	preprocessing)
1474
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
1479
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
1483
14842005-11-14  Arnaud Charlet  <charlet@adacore.com>
1485
1486	* g-regpat.adb (Fail): raise Expression_Error including the diagnostic
1487	message, friendlier.
1488
14892005-11-14  Robert Dewar  <dewar@adacore.com>
1490
1491	* g-spitbo.adb: (Hash): Rotate by 3 instead of 1
1492
14932005-11-14  Doug Rupp  <rupp@adacore.com>
1494
1495	* init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
1496
14972005-11-14  Robert Dewar  <dewar@adacore.com>
1498
1499	* interfac.ads: Change declarations of IEEE float types so that we no
1500	longer need a separate version of this package for VMS.
1501
15022005-11-14  Ed Schonberg  <schonberg@adacore.com>
1503
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.
1508
15092005-11-14  Vincent Celier  <celier@adacore.com>
1510
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.
1535
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.
1542
15432005-11-14  GNAT Script  <nobody@adacore.com>
1544
1545	* Make-lang.in: Makefile automatically updated
1546
15472005-11-14  Pascal Obry  <obry@adacore.com>
1548
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.
1553
15542005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1555
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.
1561
15622005-11-14  Robert Dewar  <dewar@adacore.com>
1563
1564	* par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
1565	syntax, which could cause compiler hangs.
1566
15672005-11-14  Vincent Celier  <celier@adacore.com>
1568
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.
1575
15762005-11-14  Vincent Celier  <celier@adacore.com>
1577
1578	* prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
1579	into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
1580
15812005-11-14  Emmanuel Briot  <briot@adacore.com>
1582
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.
1586
1587	* prj-tree.ads (String_Value_Of): Add comment about returned value for
1588	a virtual extending project.
1589
15902005-11-14  Ed Schonberg  <schonberg@adacore.com>
1591
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.
1597
15982005-11-14  Robert Dewar  <dewar@adacore.com>
1599	    Ed Schonberg  <schonberg@adacore.com>
1600
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
1615
16162005-11-14  Gary Dismukes  <dismukes@adacore.com>
1617	    Ed Schonberg  <schonberg@adacore.com>
1618	    Thomas Quinot  <quinot@adacore.com>
1619
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.
1665
16662005-11-14  Ed Schonberg  <schonberg@adacore.com>
1667	    Javier Miranda  <miranda@adacore.com>
1668
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.
1713
17142005-11-14  Javier Miranda  <miranda@adacore.com>
1715	    Ed Schonberg  <schonberg@adacore.com>
1716
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.
1726
17272005-11-14  Gary Dismukes  <dismukes@adacore.com>
1728	    Ed Schonberg  <schonberg@adacore.com>
1729
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.
1742
17432005-11-14  Ed Schonberg  <schonberg@adacore.com>
1744
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.
1761
17622005-11-14  Robert Dewar  <dewar@adacore.com>
1763	    Ed Schonberg  <schonberg@adacore.com>
1764
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,
1770
17712005-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>
1775
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.
1795
17962005-11-14  Ed Schonberg  <schonberg@adacore.com>
1797	    Javier Miranda  <miranda@adacore.com>
1798
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.
1811
18122005-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>
1816
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.
1828
18292005-11-14  Ed Schonberg  <schonberg@adacore.com>
1830	    Robert Dewar  <dewar@adacore.com>
1831
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
1840
18412005-11-14  Javier Miranda  <miranda@adacore.com>
1842
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.
1848
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.
1855
18562005-11-14  Robert Dewar  <dewar@adacore.com>
1857
1858	* s-stoele.adb: Fix code for Address mod Storage_Offset for negative
1859	offset values
1860
18612005-11-14  Vincent Celier  <celier@adacore.com>
1862
1863	* switch.adb (Bad_Switch): New procedure
1864	(Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
1865	message when in error.
1866
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
1872
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.
1877
18782005-11-14  Vincent Celier  <celier@adacore.com>
1879
1880	* tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
1881	designates a non existent directory.
1882
18832005-11-14  Robert Dewar  <dewar@adacore.com>
1884
1885	* xgnatugn.adb: Replace invalid membership test by 'Valid
1886
18872005-11-14  Vincent Celier  <celier@adacore.com>
1888
1889	* makegpr.adb (Gprmake): Do not attempt to build the global archive if
1890	there is no object directory.
1891
18922005-11-14  Robert Dewar  <dewar@adacore.com>
1893
1894	* usage.adb: Minor adjustment to output format, use nn instead of nnn
1895	(so that -gnateInnn does not run into next column)
1896
18972005-11-14  Ed Falis  <falis@adacore.com>
1898
1899	* s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
1900	"constrained"
1901
19022005-11-14  Cyrille Comar  <comar@adacore.com>
1903
1904	* s-chepoo.ads: Add comments on Dereference.
1905	Remove unnecessary inherited abstract primitives.
1906	Cosmetic cleanup.
1907
19082005-11-14  Robert Dewar  <dewar@adacore.com>
1909
1910	* sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
1911	node parameter, not needed, since it is available as Declaration_Node.
1912
19132005-11-14  Geert Bosch  <bosch@adacore.com>
1914
1915	* s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
1916	grammatically correct.
1917
19182005-11-14  Vincent Celier  <celier@adacore.com>
1919
1920	* s-fileio.ads: Correct spelling error in comment
1921
19222005-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>
1928
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
1954
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
1970
1971	* gnat-style.texi: Indicate that paragraphs within a single comment
1972	should be separated by empty comment lines
1973
1974	* ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
1975	/05 respectively)
1976
1977	* bindusg.adb: Minor cleanup, put -m before -M for consistency
1978
19792005-11-14  Robert Dewar  <dewar@adacore.com>
1980
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
2136
21372005-11-14  Robert Dewar  <dewar@adacore.com>
2138
2139	PR ada/18434
2140	* osint-m.adb: Add pragma Elaborate_All for Osint
2141
21422005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
2143
2144	PR ada/23995
2145	* trans.c (call_to_gnu): Restore statement lost in translation.
2146
21472005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
2148
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.
2152
21532005-11-03  James E Wilson  <wilson@specifix.com>
2154
2155	PR ada/23427
2156	* trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
2157	TREE_OVERFLOW check.
2158
21592005-09-21  Olivier Hainque  <hainque@adacore.com>
2160
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.
2164
21652005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
2166
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.
2181
21822005-09-16  Laurent Guerby  <laurent@guerby.net>
2183
2184	PR ada/23788
2185	* s-tpinop.ads: Make this unit Preelaborate.
2186
21872005-09-16  Andreas Jaeger  <aj@suse.de>
2188
2189	* socket.c: Add string.h for memcpy.
2190
21912005-09-05  Arnaud Charlet  <charlet@adacore.com>
2192
2193	* dec-io.ads, dec-io.adb: Removed, no longer used.
2194
21952005-09-01  Arnaud Charlet  <charlet@adacore.com>
2196
2197	* a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
2198
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.
2208
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.
2218
2219	* s-traent-vms.ads, s-intman-dummy.adb,
2220	s-taprop-dummy.adb: Make this unit Preelaborate.
2221
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.
2230
2231	* s-taspri-linux.ads: Removed.
2232
2233	* s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
2234	as done by other implementations (e.g. posix).
2235
2236	* s-taprop.ads (Timed_Delay): Update spec since the caller now is
2237	responsible for deferring abort.
2238	Mark this unit Preelaborate.
2239
2240	* s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
2241	proper initialization of the tasking run-time.
2242
2243	* s-tasdeb.ads: Mark this unit Preelaborate.
2244	(Known_Tasks): Add explicit default value to avoid elaboration code.
2245
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.
2249
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.
2253
2254	* a-calend.adb: Add call to OS_Primitives.Initialize
2255
2256	* a-elchha.adb: Update use of Except.Id.Full_Name.
2257	Minor reformatting.
2258	Remove use of Ada.Exceptions.Traceback when possible, cleaner.
2259
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.
2264
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.
2269
2270	* g-os_lib.adb: Remove non-preelaborate code so that this unit can be
2271	marked Preelaborate in the future.
2272
2273	* s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
2274	these units Preelaborate.
2275
2276	* s-exctab.adb: Update use of Except.Id.Full_Name.
2277
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.
2282
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.
2288
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.
2297
2298	* s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
2299	soft links, no longer used.
2300
2301	* s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
2302	packages are suitable for this categorization.
2303
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.
2310
23112005-09-01  Arnaud Charlet  <charlet@adacore.com>
2312
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.
2316
2317	* s-mastop-x86.adb: Removed, no longer used.
2318
2319	* s-traceb-mastop.adb: Adjust calls to Pop_Frame.
2320
2321	* a-excach.adb: Minor reformatting.
2322
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.
2337
2338	* a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
2339	Update use of Except.Msg.
2340
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.
2345
2346	* lib-writ.ads: Minor reformatting
2347	Remove doc of UX
2348
2349	* Makefile.rtl: Remove references to s-except*, s-mastop-x86*
2350
2351	* Make-lang.in: Remove references to s-except.ads
2352
2353	* s-except.ads: Removed, no longer used.
2354
2355	* s-mastop.ads, s-mastop.adb:
2356	(Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
2357	Remove reference to System.Exceptions.
2358
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.
2363
23642005-09-01  Robert Dewar  <dewar@adacore.com>
2365	    Gary Dismukes  <dismukes@adacore.com>
2366	    Javier Miranda  <miranda@adacore.com>
2367
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.
2378
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.
2387
23882005-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>
2392
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.
2405
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.
2413
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.
2432
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.
2436
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.
2465
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.
2469
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.
2488
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().
2526
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.
2538
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.
2544
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.
2548
2549	* uintp.ads: Introduce constants Uint_11 and Uint_13.
2550
25512005-09-01  Arnaud Charlet  <charlet@adacore.com>
2552
2553	* s-tataat.adb, a-tasatt.adb:
2554	Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
2555
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.
2560
25612005-09-01  Arnaud Charlet  <charlet@adacore.com>
2562	    Jose Ruiz  <ruiz@adacore.com>
2563
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.
2577
2578	* s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
2579	Primitives.Operations.
2580	(Delete, Initialize): New procedures.
2581
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.
2585
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.
2593
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.
2600
2601	* cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
2602
2603	* expect.c: The wait.h header is not located in the sys directory on
2604	VxWorks when using RTPs.
2605
26062005-09-01  Thomas Quinot  <quinot@adacore.com>
2607
2608	* g-soccon-vms.adb: Renamed to g-soccon-vms.ads
2609
2610	* g-soccon-vms.ads: Renamed from g-soccon-vms.adb
2611
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
2619
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.
2624
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).
2631
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.
2635
2636	* socket.c: Minor reformatting.
2637
26382005-09-01  Ed Schonberg  <schonberg@adacore.com>
2639	    Thomas Quinot  <quinot@adacore.com>
2640
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.
2650
26512005-09-01  Arnaud Charlet  <charlet@adacore.com>
2652
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.
2722
2723	* gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
2724
27252005-09-01  Robert Dewar  <dewar@adacore.com>
2726
2727	* binde.adb: Minor reformatting
2728	(Find_Elab_Order): Output warning if -p used with static elab order
2729
27302005-09-01  Robert Dewar  <dewar@adacore.com>
2731
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.
2736
27372005-09-01  Robert Dewar  <dewar@adacore.com>
2738
2739	* a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
2740	with 'Valid tests.
2741
27422005-09-01  Robert Dewar  <dewar@adacore.com>
2743
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.
2755
27562005-09-01  Robert Dewar  <dewar@adacore.com>
2757	    Doug Rupp  <rupp@adacore.com>
2758
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
2763
27642005-09-01  Ed Schonberg  <schonberg@adacore.com>
2765	    Hristian Kirtchev  <kirtchev@adacore.com>
2766	    Javier Miranda  <miranda@adacore.com>
2767
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
2778
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.
2782
2783	* lib.ads: Extend information in Load_Stack to include whether a given
2784	load comes from a Limited_With_Clause.
2785
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.
2791
27922005-09-01  Nicolas Setton  <setton@adacore.com>
2793
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.
2797
27982005-09-01  Thomas Quinot  <quinot@adacore.com>
2799
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.
2804
28052005-09-01  Ed Schonberg  <schonberg@adacore.com>
2806
2807	* exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
2808	fully qualified name, to distinguish instances with the same local name.
2809
2810	* g-souinf.ads (Enclosing_Entity): Document that entity name is now
2811	fully qualified.
2812
28132005-09-01  Robert Dewar  <dewar@adacore.com>
2814
2815	* exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
2816	packed arrays.
2817
28182005-09-01  Jerome Lambourg  <lambourg@adacore.com>
2819
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
2823
28242005-09-01  Laurent Pautet  <pautet@adacore.com>
2825
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.
2837
28382005-09-01  Javier Miranda  <miranda@adacore.com>
2839
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
2846
2847	* sem_aggr.adb (Check_Can_Never_Be_Null,
2848	Aggregate_Constraint_Checks, Resolve_Aggregate,
2849	Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
2850
2851	* sem_ch5.adb (Analyze_Assignment): Code cleanup.
2852
28532005-09-01  Gary Dismukes  <dismukes@adacore.com>
2854	    Robert Dewar  <dewar@adacore.com>
2855	    Hristian Kirtchev  <kirtchev@adacore.com>
2856
2857	* layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
2858	Result_Definition.
2859
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.
2866
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.
2871
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.
2882
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.
2895
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.
2900
29012005-09-01  Vincent Celier  <celier@adacore.com>
2902
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.
2908
29092005-09-01  Ed Schonberg  <schonberg@adacore.com>
2910	    Emmanuel Briot  <briot@adacore.com>
2911
2912	* lib-xref.adb (Output_Overridden_Op): Display information on
2913	overridden operation.
2914
2915	* lib-xref.ads: Add documentation on overridden operations.
2916
2917	* ali.ads (Xref_Entity_Record): Add support for storing the overriding
2918	information.
2919
2920	* ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
2921	overriding entity information.
2922
29232005-09-01  Vincent Celier  <celier@adacore.com>
2924
2925	* mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
2926	including those that are inherited.
2927
29282005-09-01  Robert Dewar  <dewar@adacore.com>
2929
2930	* opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
2931
2932	* par-prag.adb: Implement new pragma Debug_Policy
2933
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.
2938
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
2944
2945	* switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
2946	explicitly.
2947	Switch -gnata also sets Debug_Pragmas_Enabled
2948
2949	* sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
2950	handle an explicit -gnata when compiling predefined files.
2951
29522005-09-01  Vincent Celier  <celier@adacore.com>
2953
2954	* prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
2955	directories of projects that have no Ada sources.
2956
29572005-09-01  Robert Dewar  <dewar@adacore.com>
2958
2959	* scng.adb (Check_End_Of_Line): Count characters, rather than bytes
2960	(makes a difference for wide characters)
2961
2962	* widechar.adb, widechar.ads:
2963	Add Wide_Char_Byte_Count feature to count chars vs bytes
2964
29652005-09-01  Thomas Quinot  <quinot@adacore.com>
2966	    Ed Schonberg  <schonberg@adacore.com>
2967	    Robert Dewar  <dewar@adacore.com>
2968
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.
2978
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)
2983
29842005-09-01  Robert Dewar  <dewar@adacore.com>
2985
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)
2989
29902005-09-01  Javier Miranda  <miranda@adacore.com>
2991	    Ed Schonberg  <schonberg@adacore.com>
2992
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.
3016
30172005-09-01  Ed Schonberg  <schonberg@adacore.com>
3018	    Javier Miranda  <miranda@adacore.com>
3019	    Gary Dismukes  <dismukes@adacore.com>
3020
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.
3035
30362005-09-01  Thomas Quinot  <quinot@adacore.com>
3037
3038	* sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
3039	clause if the array aggregate is surrounded by parentheses.
3040
30412005-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>
3045
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.
3105
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.
3109
31102005-09-01  Ed Schonberg  <schonberg@adacore.com>
3111	    Javier Miranda  <miranda@adacore.com>
3112
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.
3136
31372005-09-01  Javier Miranda  <miranda@adacore.com>
3138	    Gary Dismukes  <dismukes@adacore.com>
3139
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.
3172
31732005-09-01  Ed Schonberg  <schonberg@adacore.com>
3174
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.
3179
31802005-09-01  Javier Miranda  <miranda@adacore.com>
3181	    Ed Schonberg  <schonberg@adacore.com>
3182
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.
3189
31902005-09-01  Javier Miranda  <miranda@adacore.com>
3191	    Ed Schonberg  <schonberg@adacore.com>
3192	    Gary Dismukes  <dismukes@adacore.com>
3193
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.
3216
32172005-09-01  Ed Schonberg  <schonberg@adacore.com>
3218	    Javier Miranda  <miranda@adacore.com>
3219
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
3229
32302005-09-01  Ed Schonberg  <schonberg@adacore.com>
3231
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.
3245
32462005-09-01  Ed Schonberg  <schonberg@adacore.com>
3247
3248	* sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
3249	to a variable that is statically known to be constant.
3250
32512005-09-01  Geert Bosch  <bosch@adacore.com>
3252	    Robert Dewar  <dewar@adacore.com>
3253
3254	* ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
3255	(VAXGF_Safe_First): Idem.
3256
32572005-09-01  Robert Dewar  <dewar@adacore.com>
3258	    Arnaud Charlet  <charlet@adacore.com>
3259
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
3264
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.
3271
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
3277
32782005-09-01  Matthew Heaney  <heaney@adacore.com>
3279
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.
3285
32862005-09-01  Arnaud Charlet  <charlet@adacore.com>
3287
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
3294
3295	* system-vxworks-xscale.ads: Removed, no longer used.
3296	* s-vxwork-xscale.ads: Removed, no longer used.
3297
32982005-09-01  Robert Dewar  <dewar@adacore.com>
3299
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
3321
33222005-08-29  Arnaud Charlet  <charlet@adacore.com>
3323
3324	PR ada/23187
3325	* adaint.c
3326	(GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
3327
33282005-08-29  Arnaud Charlet  <charlet@adacore.com>
3329	    Doug Rupp  <rupp@adacore.com>
3330
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.
3335
3336	* decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
3337
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
3341
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.
3352
33532005-08-29  Olivier Hainque  <hainque@adacore.com>
3354
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.
3360
33612005-08-29  Arnaud Charlet  <charlet@adacore.com>
3362	    Eric Botcazou  <ebotcazou@adacore.com>
3363
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.
3368
33692005-08-15  James E. Wilson  <wilson@specifix.com>
3370
3371	* system-linux-alpha.ads: Change ia64 to alpha.
3372
33732005-08-01  Kazu Hirata  <kazu@codesourcery.com>
3374
3375	* decl.c, utils.c: Fix comment typos.
3376
33772005-07-29  Kazu Hirata  <kazu@codesourcery.com>
3378
3379	* decl.c, init.c, initialize.c: Fix comment typos.
3380
33812005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
3382
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.
3390
33912005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
3392
3393	* decl.c (components_to_record): Use DECL_FCONTEXT instead of
3394	DECL_SECTION_NAME.
3395	(compare_field_bitpos): Likewise.
3396
33972005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
3398
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.
3402
34032005-07-08  Daniel Berlin  <dberlin@dberlin.org>
3404
3405	* utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
3406	removed.
3407
34082005-07-07  Pascal Obry  <obry@adacore.com>
3409
3410	* g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
3411	returned type on Windows.
3412
3413	* g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
3414	routine.
3415
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".
3419
34202005-07-07  Vincent Celier  <celier@adacore.com>
3421
3422	* bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
3423	the destructor/constructor attributes for <lib>final/<lib>init.
3424
3425	* gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
3426
34272005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
3428
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.
3431
34322005-07-07  Javier Miranda  <miranda@adacore.com>
3433
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.
3437
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.
3441
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.
3448
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.
3452
34532005-07-07  Javier Miranda  <miranda@adacore.com>
3454
3455	* freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
3456
3457	* par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
3458	types:
3459	--
3460	  type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
3461	--
3462
3463	* sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
3464	use of tag incomplete types.
3465
3466	* sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
3467	give support to tagged incomplete types.
3468
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.
3474
3475	* sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
3476	types.
3477
3478	* sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
3479	incomplete types.
3480
3481	* sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
3482	N_Incomplete_Type_Declaration nodes.
3483
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	--
3489
34902005-07-07  Olivier Hainque  <hainque@adacore.com>
3491
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.
3495
34962005-07-07  Ed Schonberg  <schonberg@adacore.com>
3497	    Javier Miranda  <miranda@adacore.com>
3498
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.
3501
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.
3520
3521	* sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
3522	incomplete type.
3523
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.
3527
35282005-07-07  Ed Schonberg  <schonberg@adacore.com>
3529
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.
3533
35342005-07-07  Bernard Banner  <banner@adacore.com>
3535
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.
3539
35402005-07-07  Thomas Quinot  <quinot@adacore.com>
3541
3542	* expect.c: Minor reformatting
3543
35442005-07-07  Sergey Rybin  <rybin@adacore.com>
3545
3546	* vms_data.ads: Add VMS qualifiers for new gnatpp switch
3547	--no-separate-is
3548
3549	* gnat_ugn.texi: Add description for new gnatpp option
3550	(--no-separate-is)
3551
35522005-07-04  Thomas Quinot  <quinot@adacore.com>
3553
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.
3557
35582005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3559	    Olivier Hainque  <hainque@adacore.com>
3560
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.
3565
3566	* init.c (Tru64 section): New function __gnat_set_code_loc.
3567
35682005-07-04  Vincent Celier  <celier@adacore.com>
3569
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.
3575
3576	* adaint.h, adaint.c (__gnat_binder_supports_auto_init,
3577	__gnat_sals_init_using_constructors): New functions.
3578
3579	* bindgen.adb (Gen_Output_File_Ada): Generate pragmas
3580	Linker_Constructor and Linker_Destructor when switch -a is used.
3581
3582	* bindusg.adb: Add line for new switch -a
3583
3584	* gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
3585	(Gnatbind): When switch -a is used, check if it is allowed
3586
3587	* switch-b.adb (Scan_Binder_Switches): Process new switch -a
3588
35892005-07-04  Joel Brobecker  <brobecker@adacore.com>
3590
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.
3595
35962005-07-04  Gary Dismukes  <dismukes@adacore.com>
3597	    Ed Schonberg  <schonberg@adacore.com>
3598	    Javier Miranda  <miranda@adacore.com>
3599
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.
3603
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.
3608
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.
3613
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.
3617
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.
3622
36232005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3624
3625	* decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
3626	<Pragma_Linker_Destructor>: Likewise.
3627
3628	* einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
3629	Pragma_Linker_Destructor.
3630
3631	* gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
3632	ATTR_LINK_DESTRUCTOR.
3633	(static_ctors, static_dtors): New variables.
3634
3635	* misc.c (gnat_expand_body): Output current function as constructor
3636	and destructor if requested.
3637
3638	* par-prag.adb: Add processing for pragma Linker_Constructor and
3639	Linker_Destructor.
3640
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.
3647
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.
3652
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.
3661
3662	* utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
3663	variable if it is external.
3664
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.
3670
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.
3676
36772005-07-04  Ed Schonberg  <schonberg@adacore.com>
3678
3679	* exp_attr.adb (Mod): Evaluate condition expression with checks off,
3680	to prevent spurious warnings.
3681
36822005-07-04  Thomas Quinot  <quinot@adacore.com>
3683
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.
3689
36902005-07-04  Ed Schonberg  <schonberg@adacore.com>
3691
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.
3697
36982005-07-04  Vincent Celier  <celier@adacore.com>
3699
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.
3703
37042005-07-04  Matthew Gingell  <gingell@adacore.com>
3705
3706	* Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
3707
3708	* indepsw-linux.adb: Replace by...
3709
3710	* indepsw-gnu.adb: ...this new file
3711
37122005-07-04  Vincent Celier  <celier@adacore.com>
3713
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.
3718
3719	* mlib-tgt.ads: Minor reformatting
3720
3721	* mlib-utl.ads: Minor reformatting
3722
3723	* opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
3724
37252005-07-04  Ed Schonberg  <schonberg@adacore.com>
3726
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.
3732
37332005-07-04  Javier Miranda  <miranda@adacore.com>
3734
3735	* par-load.adb: Load the context items in two rounds.
3736
37372005-07-04  Robert Dewar  <dewar@adacore.com>
3738
3739	* scng.adb: Do not consider Mod used as an attribute to be a keyword
3740
37412005-07-04  Ed Schonberg  <schonberg@adacore.com>
3742	    Javier Miranda  <miranda@adacore.com>
3743
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.
3751
37522005-07-04  Thomas Quinot  <quinot@adacore.com>
3753
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.
3757
37582005-07-04  Ed Schonberg  <schonberg@adacore.com>
3759
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.
3763
37642005-07-04  Gary Dismukes  <dismukes@adacore.com>
3765
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.
3769
37702005-07-04  Thomas Quinot  <quinot@adacore.com>
3771
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.
3774
37752005-07-04  Ed Schonberg  <schonberg@adacore.com>
3776
3777	* sem_type.adb (Covers): Verify that Corresponding_Record_Type is
3778	present before checking whether an interface type covers a synchronized
3779	type.
3780
37812005-07-04  Ed Schonberg  <schonberg@adacore.com>
3782
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.
3786
37872005-07-04  Robert Dewar  <dewar@adacore.com>
3788
3789	PR ada/22039
3790	* s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
3791
37922005-07-04  Matthew Gingell  <gingell@adacore.com>
3793
3794	* tracebak.c: Enable tracebacks on ia64 platforms
3795
37962005-07-04  Vincent Celier  <celier@adacore.com>
3797
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.
3801
38022005-07-04  Vincent Celier  <celier@adacore.com>
3803
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.
3810
38112005-07-04  Matthew Heaney  <heaney@adacore.com>
3812
3813	* a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
3814	was changed.
3815	* a-coinve.adb: Perform constraint checks explicitly.
3816
38172005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3818	    Thomas Quinot  <quinot@adacore.com>
3819
3820	* Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
3821	new target gen-soccon.
3822
38232005-07-04  Robert Dewar  <dewar@adacore.com>
3824
3825	* s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
3826
38272005-07-04  Thomas Quinot  <quinot@adacore.com>
3828
3829	* g-socket.ads (Check_Selector): Minor rewording of comment.
3830
38312005-07-04  Vincent Celier  <celier@adacore.com>
3832
3833	* vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
3834
38352005-07-04  Thomas Quinot  <quinot@adacore.com>
3836
3837	* gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
3838
38392005-07-04  Sergey Rybin  <rybin@adacore.com>
3840
3841	* gnat_ugn.texi: Add description of --eol gnatpp option
3842
38432005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
3844	    Thomas Quinot  <quinot@adacore.com>
3845
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.
3854
38552005-07-04  Arnaud Charlet  <charlet@adacore.com>
3856
3857	* s-stausa.ads, s-stausa.adb: New files.
3858
38592005-06-30  Kelley Cook
3860
3861	* all files:  Update FSF address in copyright headers.
3862	* gen-soccon.co (main): Output new FSF address in generated files.
3863
38642005-06-28  Paul Brook  <paul@codesourcery.com>
3865
3866	* misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
3867
38682005-06-14  Olivier Hainque  <hainque@adacore.com>
3869	    Eric Botcazou  <ebotcazou@adacore.com>
3870
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.
3874
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.
3880
38812005-06-14  Doug Rupp  <rupp@adacore.com>
3882
3883	* g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
3884
3885	* g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
3886
38872005-06-14  Pascal Obry  <obry@adacore.com>
3888
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).
3893
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.
4027
40282005-06-14  Jose Ruiz  <ruiz@adacore.com>
4029	    Arnaud Charlet  <charlet@adacore.com>
4030
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.
4040
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.
4045
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.
4052
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.
4074
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.
4086
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.
4091
4092	* s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
4093	(Setup_Interrupt_Mask): New procedure.
4094
4095	* s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
4096
4097	* s-inmaop.ads (Setup_Interrupt_Mask): New procedure
4098
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.
4103
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
4106
41072005-06-14  Robert Dewar  <dewar@adacore.com>
4108
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).
4122
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
4126
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
4132
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
4137
4138	* a-ztenau.adb: Add with of Ada.Characters.Conversions
4139
4140	* a-chacon.ads, a-chacon.adb: New files.
4141
4142	* a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
4143	categorization violations.
4144
4145	* a-strmap.ads: Add pragma Pure_05 for AI-362
4146	* a-strmap.ads: Add note on implicit categorization for AI-362
4147
4148	* a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
4149
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
4154
4155	* sem.adb: Make sure predefined units are compiled with GNAT_Mode true
4156	when needed for proper processing of categorization stuff
4157
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.
4161
4162	* sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
4163	preelaborate unit is now warning if in GNAT mode
4164
4165	* s-stoele.ads: Document AI-362 for pragma preelaborate
4166
41672005-06-14  Doug Rupp  <rupp@adacore.com>
4168
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.
4172
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
4177
41782005-06-14  Vincent Celier  <celier@adacore.com>
4179
4180	* gnatsym.adb: Adapt to modification of package Symbols: procedure
4181	Process is now in package Processing.
4182
4183	* symbols.ads, symbols.adb:
4184	(Processing): New package, containing procedure Process
4185
4186	* symbols-vms-alpha.adb:
4187	Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
4188
4189	* symbols-vms.adb, symbols-processing-vms-alpha.adb,
4190	symbols-processing-vms-ia64.adb: New files.
4191
41922005-06-14  Pascal Obry  <obry@adacore.com>
4193
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.
4198
41992005-06-14  Doug Rupp  <rupp@adacore.com>
4200	    Pascal Obry  <obry@adacore.com>
4201
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.
4210
42112005-06-14  Robert Dewar  <dewar@adacore.com>
4212
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
4216
42172005-06-14  Robert Dewar  <dewar@adacore.com>
4218
4219	* ali-util.adb, gnatbind.adb: Remove references to
4220	Force_RM_Elaboration_Order.
4221
4222	* switch-b.adb: Remove recognition of -f switch
4223
42242005-06-14  Pascal Obry  <obry@adacore.com>
4225
4226	* a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
4227	implementation which is slightly more efficient.
4228
42292005-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>
4233
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.
4239
4240	(Tagged_Membership): Modified to gives support to abstract interface
4241	types.
4242
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.
4263
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.
4277
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).
4282
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
4321
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
4328
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
4391
4392	* debug.adb: Complete documentation of flag "-gnatdZ"
4393
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.
4408
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.
4425
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.
4440
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
4445
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.
4459
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.
4473
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.
4512
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
4520
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.
4554
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
4560
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.
4570
45712005-06-14  Robert Dewar  <dewar@adacore.com>
4572
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.
4575
45762005-06-14  Robert Dewar  <dewar@adacore.com>
4577
4578	* atree.adb: (Elist*): Protect against uninitialized field
4579
45802005-06-14  Ed Schonberg  <schonberg@adacore.com>
4581
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.
4586
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.
4592
45932005-06-14  Vincent Celier  <celier@adacore.com>
4594
4595	* clean.adb (Clean_Project): Correctly delete executable specified as
4596	absolute path names.
4597
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
4606
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
4614
46152005-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>
4621
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.
4667
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
4679
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.
4686
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.
4701
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.
4711
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
4715
4716	* sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
4717	relaxation of rules for access types in pure, shared passive partitions.
4718
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.
4728
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.
4733
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
4760
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.
4768
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.
4779
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
4795
4796	* par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
4797	can start with an overriding indicator.
4798
4799	* par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
4800	flags accordingly on subrogram specifications or instances.
4801
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.
4815
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
4819
4820	* par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
4821	default procedures.
4822
48232005-06-14  Ed Schonberg  <schonberg@adacore.com>
4824	    Robert Dewar  <dewar@adacore.com>
4825
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.
4829
48302005-06-14  Ed Schonberg  <schonberg@adacore.com>
4831
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.
4839
48402005-06-14  Thomas Quinot  <quinot@adacore.com>
4841
4842	* exp_ch2.adb (Param_Entity): Take the case of an expanded_name
4843	denoting a formal parameter into account.
4844
48452005-06-14  Ed Schonberg  <schonberg@adacore.com>
4846
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.
4850
48512005-06-14  Nicolas Setton  <setton@adacore.com>
4852	    Ed Schonberg  <schonberg@adacore.com>
4853
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.
4860
48612005-06-14  Thomas Quinot  <quinot@adacore.com>
4862
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).
4868
48692005-06-14  Robert Dewar  <dewar@adacore.com>
4870
4871	* exp_intr.adb, par-ch5.adb: Minor fix to error message text
4872
48732005-06-14  Jose Ruiz  <ruiz@adacore.com>
4874
4875	* fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
4876	can determine whether pragma Suppress_Exception_Locations is in effect.
4877
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.
4881
48822005-06-14  Emmanuel Briot  <briot@adacore.com>
4883
4884	* g-debpoo.adb (Deallocate, Dereference): Improve output.
4885
48862005-06-14  Nicolas Roche  <roche@adacore.com>
4887
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	 "/"
4893
48942005-06-14  Pascal Obry  <obry@adacore.com>
4895
4896	* g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
4897	releasing the items.
4898
48992005-06-14  Vincent Celier  <celier@adacore.com>
4900	    Cyrille Comar  <comar@adacore.com>
4901
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.
4906
49072005-06-14  Thomas Quinot  <quinot@adacore.com>
4908
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.
4918
49192005-06-14  Gary Dismukes  <dismukes@adacore.com>
4920
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.
4930
49312005-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>
4935
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.
4940
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.
4944
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.
4948
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.
4963
49642005-06-14  Ed Schonberg  <schonberg@adacore.com>
4965	    Emmanuel Briot  <briot@adacore.com>
4966
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.
4980
4981	* ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
4982	to store information about instantiated entities.
4983
4984	* ali.adb (Scan_ALI): Add support for parsing the reference to the
4985	generic parent
4986
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.
4990
49912005-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>
4995
4996	* Make-lang.in: Add initialize.o when needed.
4997	Remove obsolete references to RT_FLAGS.
4998	Add missing dependencies for sdefault.o
4999
5000	* initialize.c: New file.
5001
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.
5021
50222005-06-14  Pascal Obry  <obry@adacore.com>
5023
5024	* mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
5025	the library name.
5026
50272005-06-14  Robert Dewar  <dewar@adacore.com>
5028
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
5034
5035	* switch-c.adb: Recognize -gnatwy/Y
5036	Set Ada_Version_Explicit, for implementation of AI-362
5037	The -gnatg switch now includes -gnatyu
5038
5039	* usage.adb: Add -gnatwy/Y
5040	Remove wrong asterisk on -gnatwX line
5041	Add line for -gnatyu switch
5042
50432005-06-14  Vincent Celier  <celier@adacore.com>
5044
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.
5048
50492005-06-14  Robert Dewar  <dewar@adacore.com>
5050
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
5054
50552005-06-14  Vincent Celier  <celier@adacore.com>
5056
5057	* prep.adb (Preprocess): Ignore error when scanning the first token of
5058	a line.
5059
50602005-06-14  Vincent Celier  <celier@adacore.com>
5061
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.
5067
50682005-06-14  Vincent Celier  <celier@adacore.com>
5069
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
5078
50792005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
5080
5081	* s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
5082
50832005-06-14  Robert Dewar  <dewar@adacore.com>
5084
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
5088
5089	* style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
5090
5091	* stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
5092
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.
5096
5097	* nmake.adt: Modify header so that xnmake does not generate output
5098	files with multiple blank lines.
5099
5100	* treeprs.adt: Remove a blank line so that output from xtreeprs does
5101	not have an extra blank line
5102
51032005-06-14  Gary Dismukes  <dismukes@adacore.com>
5104
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.
5108
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.
5117
51182005-06-14  Ed Schonberg  <schonberg@adacore.com>
5119
5120	* sem_case.adb (Expand_Others_Choice): Improve warning.
5121
51222005-06-14  Ed Schonberg  <schonberg@adacore.com>
5123
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.
5128
51292005-06-14  Robert Dewar  <dewar@adacore.com>
5130	    Ed Schonberg  <schonberg@adacore.com>
5131
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
5150
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
5156
5157	* tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
5158
51592005-06-14  Ed Schonberg  <schonberg@adacore.com>
5160
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.
5164
51652005-06-14  Thomas Quinot  <quinot@adacore.com>
5166
5167	* s-strxdr.adb: Follow AI95-00132
5168
51692005-06-14  Arnaud Charlet  <charlet@adacore.com>
5170
5171	* s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
5172
51732005-06-14  Arnaud Charlet  <charlet@adacore.com>
5174	    Jose Ruiz  <ruiz@adacore.com>
5175
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.
5185
51862005-06-14  Robert Dewar  <dewar@adacore.com>
5187
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
5193
5194	* nmake.adt: Modify header so that xnmake does not generate output
5195	files with multiple blank lines.
5196
5197	* treeprs.adt: Remove a blank line so that output from xtreeprs does
5198	not have an extra blank line
5199
52002005-06-14  Sergey Rybin  <rybin@adacore.com>
5201
5202	* styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
5203
52042005-06-14  Doug Rupp  <rupp@adacore.com>
5205	    Vincent Celier  <celier@adacore.com>
5206
5207	* vms_conv.ads, vms_conv.adb: Remove "Library" command.
5208	Update copyright.
5209
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
5221
5222	* ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
5223
52242005-06-14  Vincent Celier  <celier@adacore.com>
5225
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.
5234
52352005-06-14  Matthew Heaney  <heaney@adacore.com>
5236
5237	* a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
5238	* a-swuwha.ads, a-swuwha.adb: New files
5239
5240	* a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
5241	* a-szuzha.ads, a-szuzha.adb: New files.
5242
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.
5254
52552005-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>
5259
5260	* gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
5261
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.
5272
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.
5280
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.
5286
52872005-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>
5293
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.
5301
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.
5322
5323	* g-trasym.ads: Document that IRIX is supported
5324
53252005-06-10  Arnaud Charlet  <charlet@adacore.com>
5326
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.
5330
5331	* a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
5332	* a-zchara.ads, a-widcha.ads: New files.
5333
5334	* system-hpux-ia64.ads: New file.
5335
5336	* i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
5337	is imported from the VxWorks kernel.
5338
53392005-06-14  Robert Dewar  <dewar@adacore.com>
5340
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.
5353
53542005-06-14  Thomas Quinot  <quinot@adacore.com>
5355
5356	* xeinfo.adb: Fix typo in comment
5357
53582005-06-14  Javier Miranda  <miranda@adacore.com>
5359
5360	* repinfo.ads: Fix typo in comment
5361
53622005-06-14  Gary Dismukes  <dismukes@adacore.com>
5363
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.
5368
53692005-06-14  Bernard Banner  <banner@adacore.com>
5370
5371	* vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
5372	also apply for handling support for VxSim 653.
5373
53742005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
5375
5376	* xsnames.adb: Add automatic generation of snames.h.
5377
53782005-06-14  Thomas Quinot  <quinot@adacore.com>
5379
5380	* gen-soccon.c: Add IP_MULTICAST_IF constant
5381	Minor reformatting and adjustments to prevent warnings.
5382
53832005-06-14  Pascal Obry  <obry@adacore.com>
5384
5385	* seh_init.c: Do not include <sys/stat.h>. This is not needed.
5386
53872005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
5388
5389	* trans.c (gnat_gimplify_expr): Call
5390	recompute_tree_invarant_for_addr_expr when we change
5391	the operand of the ADDR_EXPR.
5392
53932005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5394
5395	* misc.c: Don't include errors.h.
5396
53972005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5398
5399	* raise.c (db): Add ATTRIBUTE_PRINTF_2.
5400
54012005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
5402
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.
5406
54072005-05-16  Nathanael Nerode  <neroden@gcc.gnu.org>
5408
5409	PR ada/20270
5410	* Makefile.in: Make TGT_LIB behave correctly.
5411
54122005-04-23  DJ Delorie  <dj@redhat.com>
5413
5414	* misc.c: Adjust warning() callers.
5415
54162005-04-16  Laurent Guerby  <laurent@guerby.net>
5417
5418	PR ada/18847
5419	* a-nudira.adb (Value): Check for valid string.
5420	* a-nuflra.adb (Value): Likewise.
5421
54222005-04-11  Richard Sandiford  <rsandifo@redhat.com>
5423
5424	* lang.opt: Refer to the GCC internals documentation instead of c.opt.
5425
54262005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
5427
5428	* adaint.c, init.c, tracebak.c: Fix comment typos.
5429	* gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
5430
54312005-04-07  Laurent Guerby  <laurent@guerby.net>
5432	    John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5433
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.
5437
54382005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
5439
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.
5443
54442005-03-30  Tom Tromey  <tromey@redhat.com>
5445
5446	* decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
5447
54482005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5449
5450	* adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
5451
54522005-03-29  Robert Dewar  <dewar@adacore.com>
5453
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.
5457
5458	* opt.ads (Warn_On_Bad_Fixed_Value): New flag
5459
5460	* s-taprop-tru64.adb (RT_Resolution): Return an integer number of
5461	nanoseconds.
5462
5463	* ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
5464
54652005-03-29  Vincent Celier  <celier@adacore.com>
5466
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.
5470
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
5475
54762005-03-29  Doug Rupp  <rupp@adacore.com>
5477
5478	* adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
5479	name and translate.
5480
54812005-03-29  Javier Miranda  <miranda@adacore.com>
5482
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.
5487
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.
5491
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.
5497
5498	* rtsfind.ads: Remove support to call the run-time
5499	subprogram Get_TSD
5500
55012005-03-29  Robert Dewar  <dewar@adacore.com>
5502
5503	* errutil.adb, errout.adb:
5504	Minor comment updates on Line_Terminator references
5505
5506	* par-ch10.adb: Add ??? comment about line terminator
5507
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.
5513
5514	* styleg.adb: Add ??? comment for line terminator reference
5515
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)
5518
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.
5524
5525	* stylesw.ads, stylesw.adb:
5526	Add handling for new -gnatyd switch (check dos line terminator)
5527
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
5531
5532	* usage.adb:
5533	Add line for new -gnatyd switch (check dos line terminator)
5534
5535	* usage.adb: Add lines for -gnatwb/-gnatwB
5536
5537	* vms_data.ads: Add entry for NOCRLF (-gnatyd)
5538
5539	* vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
5540
5541	* gnat_ugn.texi: Fix overlong lines
5542	Document new -gnatyd switch
5543	Document new -gnatwb/-gnatwB switches
5544
55452005-03-29  Ed Schonberg  <schonberg@adacore.com>
5546
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.
5550
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.
5554
55552005-03-29  Thomas Quinot  <quinot@adacore.com>
5556
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).
5563
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.
5568
55692005-03-29  Gary Dismukes  <dismukes@adacore.com>
5570	    Robert Dewar  <dewar@adacore.com>
5571
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.
5580
5581	* Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
5582	05 unit for AI-260-02).
5583
5584	* a-tgdico.ads: New file.
5585
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.
5588
5589	* snames.ads, snames.adb (Preset_Names): Add entry for
5590	Generic_Dispatching_Constructor.
5591
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.
5601
56022005-03-29  Robert Dewar  <dewar@adacore.com>
5603
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.
5608
56092005-03-29  Ed Schonberg  <schonberg@adacore.com>
5610
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.
5614
56152005-03-29  Vincent Celier  <celier@adacore.com>
5616
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.
5620
56212005-03-29  Doug Rupp  <rupp@adacore.com>
5622
5623	* Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
5624	extra tools.
5625
56262005-03-29  Robert Dewar  <dewar@adacore.com>
5627
5628	* par-ch12.adb (P_Generic): Give better msg for illegal private generic
5629	child.
5630
56312005-03-29  Robert Dewar  <dewar@adacore.com>
5632
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.
5636
56372005-03-29  Robert Dewar  <dewar@adacore.com>
5638
5639	* par-ch4.adb (P_Name): When a bad attribute is returned, return error,
5640	rather than proceed ahead using a junk attribute name.
5641
56422005-03-29  Vincent Celier  <celier@adacore.com>
5643
5644	* prj.ads, prj.adb: (Project_Data): Add new component Display_Name
5645
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".
5648
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
5656
5657	* prj-strt.adb (External_Reference): Allow default to be string
5658	expressions, not only literal strings.
5659
56602005-03-29  Vincent Celier  <celier@adacore.com>
5661
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.
5664
56652005-03-29  Thomas Quinot  <quinot@adacore.com>
5666
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.
5669
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.
5674
56752005-03-29  Robert Dewar  <dewar@adacore.com>
5676
5677	* sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
5678	on param update.
5679
56802005-03-29  Ed Schonberg  <schonberg@adacore.com>
5681
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.
5688
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.
5692
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.
5703
57042005-03-29  Ed Schonberg  <schonberg@adacore.com>
5705
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).
5712
57132005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5714
5715	PR ada/19956
5716	* utils.c (finish_record_type): Use variable_size when setting sizes.
5717
57182005-03-29  Robert Dewar  <dewar@adacore.com>
5719
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.
5723
57242005-03-29  Robert Dewar  <dewar@adacore.com>
5725
5726	* a-direct.ads, a-direct.adb (Start_Search): Free allocated search
5727	buffer if an exception is raised.
5728
57292005-03-29  Ed Falis  <falis@adacore.com>
5730
5731	* cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
5732	VxWorks 653 1.4
5733
57342005-03-29  Robert Dewar  <dewar@adacore.com>
5735
5736	* sem_util.ads: Minor reformatting
5737	* gnat_rm.texi: Minor editing.
5738
57392005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
5740
5741	* decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
5742	* trans.c (tree_transform) <N_Identifier>: Use correct predicates.
5743
57442005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
5745
5746	* adaint.c (__gnat_portable_spawn): Adjust cast.
5747
57482005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
5749
5750	* misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
5751
57522005-03-17  Pascal Obry  <obry@adacore.com>
5753
5754	* adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
5755	used.
5756
5757	* expect.c (__gnat_waitpid): Moved here from adaint.c.
5758	Reimplement under Win32 using Win32 API.
5759
5760	(__gnat_kill) [Win32]: Properly close the process handle before leaving
5761	this routine.
5762
57632005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
5764
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.
5768
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.
5773
5774	* misc.c (gnat_handle_option): Handle -gnatO separately.
5775	(gnat_print_decl) <VAR_DECL>: New case.
5776	Print the DECL_RENAMED_OBJECT node.
5777
5778	* lang.opt:  Declare separate -gnatO option.
5779
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.
5785
57862005-03-17  Javier Miranda  <miranda@adacore.com>
5787
5788	* a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
5789	(Get_Inheritance_Depth): Removed.
5790	(Set_Inheritance_Depth): Removed.
5791
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.
5795
5796	* i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
5797	(CPP_Get_Inheritance_Depth): Removed.
5798	(CPP_Set_Inheritance_Depth): Removed.
5799
5800	* tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
5801
58022005-03-17  Robert Dewar  <dewar@adacore.com>
5803
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.
5806
58072005-03-17  Javier Miranda  <miranda@adacore.com>
5808
5809	* einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
5810	of one barrier to avoid wrong usage of this attribute.
5811
5812	* sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
5813	First_Private_Entity.
5814
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.
5823
58242005-03-17  Ed Schonberg  <schonberg@adacore.com>
5825
5826	* exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
5827	entry formals.
5828
58292005-03-17  Thomas Quinot  <quinot@adacore.com>
5830
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.
5841
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.
5847
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.
5851
58522005-03-17  Ed Schonberg  <schonberg@adacore.com>
5853
5854	* exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
5855	entity is an operator.
5856
58572005-03-17  Thomas Quinot  <quinot@adacore.com>
5858
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.
5861
5862	* rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
5863	reimplementing it.
5864
5865	* sem_ch8.adb: Disable expansion of remote access-to-subprogram types
5866	when no distribution runtime library is available.
5867
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.
5873
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.
5876
58772005-03-17  Vincent Celier  <celier@adacore.com>
5878
5879	* make.adb (Insert_Project_Sources): Make sure the Q is always
5880	initialized.
5881
5882	* prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
5883	the default for the tree, not the global default naming.
5884
5885	* prj-proc.adb (Recursive_Process): No need to put the default naming
5886	in the project data, it's already there.
5887
58882005-03-17  Doug Rupp  <rupp@adacore.com>
5889
5890	* Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
5891
5892	* 5xcrtl.ads: Renamed to...
5893	* s-crtl-vms64.ads: ...this new file
5894
58952005-03-17  Robert Dewar  <dewar@adacore.com>
5896
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.
5900
59012005-03-17  Robert Dewar  <dewar@adacore.com>
5902
5903	* par.adb (Par): Improved msg for attempt to recompile predefined unit
5904
59052005-03-17  Thomas Quinot  <quinot@adacore.com>
5906
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.
5910
59112005-03-17  Javier Miranda  <miranda@adacore.com>
5912
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.
5917
59182005-03-17  Jose Ruiz  <ruiz@adacore.com>
5919
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.
5930
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.
5937
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.
5951
5952	* s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
5953	used to store the protected object's owner.
5954
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.
5961
59622005-03-17  Vincent Celier  <celier@adacore.com>
5963	    Nicolas Setton  <setton@adacore.com>
5964
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.
5972
59732005-03-17  Vincent Celier  <celier@adacore.com>
5974
5975	* switch-m.adb (Normalize_Compiler_Switches): Recognize switches
5976	-gnat83, -gnat95 and -gnat05.
5977
59782005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
5979
5980	* gnat_ugn.texi: Document gnatmem restriction
5981
59822005-03-17  Thomas Quinot  <quinot@adacore.com>
5983
5984	* snames.adb: Document new TSS names introduced by exp_dist/exp_tss
5985	cleanup
5986
59872005-03-17  Robert Dewar  <dewar@adacore.com>
5988
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
5992
5993	* casing.adb: Comment improvements
5994
59952005-03-17  Pascal Obry  <obry@adacore.com>
5996
5997	* g-expect.adb: Minor reformatting.
5998
59992005-03-15  Zack Weinberg  <zack@codesourcery.com>
6000
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.
6004
60052005-03-15  Vincent Celier  <celier@adacore.com>
6006
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.
6011
60122005-03-15  Jakub Jelinek  <jakub@redhat.com>
6013
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.
6017
60182005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6019
6020	* trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
6021	to NULL_TREE on entry.
6022
60232005-03-15  Robert Dewar  <dewar@adacore.com>
6024
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.
6038
6039	* opt.ads: Add new flag Opt.Address_Is_Private
6040
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.
6045
60462005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6047
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.
6057
6058	* s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
6059	(Create_Task): Account for the Yellow Zone and the guard page.
6060
60612005-03-15  Vincent Celier  <celier@adacore.com>
6062
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.
6071
6072	* make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
6073	to use the project manager.
6074
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.
6078
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=...".
6084
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.
6088
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.
6135
6136	* prj-attr.ads: Add with Table; needed, as package Prj no longer
6137	imports package Table.
6138
6139	* prj-com.adb: Remove empty, no longer needed body
6140
6141	* prj-com.ads: Move most of the content of this package to package Prj.
6142
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.
6149
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.
6154
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
6157
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
6166
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
6170
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
6179
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.
6183
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.
6191
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.
6196
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.
6204
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.
6208
6209	* makegpr.adb (Project_Tree): New constant needed to use project
6210	manager.
6211
62122005-03-15  Olivier Hainque  <hainque@adacore.com>
6213
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.
6219
6220	* raise.h (__gnat_adjust_context_for_raise): New prototype.
6221
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.
6236
62372005-03-15  Doug Rupp  <rupp@adacore.com>
6238
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.
6243
6244	* tb-alvms.c, expect.c: Prefix #include of VMS system header files
6245	with vms/
6246
62472005-03-15  Nicolas Setton  <setton@adacore.com>
6248
6249	* tracebak.c: Under Darwin, use the same unwinding mechanisms as under
6250	PPC/AIX.
6251
62522005-03-15  Robert Dewar  <dewar@adacore.com>
6253
6254	* a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
6255	AI-386.
6256
6257	* a-retide.ads: Minor comment changes
6258
62592005-03-15  Robert Dewar  <dewar@adacore.com>
6260
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
6265
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
6269
62702005-03-15  Robert Dewar  <dewar@adacore.com>
6271
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.
6277
6278	* a-suteio.adb: Avoid unnecessary use of Get/Set_String
6279
6280	* g-spipat.ads, g-spipat.adb: New interface for Get_String
6281	Minor reformatting (function specs)
6282
6283	* g-spitbo.adb: New interface for Get_String
6284
6285	* g-spitbo.ads: Minor reformatting
6286
6287	* a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
6288
6289	* a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
6290
62912005-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>
6295
6296	* atree.ads, atree.adb: Add support for Elist24 field
6297
6298	* atree.h: Fix wrong definition of Field27
6299	Add support for Elist16 field
6300	Add support for Elist24 field
6301
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
6321
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.
6346
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]
6352
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).
6361
6362	* sem_prag.adb: Upgrade all the references to Tag_Component by the new
6363	attribute First_Tag_Component.
6364
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.
6389
6390	* exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
6391	"with string" given.
6392
6393	* sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
6394	expression given.
6395
6396	* par-ch11.adb (P_Raise_Statement): Recognize with string expression
6397	in 2005 mode
6398
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.
6402
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.
6407
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.
6412
64132005-03-15  Doug Rupp  <rupp@adacore.com>
6414	    Vincent Celier  <celier@adacore.com>
6415
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
6419
64202005-03-15  Thomas Quinot  <quinot@adacore.com>
6421
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.
6425
64262005-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>
6430
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.
6463
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.
6469
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.
6477
6478	* exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
6479	replace the N_Freeze_Entity with a null statement.
6480
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.
6489
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.
6493
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
6504
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.
6519
65202005-03-15  Robert Dewar  <dewar@adacore.com>
6521	    Ed Schonberg  <schonberg@adacore.com>
6522	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6523
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.
6527
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.
6542
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.
6547
6548	* exp_util.ads: Minor cleanup in variable names
6549
6550	* sem_eval.ads, sem_eval.adb: Minor reformatting
6551	(Compile_Time_Known_Bounds): New function
6552
65532005-03-15  Ed Schonberg  <schonberg@adacore.com>
6554
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.
6558
65592005-03-15  Ed Schonberg  <schonberg@adacore.com>
6560
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.
6565
65662005-03-15  Robert Dewar  <dewar@adacore.com>
6567
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.
6573
65742005-03-15  Thomas Quinot  <quinot@adacore.com>
6575
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.
6582
65832005-03-15  Doug Rupp  <rupp@adacore.com>
6584
6585	* gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
6586	Command_Name.
6587
65882005-03-15  Pascal Obry  <obry@adacore.com>
6589	    Eric Botcazou  <ebotcazou@adacore.com>
6590
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.
6595
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.
6599
6600	* lang.opt: Fix specification of -fRTS=.
6601
66022005-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>
6606
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.
6612
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.
6621
66222005-03-15  Robert Dewar  <dewar@adacore.com>
6623
6624	* Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
6625
6626	* impunit.adb: Add GNAT.UTF_32
6627
6628	* scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
6629
6630	* widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
6631	now uses GNAT.UTF_32).
6632
6633	* g-utf_32.ads, g-utf_32.adb: This is a new unit with full
6634	capabilities for categorizing characters using Unicode categories
6635
66362005-03-15  Ed Schonberg  <schonberg@adacore.com>
6637
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.
6643
66442005-03-15  Javier Miranda  <miranda@adacore.com>
6645	    Ed Schonberg  <schonberg@adacore.com>
6646
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.
6656
66572005-03-15  Ed Schonberg  <schonberg@adacore.com>
6658	    Javier Miranda  <miranda@adacore.com>
6659
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.
6677
66782005-03-15  Ed Schonberg  <schonberg@adacore.com>
6679
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.
6686
66872005-03-15  Ed Schonberg  <schonberg@adacore.com>
6688
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.
6695
66962005-03-15  Ed Schonberg  <schonberg@adacore.com>
6697
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.
6703
67042005-03-15  Geert Bosch  <bosch@adacore.com>
6705
6706	* s-fatgen.adb (Valid): Extend special exceptions to account for long
6707	long float padding to also cover AMD64 and IA64.
6708
67092005-03-15  Gary Dismukes  <dismukes@adacore.com>
6710
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.
6714
67152005-03-15  Matthew Gingell  <gingell@adacore.com>
6716
6717	* sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
6718
67192005-03-15  Robert Dewar  <dewar@adacore.com>
6720
6721	* usage.adb: Add missing lines for -gnat95 and -gnat05 switches
6722
6723	* sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
6724
6725	* i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
6726
67272005-03-15  Robert Dewar  <dewar@adacore.com>
6728
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.
6739
67402005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
6741
6742	* utils2.c (build_binary_op): Fix typo.
6743
67442005-03-15  Doug Rupp  <rupp@adacore.com>
6745
6746	* s-crtl.ads (popen,pclose): New imports.
6747
67482005-03-15  Cyrille Comar  <comar@adacore.com>
6749
6750	* comperr.adb (Compiler_Abort): remove references to obsolete
6751	procedures in the bug boxes for various GNAT builds.
6752
67532005-03-15  Vincent Celier  <celier@adacore.com>
6754
6755	* snames.ads, snames.adb: Save as Unix text file, not as DOS text file
6756
67572005-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>
6762
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.
6777
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
6782
67832005-03-12  Daniel Berlin  <dberlin@dberlin.org>
6784
6785	* misc.c (gnat_post_options): Turn off structural
6786	aliasing for now.
6787
67882005-03-08  Laurent Guerby  <laurent@guerby.net>
6789
6790	* system-linux-sparc.ads: Fix typo in previous commit.
6791
67922005-03-07  James A. Morrison  <phython@gcc.gnu.org>
6793	    Laurent Guerby  <laurent@guerby.net>
6794
6795	PR ada/20035
6796	* system-linux-sparc.ads: New.
6797	* Makefile.in: Add sparc linux entry.
6798
67992005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
6800
6801	* seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
6802	parameters as unused.
6803
68042005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
6805	Partial merge from libada-gnattools-branch:
6806
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.
6813
68142005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
6815
6816	PR ada/19942
6817	* utils.c (gnat_type_for_mode): Return null instead of ICE because
6818	we asked for an unknown mode.
6819
68202005-02-12  Richard Henderson  <rth@redhat.com>
6821
6822	* utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
6823	validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
6824
68252005-02-10  Andreas Jaeger  <aj@suse.de>
6826
6827	* init.c (__gnat_initialize): Mark parameter as unused.
6828
68292005-02-09  Doug Rupp  <rupp@adacore.com>
6830
6831	* g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
6832	* g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
6833
68342005-02-09  Doug Rupp  <rupp@adacore.com>
6835
6836	* gnatchop.adb (dup, dup2),
6837	g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
6838
6839	* gnatlbr.adb (mkdir),
6840	mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
6841
6842	* s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
6843
68442005-02-09  Doug Rupp  <rupp@adacore.com>
6845
6846	* s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
6847
68482005-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>
6856
6857	* g-zstspl.ads: New file.
6858
6859	* a-chahan.ads, a-chahan.adb: Add declarations from AI-285
6860
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
6864
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
6870
6871	* a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
6872	support new Unbounded_IO package cleanly.
6873
6874	* g-utf_32.ads, g-utf_32.adb: New files.
6875
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.
6880
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.
6884
6885	* a-stwiun.adb, a-stwiun.ads: Minor reformatting.
6886
6887	* a-stunau.ads: Minor comment correction
6888
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.
6894
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.
6901
6902	* s-scaval.ads, s-scaval.adb: Add values for zero invalid values
6903
6904	* s-strops.ads, s-strops.adb: Remove string normalize routines, never
6905	used
6906
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.
6916
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.
6927
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
6932
6933	* exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
6934
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.
6939
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.
6945
6946	* cstand.adb: Create entities for Wide_Wide_Character and
6947	Wide_Wide_String.
6948
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)
6952
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.
6962
6963	* lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
6964	entity in non-Ada 2005 mode and generate warning.
6965
6966	* par-prag.adb: Add handling of one argument form for pragma Ada_05.
6967	(Prag): Code cleanup. Remove old gnat pragma "overriding"
6968
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.
6978
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.
6981
6982	* namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
6983	characters.
6984
6985	* scn.adb: Char_Literal_Value field is now a Uint
6986
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.
6993
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.
6999
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".
7003
7004	* bindgen.adb (Gen_Main_Ada): Add support for the new SEH
7005	(Structured Exception handling).
7006	(Gen_Main_C): Idem.
7007
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"
7014
7015	* switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
7016	new -Xnnn switch.
7017
7018	* mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
7019	has a collision with the new Ada 2005 "interface" reserved word.
7020
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.
7024
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.
7028
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.
7051
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.
7056
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.
7063
7064	* sem_case.adb: Add support for wide wide character type
7065
7066	* sem_ch13.adb: Add support for wide wide character type
7067	(Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
7068
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.
7073
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
7083
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.
7089
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.
7098
7099	* stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
7100
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.
7105
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
7110
7111	* ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
7112
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.
7120
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.
7124
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.
7131
7132	* sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
7133	null-exclusion value by a warning message
7134
7135	* atree.h, atree.ads, atree.adb: Remove Char_Code field support
7136	completely. Add support for Uint2 field
7137
7138	sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
7139	exp_prag.adb: Char_Literal_Value field is now a Uint.
7140
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.
7145
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
7156
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.
7164
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.
7175
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.
7179
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.
7198
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.
7213
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.
7227
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.
7233
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.
7238
7239	* ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
7240	(TYPE_LANG_FLAG_0): Check for record or union.
7241
7242	* treepr.adb: Char_Literal_Value field is now a Uint
7243
7244	* uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
7245	UI_From_CC.
7246
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
7250
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.
7255
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.
7259
72602005-02-09  Robert Dewar  <dewar@adacore.com>
7261
7262	* a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
7263	Fix name of Set routine
7264
7265	* a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
7266	fixed packages.
7267
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
7271
7272	* a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
7273	forms of Get_Line subprograms for AI-301.
7274
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.
7279
72802005-02-09  Doug Rupp  <rupp@adacore.com>
7281	    Thomas Quinot  <quinot@adacore.com>
7282
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.
7292
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.
7296
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.
7299
73002005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
7301	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7302
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.
7315
7316	* utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
7317	RECORD_TYPE.
7318
7319	* utils2.c: Minor reformatting.
7320
7321	* utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
7322	handle other cases like RECORD_TYPE.
7323
7324	* utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
7325
73262005-02-09  Ed Schonberg  <schonberg@adacore.com>
7327
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.
7334
73352005-02-09  Ed Schonberg  <schonberg@adacore.com>
7336
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.
7344
73452005-02-09  Doug Rupp  <rupp@adacore.com>
7346
7347	* gnatbl.c: [VMS] (_POSIX_EXIT): Define.
7348	[VMS] (#define exit hack): Remove.
7349
73502005-02-09  Pascal Obry  <obry@adacore.com>
7351	    Arnaud Charlet  <charlet@adacore.com>
7352
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.
7365
7366	* seh_init.c: New file.
7367
7368	* Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
7369	(GNATBIND_OBJS): Idem.
7370
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.
7374
7375	* raise.h: (__gnat_install_SEH_handler): New prototype.
7376	Update copyright notice.
7377
7378	* s-tassta.adb (Task_Wrapper): Declare the exception registration
7379	record and initialize it by calling __gnat_install_SEH_handler.
7380
73812005-02-09  Vincent Celier  <celier@adacore.com>
7382
7383	* make.adb (Gnatmake): Do not fail when the main project has no object
7384	directory.
7385
73862005-02-09  Doug Rupp  <rupp@adacore.com>
7387
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.
7391
7392	* s-asthan-vms.adb: Removed.
7393	* s-asthan-vms-alpha.adb: Added.
7394
73952005-02-09  Pascal Obry  <obry@adacore.com>
7396
7397	* Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
7398	(LIBGNAT_OBJS): Add seh_init.o.
7399
74002005-02-09  Arnaud Charlet  <charlet@adacore.com>
7401
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.
7407
74082005-02-09  Vincent Celier  <celier@adacore.com>
7409
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".
7414
74152005-02-09  Ed Schonberg  <schonberg@adacore.com>
7416
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.
7430
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.
7437
74382005-02-09  Ed Schonberg  <schonberg@adacore.com>
7439
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.
7444
74452005-02-09  Cyrille Comar  <comar@adacore.com>
7446
7447	* s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
7448	Minor reformatting.
7449
74502005-02-09  Arnaud Charlet  <charlet@adacore.com>
7451
7452	* s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
7453	fields for foreign threads.
7454
74552005-02-09  Doug Rupp  <rupp@adacore.com>
7456
7457	* s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
7458	recursion warnings when compiled with -gnatdm.
7459
74602005-02-09  Robert Dewar  <dewar@adacore.com>
7461
7462	* usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
7463	Slight fix to documentation of -gnaty with no parameters
7464
7465	* xr_tabls.ads: Add ??? comment for missing overall comment
7466
7467	* xsinfo.adb: Make default file name be sinfo.h, since this is what
7468	we now use by default.
7469
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.
7473
7474	* a-numeri.ads: Add reference to AI-388 for greek letter pi
7475	identifier.
7476
7477	* clean.adb: Minor reformatting.
7478
7479	* gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
7480	gnatname.adb: Minor reformatting
7481	Add 2005 to copyright output when utility is run
7482
7483	* csets.adb: Eliminate obsolete comment
7484
7485	* debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
7486	Update comments.
7487
7488	* sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
7489
74902005-02-09  Sergey Rybin  <rybin@adacore.com>
7491
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").
7497
74982005-02-09  Florian Villoing  <villoing@adacore.com>
7499
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.
7505
75062005-02-09  Arnaud Charlet  <charlet@adacore.com>
7507
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++.
7511
75122005-02-09  Pascal Obry  <obry@adacore.com>
7513
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.
7519
75202005-02-09  Ben Brosgol  <brosgol@adacore.com>
7521
7522	* gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
7523	Edited gnatmetric chapter
7524
75252005-02-09  Robert Dewar  <dewar@adacore.com>
7526
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
7531
75322005-02-09  Pascal Obry  <obry@adacore.com>
7533
7534	* s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
7535
75362005-02-09  Jose Ruiz  <ruiz@adacore.com>
7537
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.
7541
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.
7545
75462005-02-09  Thomas Quinot  <quinot@adacore.com>
7547
7548	* exp_util.ads: Minor correction in comment.
7549
75502005-02-09  Arnaud Charlet  <charlet@adacore.com>
7551
7552	* s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
7553	since this procedure is now too complex to be worth inlining.
7554
75552005-02-09  Richard Henderson  <rth@redhat.com>
7556
7557	* utils.c (gnat_define_builtin): Remove.
7558	(gnat_install_builtins): Use build_common_builtin_nodes.
7559
75602005-02-09  Arnaud Charlet  <charlet@adacore.com>
7561
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.
7597
75982005-01-27  Laurent Guerby  <laurent@guerby.net>
7599
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:
7604
76052005-01-27  Laurent Guerby  <laurent@guerby.net>
7606
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.
7612
76132005-01-27  Joel Sherrill  <joel.sherrill@oarcorp.com>
7614	    Laurent Guerby  <laurent@guerby.net>
7615
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.
7620
76212005-01-26  Laurent Guerby  <laurent@guerby.net>
7622
7623	PR ada/19414
7624	* i-cobol.adb (Valid_Numeric): Handle zero length case.
7625
76262005-01-20  Richard Henderson  <rth@redhat.com>
7627
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.
7633
76342005-01-18  Jakub Jelinek  <jakub@redhat.com>
7635
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.
7639
76402005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
7641
7642	* system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
7643	to True.
7644
76452005-01-18  Richard Henderson  <rth@redhat.com>
7646
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.
7651
76522005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
7653
7654	* system-darwin-ppc.ads (ZCX_By_Default): Change to True.
7655	(GCC_ZCX_Support): Likewise.
7656
76572005-01-11  Bastian Blank  <waldi@debian.org>
7658
7659	* system-linux-s390.ads: Define Preallocated_Stacks.
7660	* system-linux-s390x.ads: Likewise.
7661
76622005-01-04  Arnaud Charlet  <charlet@adacore.com>
7663
7664	* gnat_ugn.texi: Fix texi errors with null variables.
7665
76662005-01-03  Thomas Quinot  <quinot@adacore.com>
7667
7668	* gen-soccon.c: New utility program to generate g-soccon.ads
7669	automatically.
7670
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.
7673
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.
7680
76812005-01-03  Robert Dewar  <dewar@adacore.com>
7682	    Ed Schonberg  <schonberg@adacore.com>
7683	    Vincent Celier  <celier@adacore.com>
7684
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.
7688
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
7695
7696	* exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
7697	attribute Mod.
7698
7699	* par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
7700
7701	* snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
7702	pragma restrictions.
7703	New entry for Ada 2005 attribute Mod.
7704
7705	* par-prag.adb:
7706	Add recognition of new pragma Restrictions No_Dependence
7707	Recognize restriction No_Obsolescent_Features at parse time
7708
7709	* bcheck.adb: Add circuitry for checking for consistency of
7710	No_Dependence restrictions.
7711
7712	* lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
7713	restrictions.
7714
7715	* restrict.ads, restrict.adb: Add subprograms to deal with
7716	No_Dependence restrictions.
7717
7718	* rtsfind.adb: Check that implicit with's do not violate No_Dependence
7719	restrictions.
7720
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
7723
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
7727
7728	* scn.adb: (Obsolescent_Check): New procedure
7729	Needed for new restriction No_Obsolescent_Features
7730
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.
7736
7737	* s-rident.ads: Add new restriction No_Obsolescent_Features.
7738
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.
7746
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.
7751
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.
7756
7757	* a-numeri.ads: Add greek letter pi as alternative spelling of Pi
7758
77592005-01-03  Robert Dewar  <dewar@adacore.com>
7760
7761	* atree.adb: Add a fifth component to entities
7762	This allows us to add 32 flags and four new fields
7763
7764	* atree.ads: Add a fifth component to entities
7765	This allows us to add 32 flags and four new fields
7766
7767	* einfo.ads, einfo.adb: Document new fields and new flags now available
7768	Add routines for printing new fields
7769
7770	* treepr.adb: Call routines to print out additional fields if present
7771
77722005-01-03  Arnaud Charlet  <charlet@adacore.com>
7773
7774	* bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
7775	gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
7776
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.
7785
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.
7790
7791	* a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
7792	files.
7793
77942005-01-03  Samuel Tardieu  <tardieu@adacore.com>
7795
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.
7799
78002005-01-03  Olivier Hainque  <hainque@adacore.com>
7801
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.
7810
7811	* gigi.h (builtin_decl_for): Declare (new function).
7812
7813	* utils.c (gnat_install_builtins): Install the target specific builtins.
7814	(builtin_decl_for): New function, provide a dummy body for now.
7815
78162005-01-03  Geert Bosch  <bosch@adacore.com>
7817
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.
7821
7822	* trans.c (convert_with_check): Reimplement conversion of float to
7823	integer.
7824
78252005-01-03  Ed Schonberg  <schonberg@adacore.com>
7826	    Vincent Celier  <celier@adacore.com>
7827
7828	* exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
7829	bounds can be negative, and must be declared Int, not Nat.
7830
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.
7833
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.
7836
78372005-01-03  Ed Schonberg  <schonberg@adacore.com>
7838
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.
7843
78442005-01-03  Thomas Quinot  <quinot@adacore.com>
7845
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.
7862
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.
7866
7867	* s-stratt.adb: Fix typo in comment.
7868
78692005-01-03  Thomas Quinot  <quinot@adacore.com>
7870
7871	* exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
7872	copied from Make_Init_Call).
7873
7874	* exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
7875	reads and assignments on a temporary variable declared with appropriate
7876	discriminants.
7877
78782005-01-03  Robert Dewar  <dewar@adacore.com>
7879
7880	* i-c.adb (To_C): Raise CE if string is null and Append_Null
7881
78822005-01-03  Robert Dewar  <dewar@adacore.com>
7883
7884	* i-cstrin.adb (Update): Do not append a null in form called with a
7885	String. This avoids unintended behavior.
7886
78872005-01-03  Arnaud Charlet  <charlet@adacore.com>
7888
7889	PR ada/17527
7890	* init.c: Fix warnings on Free BSD section.
7891
78922005-01-03  Arnaud Charlet  <charlet@adacore.com>
7893
7894	PR ada/16949
7895	* sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
7896	xsinfo.adb).
7897
78982005-01-03  Vincent Celier  <celier@adacore.com>
7899
7900	* make.adb (Collect_Arguments_And_Compile): Do not attempt to build
7901	libraries when Unique_Compile is True (-u switch).
7902	(Gnatmake): ditto.
7903
79042005-01-03  Robert Dewar  <dewar@adacore.com>
7905
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.
7908
79092005-01-03  Arnaud Charlet  <charlet@adacore.com>
7910
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.
7914
79152005-01-03  Robert Dewar  <dewar@adacore.com>
7916
7917	* par.adb: Enhance error message handling for configuration file
7918	pragmas.
7919
79202005-01-03  Robert Dewar  <dewar@adacore.com>
7921
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).
7925
79262005-01-03  Ed Schonberg  <schonberg@adacore.com>
7927	    Sergey Rybin  <rybin@adacore.com>
7928
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.
7933
79342005-01-03  Ed Schonberg  <schonberg@adacore.com>
7935
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.
7940
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.
7944
79452005-01-03  Vincent Celier  <celier@adacore.com>
7946
7947	* s-fileio.adb (Temp_File_Record): Change length of string component
7948	Name from L_tmpnam + 1 to max_path_len + 1.
7949
79502005-01-03  Arnaud Charlet  <charlet@adacore.com>
7951
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.
7955
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.
7959
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.
7964
79652005-01-03  Ben Brosgol  <brosgol@adacore.com>
7966	    Robert Dewar  <dewar@adacore.com>
7967	    Cyrille Comar  <comar@adacore.com>
7968
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.
7979
79802005-01-03  Robert Dewar  <dewar@adacore.com>
7981
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.
7985
7986	* errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
7987	sem_ch2.adb: Minor reformatting
7988
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.
7992
79932005-01-03  Pascal Obry  <obry@adacore.com>
7994
7995	* exp_attr.ads: Minor reformatting.
7996
79972005-01-03  Romain Berrendonner  <berrendo@adacore.com>
7998
7999	* comperr.adb (Compiler_Abort): Add specialized message for GAP
8000	versions.
8001
80022005-01-03  Ed Schonberg  <schonberg@adacore.com>
8003
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.
8007
8008
8009
8010Copyright (C) 2005 Free Software Foundation, Inc.
8011
8012Copying and distribution of this file, with or without modification,
8013are permitted in any medium without royalty provided the copyright
8014notice and this notice are preserved.
8015