12007-12-27  Samuel Tardieu  <sam@rfc1149.net>
2
3	PR ada/34553
4	* adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp()
5	instead of mktemp() or tmpnam() on NetBSD.
6
72007-12-23  Eric Botcazou  <ebotcazou@adacore.com>
8
9	* trans.c (call_to_gnu): Make the temporary for non-addressable
10	In parameters passed by reference.
11	(addressable_p): Return true for STRING_CST and CALL_EXPR.
12
132007-12-19  Robert Dewar  <dewar@adacore.com>
14
15	* g-expect-vms.adb, g-expect.adb, s-poosiz.adb:
16	Add pragma Warnings (Off) for unassigned IN OUT arguments
17
18	* sem_warn.adb (Output_Reference): Suppress messages for internal names
19	(Check_References): Extensive changes to tune up warnings
20	(Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings
21	(Has_Pragma_Unmodifed_Check_Spec): New function
22	(Check_References): Implement pragma Unmodified
23	(Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified
24
25	* par-prag.adb: Dummy entry for pragma Unmodified
26
27	* sem_prag.adb: Implement pragma Unmodified
28
29	* einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag
30	(Proc_Next_Component_Or_Discriminant): Fix typo.
31	Update comments.
32
33	* sem_util.adb (Note_Possible_Modification): Add processinng for pragma
34	Unmodified.
35	(Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func,
36	because the former already takes care of discarding the result.
37	(Mark_Coextensions): Remove ununused initial value from Is_Dynamic.
38	Add comment.
39
40	* snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified
41
422007-12-19  Eric Botcazou  <ebotcazou@adacore.com>
43
44	* targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads,
45	system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
46	system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads,
47	system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads,
48	system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
49	system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
50	system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
51	system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
52	system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
53	system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads
54	(Dynamic_Trampolines_Used): Delete.
55
56	* system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto.
57	Turn on stack probing mechanism on LynxOS.
58
592007-12-19  Bob Duff  <duff@adacore.com>
60
61	* atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate
62	the resulting tail recursion by hand. This prevents running out of
63	memory on deeply nested concatenations, since Field2 is where the left
64	operand of concatenations is stored.
65	Fix bug (was returning OK_Orig in some cases). Fix return subtype to
66	clarify that it can only return OK or Abandon.
67
68	* sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left
69	operand by iteration, in order to avoid running out of memory on
70	deeply-nested concatenations. Use the Parent pointer to get back up the
71	tree.
72	(Resolve_Op_Concat_Arg, Resolve_Op_Concat_First,
73	 Resolve_Op_Concat_Rest): New procedures split out of
74	Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is
75	clearer.
76
77	* checks.adb (Remove_Checks): Use Traverse_Proc instead of
78	Traverse_Func, because the former already takes care of discarding the
79	result.
80
81	* errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func,
82	because the former already takes care of discarding the result.
83	(Remove_Warning_Messages): Use appropriate subtype for Status and
84	Discard
85
862007-12-19  Ed Schonberg  <schonberg@adacore.com>
87
88	* exp_aggr.adb (Not_OK_For_Backend): A component of a private type with
89	discriminants forces expansion of the aggregate into assignments.
90	(Init_Record_Controller):  If the type of the aggregate is untagged and
91	is not inherently limited, the record controller is not limited either.
92
932007-12-19  Robert Dewar  <dewar@adacore.com>
94
95	* exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in
96	handling compile time known size of record or array (case of front end
97	layout active, e.g. in GNAAMP).
98
992007-12-19  Javier Miranda  <miranda@adacore.com>
100
101	* exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry
102	that forces the construction of static dispatch tables in case of
103	record subtypes.
104
1052007-12-19  Robert Dewar  <dewar@adacore.com>
106
107	* exp_ch9.adb (Null_Statements): Moved to library level
108	(Trivial_Accept_OK): New function
109	(Expand_Accept_Declaration): Use Trivial_Accept_OK
110	(Expand_N_Accept_Statement): Use Trivial_Accept_OK
111
1122007-12-19  Robert Dewar  <dewar@adacore.com>
113
114	* exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type
115	in complex case where array is Volatile.
116
1172007-12-19  Ed Schonberg  <schonberg@adacore.com>
118
119	* freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement
120	properly the Ada2005 rules concerning when the current instance of a
121	record type is aliased.
122
1232007-12-19  Ed Schonberg  <schonberg@adacore.com>
124
125	* par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in
126	mangled declaration
127	(P_Type_Declaration): Diagnose misuse of "abstract" in untagged record
128	declarations.
129	(P_Variant_Part): Cleaner patch for parenthesized discriminant
130
1312007-12-19  Vincent Celier  <celier@adacore.com>
132
133	* prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when
134	package is not known
135
136	* prj-attr.ads (Unknown_Package): New constant
137	Do not crash when an unknown package is in several projects
138
139	* prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as
140	ignored
141
142	* prj-nmsc.adb (Check): Remove obsolete code related to no longer
143	existing package Language_Processing.
144
1452007-12-19  Ed Schonberg  <schonberg@adacore.com>
146	    Gary Dismukes  <dismukes@adacore.com>
147	    Samuel Tardieu  <sam@rfc1149.net>
148
149	PR ada/15803, ada/15805
150	* sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose
151	illegal access subtypes when there is a constrained partial view.
152	(Check_For_Premature_Usage): New procedure inside
153	Access_Subprogram_Declaration for checking that an access-to-subprogram
154	type doesn't reference its own name within any formal parameters or
155	result type (including within nested anonymous access types).
156	(Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage.
157	(Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the
158	context is an access_to_variable, the expression cannot be an
159	access_to_constant.
160
1612007-12-19  Bob Duff  <duff@adacore.com>
162
163	* sem_ch4.adb (Analyze_Concatenation_Rest): New procedure.
164	(Analyze_Concatenation): Use iteration instead of recursion in order
165	to avoid running out of stack space for deeply nested concatenations.
166
1672007-12-19  Ed Schonberg  <schonberg@adacore.com>
168	    Gary Dismukes  <dismukes@adacore.com>
169
170	* sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings
171	whose renamed entity is a subprogram that requires overriding.
172	(Premature_Usage): Test for the case of N_Full_Type_Declaration when
173	issuing an error for premature usage and issue a message that says
174	'type' rather than 'object'.
175
1762007-12-19  Gary Dismukes  <dismukes@adacore.com>
177
178	PR ada/34149
179	* sem_disp.adb (Check_Dispatching_Call): Augment existing test for
180	presence of a statically tagged operand (Present (Static_Tag)) with
181	test for Indeterm_Ancestor_Call when determining whether to propagate
182	the static tag to tag-indeterminate operands (which forces dispatching
183	on such calls).
184	(Check_Controlling_Formals): Ada2005, access parameters can have
185	defaults.
186	(Add_Dispatching_Operation, Check_Operation_From_Private_View): do
187	not insert subprogram in list of primitive operations if already there.
188
1892007-12-19  Tristan Gingold  <gingold@adacore.com>
190
191	* utils.c (create_var_decl_1): call rest_of_decl_compilation only for
192	global variable.
193
1942007-12-19  Thomas Quinot  <quinot@adacore.com>
195
196	Part of PR ada/33688
197	* gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary
198	datagram info on Linux.
199
2002007-12-19  Vincent Celier  <celier@adacore.com>
201
202	* makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so
203	that the source path name is always found in the dependencies.
204
2052007-12-19  Robert Dewar  <dewar@adacore.com>
206
207	* gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o
208	Fix name of Wide_Wide_Latin_1/9 file names
209	Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads)
210	Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode
211	Add missing documentation for Ada.Command_Line.Response_File
212	Update list of warning letters for Warnings pragma
213	Add documentation for pragma Unmodified
214
2152007-12-19  Samuel Tardieu  <sam@rfc1149.net>
216
217	* Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target.
218
2192007-12-17  Arnaud Charlet  <charlet@adacore.com>
220
221	* s-vxwork-alpha.ads: Removed, no longer used.
222
2232007-12-15  Jakub Jelinek  <jakub@redhat.com>
224
225	* Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line.
226
2272007-12-13  Samuel Tardieu  <sam@rfc1149.net>
228
229	PR ada/34360
230	* Makefile.in: Change two occurrences of mlib-tgt.adb by correct name
231	mlib-tgt-specific.adb.
232
2332007-12-13  Bob Duff  <duff@adacore.com>
234
235	* trans.c (Attribute_to_gnu): Check for violations of the
236	No_Implicit_Dynamic_Code restriction. This checking used to be done in
237	the front end, but is moved here so we can make it more accurate.
238
2392007-12-13  Pascal Obry  <obry@adacore.com>
240
241	* adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy
242	 version is provided for older GNU/Linux distribution not
243	 supporting thread affinity sets.
244
245	* s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf
246	call.
247	(bit_field): New packed boolean type used by cpu_set_t.
248	(cpu_set_t): New type corresponding to the C type with
249	the same name. Note that on the Ada side we use a bit
250	field array for the affinity mask. There is not need
251	for the C macro for setting individual bit.
252	(pthread_setaffinity_np): New imported routine.
253
254	* s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is
255	no null.
256	(Create_Task): Set the processor affinity mask if information
257	is present.
258
259	* s-tasinf-linux.ads, s-tasinf-linux.adb: New files.
260
2612007-12-13  Robert Dewar  <dewar@adacore.com>
262
263	* s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
264	s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads,
265	s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads,
266	s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb,
267	s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads,
268	s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads,
269	s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads,
270	i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C
271	for subprogram pointers.
272
273	* g-ctrl_c.adb: New file.
274
275	* g-ctrl_c.ads (Install_Handler): New body.
276
277	* freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always
278	instead of obsolete function Is_Always_Inlined.
279	(Freeze_Entity): check for tagged type in imported C subprogram
280	(Freeze_Entity): check for 8-bit boolean in imported C subprogram
281	(Freeze_Entity): check for convention Ada subprogram pointer in
282	imported C subprogram.
283	(Freeze_Fixed_Point_Type): In the case of a base type where the low
284	bound would be chopped off and go from negative to zero, force
285	Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower
286	bound) so that the size computation for the base type will take
287	negative values into account.
288
2892007-12-13  Eric Botcazou  <ebotcazou@adacore.com>
290	    Bob Duff  <duff@adacore.com>
291	    Tristan Gingold  <gingold@adacore.com>
292
293	* system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
294	system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
295	system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads,
296	system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
297	system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
298	system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
299	system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
300	system-vxworks-arm.ads, system-darwin-x86.ads, system.ads,
301	system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
302	system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads,
303	system-vms-ia64.ads (Stack_Check_Limits): New target parameter.
304	(Always_Compatible_Rep): New flag to control trampolines globally.
305	(Dynamic_Trampolines_Used): New flag for implementing the
306	No_Implicit_Dynamic_Code restriction more correctly (not yet used,
307	and not yet set correctly for some targets).
308
309	* s-taprop-vxworks.adb: Use stack limit method of stack checking.
310	Simply indirectly call s-stchop when a task is created.
311
312	* ali.ads:
313	New flag added: Stack_Check_Switch_Set which is set when '-fstack-check'
314	appears as an argument (entries A) in an ALI file.
315
316	* fe.h (Stack_Check_Limits): Declare new target parameter.
317	(Check_Implicit_Dynamic_Code_Allowed): New procedure.
318
319	* init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS.
320	This variable is declared in C to be sure not subject to elaboration
321	code.
322	(__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to
323	Storage_Error.
324
325	* targparm.ads, targparm.adb (Stack_Check_Limits): New parameter.
326	(Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters.
327
328	* s-stchop.ads: Add comments.
329
330	* s-stchop-vxworks.adb: Package almost fully rewritten to use stack
331	limit method of stack checking.
332
333	* s-stchop-limit.ads: New file.
334
3352007-12-13  Robert Dewar  <dewar@adacore.com>
336
337	* sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb,
338	a-cihama.adb, g-awk.adb,
339	s-inmaop-posix.adb: Update handling of assigned value/unreferenced
340	warnings
341
342	* exp_smem.adb: Update handling of assigned value/unreferenced warnings
343
344	* sem.adb: Update handling of assigned value/unreferenced warnings
345
346	* a-exexpr-gcc.adb: Add a pragma warnings off for boolean return
347
348	* lib-xref.ads: Improve documentation for k xref type
349
350	* lib-xref.adb:
351	Update handling of assigned value/unreferenced warnings
352	(Generate_Reference): Warning for reference to entity for which a
353	pragma Unreferenced has been given should be unconditional.
354	If the entity is a discriminal, mark the original
355	discriminant as referenced.
356
357	* sem_warn.ads, sem_warn.adb
358	(Check_One_Unit): Test Renamed_In_Spec to control giving warning for
359	no entities referenced in package
360	(Check_One_Unit): Don't give message about no entities referenced in
361	a package if a pragma Unreferenced has appeared.
362	Handle new warning flag -gnatw.a/-gnatw.A
363	Update handling of assigned value/unreferenced warnings
364
365	* atree.h: Add flags up to Flag247
366	(Flag231): New macro.
367
3682007-12-13  Jose Ruiz  <ruiz@adacore.com>
369
370	* adaint.h: (__gnat_plist_init): Not defined for RTX.
371
372	* initialize.c (__gnat_initialize): Do not call __gnat_plist_init for
373	RTX systems.
374
375	* Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb.
376	(LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB,
377	EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS,
378	GNATLIB_SHARED for RTX run time): Use the versions required by RTX.
379
380	* mingw32.h:
381	Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported.
382
383	* sysdep.c (winflush_function for RTX): Procedure that does nothing
384	since we only have problems with Windows 95/98, which are not
385	supported by RTX.
386	(__gnat_ttyname): Return the empty string on Nucleus, just as
387	done on vxworks.
388
3892007-12-13  Robert Dewar  <dewar@adacore.com>
390
391	* a-textio.adb, a-textio.ads:
392	Extensive changes to private part for wide character encoding
393
394	* a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb
395	(Look_Ahead): Fix mishandling of encoded sequences
396	Move declaration of Wch_Con to private part (should not be visible)
397
398	* ali.adb (Scan_ALI): Set default encoding method to brackets instead of
399	UTF-8. Probably this is never used, but if it is, brackets is
400	clearly correct.
401
402	* bindgen.adb (Get_WC_Encoding): New procedure to properly handle
403	setting wide character encoding for no main program case and when
404	encoding is specified using -W?
405	Initialize stack limit of environment task if stack limit method of
406	stack checking is enabled.
407	(Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method
408	(Gen_Adainit_C): Use Get_WC_Encoding to output encoding method
409	(Get_Main_Unit_Name): New function.
410	(Gen_Adainit_Ada): Add call to main program for .NET when needed.
411	(Gen_Output_File): Set Bind_Main_Program to True for .NET
412
413	* bindusg.adb: Add line for -Wx switch
414
415	* s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function
416	Add comments
417	Add new useful constant WC_Longest_Sequences
418
419	* switch-b.adb: Clean up handling of -Wx switch
420	For -gnatWx, set Wide_Character_Encoding_Method_Specified
421
422	* switch-c.adb: -gnatg activates warning on assertion errors
423	For -gnatWx, set Wide_Character_Encoding_Method_Specified
424
425	* s-wchcon.adb: (Is_Start_Of_Encoding): New function
426
4272007-12-13  Robert Dewar  <dewar@adacore.com>
428	    Ed Schonberg  <schonberg@adacore.com>
429
430	* a-ngcoty.adb: New pragma Fast_Math
431
432	* opt.adb: New pragma Fast_Math
433
434	* par-prag.adb:
435	Add Implemented_By_Entry to the list of pragmas which do not require any
436	special processing.
437	(Favor_Top_Level): New pragma.
438	New pragma Fast_Math
439
440	* exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv
441	(Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
442	Expand_Allocator_Expression): Take into account VM_Target
443	(Expand_Attribute, case 'Identity):  Handle properly the case where
444	the prefix is a task interface.
445	New pragma Fast_Math
446
447	* par.adb (Next_Token_Is): New function
448	(P_Pragma): Add Skipping parameter
449	(U_Left_Paren): New procedure
450	(U_Right_Paren): New procedure
451	New pragma Fast_Math
452
453	* par-ch10.adb (P_Subunit): Unconditional msg for missing ) after
454	subunit
455	New pragma Fast_Math
456
457	* sem_prag.adb: Add significance value to table Sig_Flag for pragma
458	Implemented_By_Entry.
459	(Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry.
460	(Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep
461	items, since it can apply to more than one overloadable entity. Set
462	new flag Has_Pragma_Inline_Always for Inline_Always case.
463	(Analyze_Pragma, case Complex_Representation): Improve error message.
464	(Analyze_Pragma, case Assert): When assertions are disabled build the
465	rewritten code with Sloc of expression rather than pragma, so new
466	warning about failing is not deleted.
467	(Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to
468	protected types and update error message to reflect that. Test whether
469	the protected type is allowed for the pragma (an error is issued if the
470	type has any entries, or components that do not have preelaborable
471	initialization).
472	New pragma Fast_Math
473	(Analyze_Pragma, case No_Return): Handle generic instance
474
475	* snames.h, snames.ads, snames.adb:
476	Add new predefined name for interface primitive _Disp_Requeue.
477	New pragma Fast_Math
478
479	* a-tags.ads, a-tags.adb: New calling sequence for
480	String_To_Wide_[Wide_]String
481	(Secondary_Tag): New subprogram.
482
483	* exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here
484	from Exp_Attr
485	New calling sequence for String_To_Wide_[Wide_]String
486	(Expand_Image_Attribute): Major rewrite. New calling sequence avoids
487	the use of the secondary stack for image routines.
488
489	* a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New
490	calling sequence for String_To_Wide_[Wide_]String
491
492	* par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in
493	Ada 95 mode
494	(P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully
495	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
496
497	* par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode
498	(P_Formal_Part): Use Skipping parameter in P_Pragma call
499	to improve error recovery
500
501	* par-util.adb (Next_Token_Is): New function
502	(Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function
503
504	* par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to
505	semicolon if missing
506	(P_Pragma): Implement new Skipping parameter
507	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
508	Fix location of flag for unrecognized pragma message
509
510	* par-tchk.adb (U_Left_Paren): New procedure
511	(U_Right_Paren): New procedure
512
5132007-12-13  Geert Bosch  <bosch@adacore.com>
514
515	* a-tifiio.adb:
516	(Put_Int64): Use Put_Digit to advance Pos. This fixes a case where
517	the second or later Scaled_Divide would omit leading zeroes,
518	resulting in too few digits produced and a Layout_Error as result.
519	(Put): Initialize Pos.
520
5212007-12-13  Robert Dewar  <dewar@adacore.com>
522
523	atree.ads, atree.adb (Flag231..Flag247): New functions
524	(Set_Flag231..Set_Flag247): New procedures
525	(Basic_Set_Convention): Rename Set_Convention to be
526	Basic_Set_Convention
527	(Nkind_In): New functions
528	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
529
530	* exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always
531	instead
532	 of obsolete function Is_Always_Inlined
533	(Register_Predefined_DT_Entry): Initialize slots of the second
534	secondary dispatch table.
535	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
536	(Expand_N_Function_Call): Remove special provision for stack checking.
537
538	* exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
539	Include _Disp_Requeue in the list of predefined operations.
540	(Find_Interface_ADT): Modified to fulfill the new specification.
541	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
542
543	* par-ch4.adb, nlists.ads, nlists.adb:
544	Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List
545
546	* sinfo.ads, sinfo.adb: (Nkind_In): New functions
547	Fix location of flag for unrecognized pragma message
548
549	* sem_ch7.adb: Use Nkind_In
550
5512007-12-13  Vincent Celier  <celier@adacore.com>
552
553	* opt.ads:
554	Indicate what flags are used by the Project Manager, gprbuild and
555	gprclean.
556	(Opt.Follow_Links_For_Dirs): New flag
557	(Warn_On_Assertion_Failure): New flag
558	(Wide_Character_Encoding_Method_Specified): New flag
559	(Suppress_All_Inlining): New switch set by -fno-inline
560	(Real_VMS_Target): New flag
561	New pragma Fast_Math
562
5632007-12-13  Robert Dewar  <dewar@adacore.com>
564
565	* back_end.adb: Recognize -fno-inline
566
5672007-12-13  Robert Dewar  <dewar@adacore.com>
568
569	* checks.adb: Fix optimization problem with short-circuited form
570
5712007-12-13  Bob Duff  <duff@adacore.com>
572
573	* clean.adb (Usage): Add line for -aP
574	(Check_Version_And_Help): Change Check_Version_And_Help to be generic,
575	with a parameter "procedure Usage", instead of passing a pointer to a
576	procedure. This is to eliminate trampolines (since the Usage procedure
577	is often nested in a main procedure, and it would be inconvenient to
578	unnest it).
579
580	* g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch
581	to be generic, with a parameter "procedure Callback (...)", instead of
582	passing a pointer to a procedure. This is to eliminate trampolines
583	(since the Callback procedure is usually nested).
584
585	* gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb,
586	gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb
587	(Check_Version_And_Help): Change Check_Version_And_Help to be generic.
588
589	* g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets):
590	Use the generic Heap_Sort_G instead of Heap_Sort_A.
591
5922007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
593
594	* einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry.
595	(Implemented_By_Entry, Set_Implemented_By_Entry): New routines.
596	(Write_Entry_Flags): Add an entry for Implemented_By_Entry.
597	(Renamed_In_Spec): New flag
598	(Has_Pragma_Inline_Always): New flag
599	Add missing doc for pragma Obsolescent_Warning
600	Add missing doc for 17 additional unused flags (230-247)
601	(Is_Derived_Type): Remove condition "not Is_Generic_Type".
602	Alphabetize with clauses.
603	Separate Is_Thunk and Has_Thunks flags
604	(Write_Entity_Flags): Add forgotten entry for Has_Thunks
605	(Related_Interface): Renamed to Related_Type.
606	(Has_Thunks/Set_Has_Thunks): Subprograms of new attribute.
607	(Set_Is_Flag): Restrict the assertion.
608
6092007-12-13  Vincent Celier  <celier@adacore.com>
610
611	* errout.adb (Output_Source_Line): Do not keep a trailing space after
612	the source line number if the source line is empty.
613
6142007-12-13  Geert Bosch  <bosch@adacore.com>
615
616	* eval_fat.adb (Decompose_Int): Handle argument of zero.
617	(Compose): Remove special casing of zero.
618	(Exponent): Likewise.
619	(Fraction): Likewise.
620	(Machine): Likewise.
621	(Decompose): Update comment.
622
6232007-12-13  Ed Schonberg  <schonberg@adacore.com>
624
625	* exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a
626	limited ancestor part, initialize controllers of enclosing record
627	before expanding ancestor aggregate.
628	(Gen_Assign): If a component of the aggregate is box-initialized, add
629	code to call Initialize if the component is controlled, and explicit
630	assignment of null if the component is an access type.
631
632	Handle properly aggregates for limited types that appear in object
633	declarations when the aggregate contains controlled values such as
634	protected types.
635	When expanding limited aggregates into individual components, do not
636	call Adjust on controlled components that are limited.
637
6382007-12-13  Ed Schonberg  <schonberg@adacore.com>
639
640	* expander.adb: Take into account N_Subprogram_Renaming_Declaration
641
6422007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
643
644	* exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of
645	predefined primitive _Disp_Requeue.
646	(Make_Predefined_Primitive_Specs): Create the spec for predefined
647	primitive _Disp_Requeue.
648	(Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the
649	type of formal Renamed_Eq to Entity_Id (instead of Node_Id).
650	(Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is
651	an interface type. In case of limited interfaces we now declare all the
652	predefined primitives associated with synchronized interfaces as
653	abstract.
654	(Predef_Spec_Or_Body): For interface types generate abstract subprogram
655	declarations.
656	(Predefined_Primitive_Bodies): Add body of "=" if the parent of the
657	tagged type is an interface type and there is no user-defined equality
658	function.
659	Add also bodies of predefined primitives associated with synchronized
660	interfaces.
661	(Freeze_Record_Type): Do not build bodies of predefined primitives of
662	interface types because they are now defined abstract.
663	Add missing documentation.
664	(Expand_Record_Controller): Update occurrence of Related_Interface
665	to Related_Type.
666	(Build_Offset_To_Top_Functions): Do nothing in case of VM.
667	(Expand_N_Object_Declaration): Take into account VM_Target when handling
668	class wide interface object declaration.
669	(Expand_Previous_Access_Type): Do not create a duplicate master entity
670	if the access type already has one.
671	(Expand_N_Object_Declaration): Defend against attempt to validity check
672	generic types. Noticed for -gnatVcf specified with previous errors.
673
6742007-12-13  Arnaud Charlet  <charlet@adacore.com>
675
676	* exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer,
677	Expand_Allocator_Expression): Take into account VM_Target
678
679	* exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use
680	secondary stack when VM_Target /= No_VM
681
6822007-12-13  Javier Miranda  <miranda@adacore.com>
683	    Ed Schonberg  <schonberg@adacore.com>
684
685	* exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute
686	Is_Complation_Unit by Is_Library_Level_Entity in the code
687	that decides if the static dispatch tables need to be built.
688	(Wrap_Transient_Declaration): Do not generate a finalization call if
689	this is a renaming declaration and the renamed object is a component
690	of a controlled type.
691
6922007-12-13  Gary Dismukes  <dismukes@adacore.com>
693
694	* exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration):
695	In the case where the renamed subprogram is a dereference, call
696	Force_Evaluation on the prefix.
697
6982007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
699	    Ed Schonberg  <schonberg@adacore.com>
700
701	* exp_ch9.adb (Expand_N_Asynchronous_Select,
702	Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and
703	comment reformatting.
704	(Set_Privals): Inherit aliased flag from formal. From code reading.
705	(Build_Simple_Entry_Call): Out parameters of an access type are passed
706	by copy and initialized from the actual. This includes entry parameters.
707	(Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95
708	and Ada 2005 models of requeue.
709	(Null_Statements): Still connsider do-end block null if it contains
710	Unreferenced and Warnings pragmas.
711	(Expand_N_Accept_Statement): Do not optimize away null do end if
712	dispatching policy is other than defaulted.
713	(Expand_N_Timed_Entry_Call): When the triggering statement is a
714	dispatching call, manually analyze the delay statement.
715	(Find_Parameter_Type): Move subprogram to Sem_Util.
716
7172007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
718	    Javier Miranda  <miranda@adacore.com>
719
720	* exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive
721	_Disp_Requeue occupies dispatch table slot number 15. Move
722	_Disp_Timed_Select to slot 16.
723	(Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which
724	generate the spec and body of _Disp_Reqeueue.
725	(Make_DT): Build and initialize the second dispatch table.
726	Handle initialization of RC_Offset when the parent
727	is a private type with variable size components.
728	(Make_Secondary_DT): Complete documentation. Add support to
729	initialize the second dispatch table.
730	(Make_Tags): Generate the tag of the second dispatch table.
731	(Register_Primitive): Add support to register primitives in the
732	second dispatch table.
733
7342007-12-13  Pascal Obry  <obry@adacore.com>
735
736	* expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on
737	Windows. This signal is used by gnatmake to kill child processes for
738	example.
739
7402007-12-13  Javier Miranda  <miranda@adacore.com>
741
742	* exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
743	support for generic dispatching constructor calls in which we need to
744	locate the tag of a secondary dispatch table associated with an
745	interface type to properly dispatch the call.
746	(Expand_N_Attribute_Reference [case Address],
747	Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix
748	handling of VM targets.
749
7502007-12-13  Robert Dewar  <dewar@adacore.com>
751	    Ed Schonberg  <schonberg@adacore.com>
752
753	* exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for
754	assert fail
755
756	* ug_words: Add entries for -gnatw.a -gnatw.A
757
758	* sem_res.adb (Set_String_Literal_Subtype): If the context of the
759	literal is a subtype with non-static constraints, use the base type of
760	the context as the base of the string subtype, to prevent type
761	mismatches in gigi.
762	(Resolve_Actuals): If the actual is an entity name, generate a
763	reference before the actual is resolved and expanded, to prevent
764	spurious warnings on formals of enclosing protected operations.
765	(Analyze_Overloaded_Selected_Component): If type of prefix if
766	class-wide, use visible components of base type.
767	(Resolve_Selected_Component): Ditto.
768	(Resolve_Short_Circuit): Detect case of pragma Assert argument
769	evaluating to False, and issue warning message.
770
771	* usage.adb: Add lines for -gnatw.a and -gnatw.A
772
7732007-12-13  Emmanuel Briot  <briot@adacore.com>
774
775	* g-calend.ads (No_Time): New constant, to represent an uninitialized
776	time value
777
778	* g-catiio.ads, g-catiio.adb (Value): Added support for more date
779	formats.
780	(Month_Name_To_Number): New subprogram
781
782	* g-dirope.adb (Get_Current_Dir): On windows, normalize the drive
783	letter to upper-case.
784
7852007-12-13  Robert Dewar  <dewar@adacore.com>
786	    Ed Schonberg  <schonberg@adacore.com>
787
788	* gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target
789
790	* layout.adb (Resolve_Attribute, case 'Access): If designated type of
791	context is a limited view, use non-limited view when available. If the
792	non-limited view is an unconstrained array, this enforces consistency
793	requirements in 3.10.2 (27).
794	(Layout_Type): For an access type whose designated type is a limited
795	view, examine its declaration to determine if it is an unconstrained
796	array, and size the access type accordingly.
797	(Layout_Type): Do not force 32-bits for convention c subprogram
798	pointers in -gnatdm mode, only if real vms target.
799
800	* sem_attr.adb (Analyze_Access_Attribute): Use new flag
801	Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
802	(Analyze_Access_Attribute,Attribute_Address): Remove checks for
803	violations of the No_Implicit_Dynamic_Code restriction.
804	(Resolve_Attribute, case 'Access): If designated type of context is a
805	limited view, use non-limited view when available. If the non-limited
806	view is an unconstrained array, this enforces consistency requirements
807	in 3.10.2 (27).
808	(Layout_Type): For an access type whose designated type is a limited
809	view, examine its declaration to determine if it is an unconstrained
810	array, and size the access type accordingly.
811
8122007-12-13  Vincent Celier  <celier@adacore.com>
813
814	* gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when
815	object directory of main project does not exist.
816	On VMS, correctly set then environment variable for the source
817	directories.
818
8192007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
820
821	* g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when
822	set to True this procedure will create the value of type REG_EXPAND_SZ.
823	It was only possible to create REG_SZ values before.
824
8252007-12-13  Robert Dewar  <dewar@adacore.com>
826
827	* g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads,
828	g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads,
829	namet-sp.adb, namet-sp.ads: New files.
830
831	* g-speche.adb: Use generic routine in g-spchge
832
833	* s-wchcnv.ads, s-wchcnv.adb:
834	Minor code cleanup (make formal type consistent with spec)
835
836	* namet.adb: Update comments.
837
838	* par-endh.adb (Evaluate_End_Entry): Use new
839	Namet.Sp.Is_Bad_Spelling_Of function
840
841	* par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function
842
843	* sem_aggr.adb (Resolve_Record_Aggregate): If a component of an
844	ancestor is an access type initialized with a box, set its type
845	explicitly, for use in subsequent expansion.
846	(Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of
847	function
848
8492007-12-13  Robert Dewar  <dewar@adacore.com>
850
851	* g-spipat.adb (Break): Fix accessibility error (vsn taking not null
852	access Vstring)
853
8542007-12-13  Robert Dewar  <dewar@adacore.com>
855
856	* inline.adb (Back_End_Cannot_Inline): Use new flag
857	Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined
858
859	* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag
860	Has_Pragma_Inline_Always instead.
861	of obsolete function Is_Always_Inlined
862	(Build_Body_To_Inline): Same change
863	(Cannot_Inline): Same change
864	Do not give warning on exception raise in No_Return function
865
866	* sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited
867	component has two inconsistent component clauses in the same record
868	representation clause, favor the message that complains about
869	duplication rather than inconsistency.
870	Update comments.
871	(Record_Representation_Clause): Do not warn on missing component
872	clauses for inherited components of a type extension.
873	(Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for
874	an overloadable item if it is a pragma that can apply to multiple
875	overloadable entities (e.g. Inline) because a pragma cannot be on
876	more than one chain at a time.
877	(Validate_Unchecked_Conversion): Add code to warn on unchecked
878	conversion where one of the operands is Ada.Calendar.Time.
879	(Analyze_Attribute_Definition_Clause): Fix typo in error message.
880	For now, ignore Component_Size clause on VM targets, as done for
881	pragma Pack.
882
8832007-12-13  Emmanuel Briot  <briot@adacore.com>
884	    Vincent Celier  <celier@adacore.com>
885
886	* prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a
887	string
888	(Must_Check_Configuration, Default_Language_Is_Ada): new flags in
889	prj.ads
890	(Hash): Move instantiation of System.HTable.Hash from spec to body
891	(prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive
892	systems, since we do not need to recompute the Name_Id for the canonical
893	file name.
894	(Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
895	as a parameter. This parameter is in fact always "ada" in all calls, and
896	we were doing 160560 extra calls to Name_Find to convert it to Name_Ada
897	while loading a project with 40000 files
898
899	* prj-attr.adb: Fix name of attribute Dependency_Driver
900	Change the kind of indexing for attribute Root
901
902	* prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of
903	variables already declared, in case constructions.
904
905	* prj-env.adb (Initialize): Reset Current_Source_Path_File and
906	Current_Object_Path_File to No_Path.
907
908	* prj-ext.adb (Initialize_Project_Path): In multi language mode, use
909	ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty.
910
911	* prj-makr.adb: new parameter Current_Dir
912
913	* prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for
914	Ada sources when language is not Ada.
915	Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
916	(Find_Excluded_Sources, Find_Explicit_Sources): new subprograms
917	(Must_Check_Configuration, Default_Language_Is_Ada): new flags.
918	(Locate_Directory): Always resolve links when computing Canonical_Path
919	(Look_For_Sources): Make sure that Name_Buffer contains the file name
920	in Source_Files before checking for the presence of a directory
921	separator.
922	Optimize calls to Name_Find when on case sensitive systems.
923	(Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id
924	as a parameter.
925	(Prj.Nmsc.Check): new parameter Current_Dir
926	(Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They
927	cannot be empty and the spec suffix cannot be the same as the body or
928	separate suffix.
929	(Get_Unit): When a file name can be of several unit kinds (spec, body or
930	subunit), always consider the longest suffix.
931	(Check_Configuration): Do not issue an error if there is no compiler
932	for a language. Just issue a warning and ignore the sources for the
933	language.
934	(Check_Library_Attributes): Only check Library_Dir if Library_Name is
935	not empty.
936	(Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity
937	(Unit_Exceptions): New hash table
938	(Check_Naming_Schemes): Check if a file that could be a unit because of
939	the naming scheme is not in fact a source because there is an exception
940	for the unit.
941	(Look_For_Sources): Put the unit exceptions in hash table
942	Unit_Exceptions
943	(Get_Unit_Exceptions): Give initial value No_Source to local variable
944	Other_Part to avoid exception when code is compiled with validity
945	checking.
946	(Get_Sources_From_File): Check that there is no directory information
947	in the file names.
948	(Look_For_Sources): Check that there is no directory information in the
949	list of file names in Source_Files.
950	(Look_For_Sources): In multi-language mode, do not allow exception file
951	names that are excluded.
952	(Excluded_Sources_Htable): New hash table
953	(Search_Directories.Check_File): New procedure to simplify
954	Search_Directories.
955	(Search_Directories): Do not consider excluded sources
956	(Look_For_Sources): Populate Excluded_Sources_Htable before calling
957	Search_Directories.
958	(Get_Exceptions): Set component Lang_Kind of Source_Data
959	(Get_Unit_Exceptions): Ditto
960	(Search_Directories): Ditto
961
962	* prj-pars.adb: new parameter Current_Dir
963
964	* prj-part.ads, prj-part.adb:
965	Change Opt.Follow_Links to Opt.Follow_Links_For_Files.
966	(Opt.Follow_Links_For_Dirs): New flag
967	(Project_Path_Name_Of): Cache information returned by this routine as
968	Locate_Regular_File is a costly routine. The code to output a log
969	information and the effective call to Locate_Regular_File is now
970	factorized into a routine (code clean-up).
971	(Parse, Parse_Single_Project): new parameter Current_Dir
972	When main project file cannot be found, indicate in the error
973	message the project path that was used to do the search.
974
975	* prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag
976	(Prj.Proc.Process*): new parameter Current_Dir
977
978	* switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files
979
9802007-12-13  Bob Duff  <duff@adacore.com>
981
982	* restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New
983	procedure to be called from the back end to check the
984	No_Implicit_Dynamic_Code restriction.
985
9862007-12-13  Arnaud Charlet  <charlet@adacore.com>
987
988	* rtsfind.adb (Check_CRT): Take into account RTE_Available_Call
989	Fixes another case where RTE_Available_Call was ignored instead of being
990	taken into account.
991	(Load_Fail): Ditto.
992
993	* rtsfind.ads: Add new entries.
994
9952007-12-13  Robert Dewar  <dewar@adacore.com>
996
997	* g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads,
998	g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files.
999
1000	* scn.adb: Implement BOM recognition
1001
10022007-12-13  Thomas Quinot  <quinot@adacore.com>
1003	    Ed Schonberg  <schonberg@adacore.com>
1004
1005	* sem_ch10.adb (Check_Private_Child_Unit): A non-private library level
1006	subprogram body that acts as its own spec may not have a non-private
1007	WITH clause on a private sibling.
1008	(Build_Unit_Name): If the parent unit in the name in a with_clause on a
1009	child unit is a renaming, create an implicit with_clause on that
1010	parent, and not on the unit it renames, to prevent visibility errors
1011	in the current unit.
1012
10132007-12-13  Ed Schonberg  <schonberg@adacore.com>
1014
1015	* sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram
1016	renaming declaration, use the Slocs of the formal parameters from the
1017	declaration of the formal subprogram when creating the formal parameter
1018	entities in the renaming declaration.
1019	(Analyze_Formal_Type_Declaration): Change the placement of the error
1020	message concerning illegal known discriminants. It is now posted on the
1021	type rather than on the first discriminant. This change ensures early
1022	error report.
1023	(Freeze_Subprogram_Body): If the generic subprogram is nested within
1024	the package body that contains the instance, do not generate an
1025	out-of-place freeze node for the enclosing package.
1026	(Collect_Previous_Instantiations): Ignore internal instantiations
1027	generated for formal packages.
1028	(Validate_Derived_Type_Instance): Add a check that when a formal
1029	derived type is Known_To_Have_Preelab_Init then the actual type must
1030	have preelaborable initialization, and issue an error when this
1031	condition is violated.
1032
10332007-12-13  Robert Dewar  <dewar@adacore.com>
1034
1035	* s-imenne.adb, s-imenne.ads: New files.
1036
1037	* s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
1038	s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb,
1039	s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads,
1040	s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb,
1041	s-imgwch.ads: New calling sequence for Image routines to avoid sec
1042	stack usage.
1043
10442007-12-13  Javier Miranda  <miranda@adacore.com>
1045	    Ed Schonberg  <schonberg@adacore.com>
1046
1047	* sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid
1048	generation of spurious error if parent is an interface type; caused
1049	because predefined primitive bodies will be generated later by
1050	Freeze_Record_Type.
1051	(Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init
1052	flag.
1053	(Derive_Subprograms): Handle derivations of predefined primitives
1054	after all the user-defined primitives to ensure that they are
1055	found in proper order in instantiations.
1056	(Add_Interface_Tag_Components, Inherit_Components): Update occurrences
1057	of Related_Interface to Related_Type.
1058	(Record_Type_Declaration): Minor reordering of calls to decorate the
1059	Tag component because the entity must have set its Ekind attribute
1060	before setting its Is_Tag attribute.
1061	(Analyze_Subtype_Declaration): In the case of subtypes with
1062	Private_Kind, inherit Known_To_Have_Preelab_Init from the parent.
1063
10642007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1065	    Ed Schonberg  <schonberg@adacore.com>
1066
1067	* sem_ch4.adb (Analyze_Selected_Component): Include the requeue
1068	statement to the list of contexts where a selected component with a
1069	concurrent tagged type prefix should yield a primitive operation.
1070	(Find_Primitive_Operation): Handle case of class-wide types.
1071	(Analyze_Overloaded_Selected_Component): If type of prefix is
1072	class-wide, use visible components of base type.
1073	(Resolve_Selected_Component): Ditto.
1074	(Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a
1075	formal of a generic subprogram. find candidate interpretations by
1076	scanning the list of generic formal declarations.:
1077	(Process_Implicit_Dereference_Prefix): If the prefix has an incomplete
1078	type from a limited_with_clause, and the full view is available, use it
1079	for subsequent semantic checks.
1080	(Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function
1081	(Find_Primitive_Operation): New function.
1082	(Analyze_Overloaded_Selected_Component): insert explicit dereference
1083	only once if several interpretations of the prefix yield an access type.
1084	(Try_Object_Operation): Code and comment cleanup.
1085	(Analyze_Selected_Component): Reorder local variables. Minot comment and
1086	code reformatting. When the type of the prefix is tagged concurrent, a
1087	correct interpretation might be available in the primitive and
1088	class-wide operations of the type.
1089
10902007-12-13  Robert Dewar  <dewar@adacore.com>
1091	    Ed Schonberg  <schonberg@adacore.com>
1092
1093	* sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for
1094	renaming entry as subprogram using rename-as-body if subprogram spec
1095	frozen.
1096	(Use_One_Type): The clause is legal on an access type whose designated
1097	type has a limited view.
1098	(Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1099	(Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function
1100	(Analyze_Renamed_Primitive_Operation): new procedure to determine the
1101	operation denoted by a selected component.
1102	(Analyze_Renamed_Entry): Resolve the prefix of the entry name, because
1103	it can be an expression, possibly overloaded, that returns a task or
1104	an access to one.
1105
11062007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1107	    Gary Dismukes  <dismukes@adacore.com>
1108
1109	* sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a
1110	requeue statement is dispatching. Do not emit an error when the name is
1111	not an entry and the context is a dispatching select. Add code to
1112	perform subtype conformance between the formals of the current entry
1113	and those of the target interface primitive.
1114	(Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_
1115	Timed_Entry_Call): Analyze the triggering statement as the first step of
1116	the processing. If this is a dispatching select, postpone the analysis
1117	of all select statements until the Expander transforms the select. This
1118	approach avoids generating duplicate identifiers after the Expander has
1119	replicated some of the select statements. In case the Expander is
1120	disabled, perform regular analysis.
1121	(Check_Triggering_Statement): New routine.
1122	(Analyze_Requeue): Exclude any interpretations that are not entries when
1123	checking overloaded names in a requeue. Also test type conformance for
1124	matching interpretations rather than requiring subtype conformance at
1125	that point to conform with the RM's resolution rule for requeues.
1126
11272007-12-13  Ed Schonberg  <schonberg@adacore.com>
1128
1129	* sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an
1130	inherited operation is a defaulted tag-indeterminate call, and there is
1131	a statically tagged actual, use the static tag as a controlling actual
1132	for the defaulted actual.
1133
11342007-12-13  Geert Bosch  <bosch@adacore.com>
1135
1136	* sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static
1137	context, so do not call Check_Non_Static_Context.
1138
11392007-12-13  Hristian Kirtchev  <kirtchev@adacore.com>
1140
1141	* sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check
1142	whether formal E is an entity which may have parameters.
1143
11442007-12-13  Bob Duff  <duff@adacore.com>
1145	    Javier Miranda  <miranda@adacore.com>
1146	    Robert Dewar  <dewar@adacore.com>
1147
1148	* sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine.
1149	(Set_Convention): New procedure to set the Convention flag, and in
1150	addition make sure the Favor_Top_Level flag is kept in sync (all
1151	foreign-language conventions require Favor_Top_Level = True).
1152	(Collect_Abstract_Interfaces): Update occurrences of Related_Interface
1153	to Related_Type.
1154	(Collect_Interfaces_Info): Minor update to handle the two secondary
1155	dispatch tables. Update occurrence of Related_Interface to Related_Type.
1156	(Generate_Parent_Ref): Add parameter to specify entity to check
1157	(Is_Preelaborable_Expression): Allow the name of a discriminant to
1158	initialize a component of a type with preelaborable initialization.
1159	This includes the case of a discriminal used in such a context.
1160	(Is_Dependent_Component_Of_Mutable_Object): Take into account the
1161	latest Ada 2005 rules about renaming and 'Access of
1162	discriminant-dependent components.
1163	(Check_Nested_Access): Add handling when there are no enclosing
1164	subprograms (e.g. case of a package body).
1165	(Find_Parameter_Type): Factor routine from several other compiler files.
1166	Remove routine from Find_Overridden_Synchronized_Primitive.
1167
11682007-12-13  Thomas Quinot  <quinot@adacore.com>
1169
1170	* sinput.adb (Get_Source_File_Index): Add assertion to guard against
1171	an invalid access to an uninitialized slot in the
1172	Source_File_Index_Table.
1173
11742007-12-13  Thomas Quinot  <quinot@adacore.com>
1175
1176	* sinput-l.adb (Load_File): Disable style checks when preprocessing.
1177
11782007-12-13  Bob Duff  <duff@adacore.com>
1179
1180	* s-soflin.ads: Apply new pragma Favor_Top_Level to all
1181	access-to-subprogram types in this package.
1182
11832007-12-13  Olivier Hainque  <hainque@adacore.com>
1184
1185	* s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant
1186	with Stack_Grows_Down in System.Parameters. Rename Array_Address into
1187	Stack_Overlay_Address and document that we are using an internal
1188	abstraction.
1189	(Byte_Size, Unsigned_32_Size): Remove, now useless.
1190	(Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used
1191	consistently throughout the various implementation pieces.
1192
1193	* s-stausa.adb (Stack_Slots): New type, abstraction for the stack
1194	overlay we are using to fill the stack area with patterns.
1195	(Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots.
1196	(Push_Index_Step_For, Pop_Index_Step_For): Likewise.
1197	(Fill_Stack, Compute_Result): Use the Stack_Slots abstraction.
1198
11992007-12-13  Robert Dewar  <dewar@adacore.com>
1200
1201	* s-stoele.adb ("mod"): mod negative value raises Constraint_Error
1202
12032007-12-13  Arnaud Charlet  <charlet@adacore.com>
1204
1205	* s-tassta.adb:
1206	(Create_Task): Take into account tasks created by foreign threads.
1207	Code clean up: use constants instead of hard coded values.
1208
12092007-12-13  Robert Dewar  <dewar@adacore.com>
1210
1211	* styleg.adb (Check_Comment): More liberal rules for comment placement
1212
12132007-12-13  Olivier Hainque  <hainque@adacore.com>
1214
1215	* tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use
1216	of Procedure Value instead of Frame Pointer as the invocation
1217	identifier associated with the instruction pointer in each traceback
1218	entry.
1219
1220	* g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For,
1221	TB_Entry_For): Revert back to use of Procedure Value instead of Frame
1222	Pointer as the invocation identifier passed to tbk$symbolize.
1223
1224	* s-traent-vms.ads, s-traent-vms.adb
1225	(Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of
1226	Procedure Value instead of Frame Pointer as the invocation identifier
1227	passed to tbk$symbolize.
1228
12292007-12-13  Robert Dewar  <dewar@adacore.com>
1230
1231	* tbuild.ads, tbuild.adb:
1232	Fix location of flag for unrecognized pragma message
1233
12342007-12-13  Robert Dewar  <dewar@adacore.com>
1235
1236	* treepr.ads, treepr.adb: (pl): implement use of positive value
1237	shorthands
1238
12392007-12-13  Robert Dewar  <dewar@adacore.com>
1240
1241	* xeinfo.adb: Remove warnings
1242	* xnmake.adb: Remove warnings
1243	* xsinfo.adb: Remove warnings
1244	* xtreeprs.adb: Remove warnings
1245	* xsnames.adb: Remove warnings
1246
1247	* a-ngcoar.adb: Fix typo.
1248	* s-interr.adb: Minor reformatting
1249	* env.c: Minor reformatting.
1250	* g-bytswa.adb: Minor reformatting.
1251	* g-rannum.ads: Minor documentation improvements
1252	* s-tasinf-mingw.adb: Minor header fix
1253	* a-clrefi.adb: Minor reformatting
1254	* g-sttsne.ads: Minor documentation improvement
1255	* g-sttsne-locking.ads: Minor documentation improvement
1256	* g-soliop-solaris.ads: Minor documentation improvement
1257	* g-soliop-mingw.ads: Minor documentation improvement
1258	* g-soliop.ads: Minor documentation improvement
1259	* exp_aggr.ads: Minor reformatting
1260	* debug.adb: Add documentation for the gprbuild debug flags
1261	* exp_ch2.adb: Use Nkind_In to simplify code throughout
1262	* exp_pakd.adb: Minor reformatting
1263
1264	* g-altive.ads, g-alleve.adb: Remove assertions.
1265	Add comment about minor differences between targets regarding
1266	floating-point operations.
1267
1268	* g-thread.adb: Remove pragma unreferenced.
1269	* lib.ads: Minor reformatting
1270	* par-ch9.adb: Minor reformatting of error messages
1271	* sem_case.adb: Minor reformatting
1272	* s-fileio.adb: Minor reformattinng
1273	* s-vmexta.ads: Minor typo
1274	* vxaddr2line.adb:
1275	Take into account 'Success' value as per new GNAT warning.
1276
12772007-12-13  Vincent Celier  <celier@adacore.com>
1278
1279	* a-direct.adb (Create_Path): Always take '/' as a directory separator,
1280	even on Windows
1281
12822007-12-13  Robert Dewar  <dewar@adacore.com>
1283	    Bob Duff  <duff@adacore.com>
1284
1285	* gnat_ugn.texi: Dcoument new rules for style check comment alignment
1286	Document that suffixes may be terminations of each others
1287	Add doc for -gnatw.a and -gnatw.A
1288	Document gnatbind -Wx switch
1289	Document BOM recognition
1290	Document pragma Implemented_By_Entry.
1291	Document new units.
1292
1293	* gnat_rm.texi: (Favor_Top_Level): Document new pragma.
1294	Add doc for pragma Unreferenced suppressing no entities referenced msg
1295	Add documentation of GNAT.Directory_Operations.Iteration
1296	Add documentation of GNAT.Random_Numbers
1297	Add documentation for pragma Shared.
1298	Correct documentation for Bit_Order
1299	Add documentation for the Pool_Address attribute.
1300	Fix and improve documentation of pragma machine_attribute.
1301	New pragma Fast_Math
1302	Document BOM recognition
1303
1304	* vms_data.ads: Add entries for -gnatw.a -gnatw.A
1305	Add /Wide_Character_Encoding for binder
1306	Add qualifier for the new gnatpp option --no-separate-loop-then
1307
13082007-12-13  Matthew Heaney  <heaney@adacore.com>
1309
1310	* a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document
1311	which generic formal operations are called for each operation.
1312
13132007-12-13  Olivier Hainque  <hainque@adacore.com>
1314
1315	* tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh.
1316	(__gnat_backtrace): Early return 0 if using GCC-SJLJ eh.
1317
13182007-12-13  Emmanuel Briot  <briot@adacore.com>
1319
1320	* s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute
1321	Reference_Dir unless we actually need it.
1322
13232007-12-13  Vasiliy Fofanov  <fofanov@adacore.com>
1324	    Tristan Gingold  <gingold@adacore.com>
1325
1326	* g-socthi-vms.ads (Fd_Set_Access): make it 32-bit.
1327
1328	* s-osprim-vms.adb,
1329	a-calend-vms.adb: Remove pragma warning off and add pragma
1330	unreferenced.
1331
13322007-12-13  Robert Dewar  <dewar@adacore.com>
1333
1334	* impunit.adb: Add entries for missing units
1335
1336	* Makefile.rtl: Add new run-time units.
1337
1338	* Make-lang.in:  Update dependencies.
1339
13402007-12-13  Bob Duff  <duff@adacore.com>
1341
1342	* itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram
1343	types, set Can_Use_Internal_Rep appropriately, based on
1344	Always_Compatible_Rep_On_Target.
1345
13462007-12-13  Gary Dismukes  <dismukes@adacore.com>
1347	    Arnaud Charlet  <charlet@adacore.com>
1348
1349	* make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing
1350	it to the front end and setting the aamp_target environment variable
1351	to the switch's argument to ensure that gnaampbind and gnaamplink will
1352	take the specified library into account.
1353	(Make): Only set Check_Object_Consistency to False for JVM, not for CIL
1354	target, since the CIL compiler supports an "object" file (.il files).
1355
13562007-12-13  Vincent Celier  <celier@adacore.com>
1357
1358	* symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure
1359	(Process.H): Remove variable. Replace Read_Half (H) with Skip_Half.
1360
13612007-12-13  Geert Bosch  <bosch@adacore.com>
1362
1363	* s-parame-vxworks.adb:
1364	Update comments to reflect usage of this package by Nucleus.
1365
13662007-12-13  Arnaud Charlet  <charlet@adacore.com>
1367
1368	* i-vxwork.ads: Kill new warning on Convention C, since changing the
1369	spec would break code.
1370
1371	* i-forbla-unimplemented.ads, vx_stack_info.c: New files.
1372
1373	* system-vxworks-alpha.ads: Removed.
1374
13752007-12-10  Eric Botcazou  <ebotcazou@adacore.com>
1376
1377	* ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around.
1378
13792007-12-09  Samuel Tardieu  <sam@rfc1149.net>
1380
1381	PR ada/34366
1382	* sem_ch3.adb (Designates_T): New function.
1383	(Mentions_T): Factor reusable part of the logic into Designates_T.
1384	Consider non-access parameters and access and non-access result.
1385	(Check_Anonymous_Access_Components): Set ekind of anonymous access to
1386	E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type.
1387
1388	* einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type.
1389
13902007-12-07  Ludovic Brenta  <ludovic@ludovic-brenta.org>
1391
1392	PR ada/34361
1393	* mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect
1394	the new implementation of target-specific calls.
1395
13962007-12-07  Olivier Hainque  <hainque@adacore.com>
1397
1398	* decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing
1399	the designated full view, only follow a second level Full_View link
1400	for Non_Limited_Views of from_limited_with references.
1401
14022007-12-07  Samuel Tardieu  <sam@rfc1149.net>
1403
1404	PR ada/15805
1405	* sem_ch6.adb (Process_Formals): Prevent an access type formal
1406	to be initialized with an access to constant object.
1407
1408	* sem_ch3.adb (Analyze_Object_Declaration): Signal an error
1409	when an access to constant is used to initialize an access
1410	value.
1411
1412	PR ada/21346
1413	* a-direct.adb (Compose): Containing_Directory can be an empty string.
1414
14152007-12-07  Olivier Hainque  <hainque@adacore.com>
1416
1417	PR ada/34173
1418	* decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting
1419	the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if
1420	this is from an alignment clause on the GNAT entity.
1421	* utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN
1422	to distinguish the case where we set it from the type's alignment.
1423	When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate
1424	whether this alignment was set from an explicit alignment clause.
1425
14262007-12-06  Eric Botcazou  <ebotcazou@adacore.com>
1427
1428	* decl.c (make_packable_type): Revert last change.
1429	(gnat_to_gnu_field): Avoid setting size and position multiple times.
1430	* utils.c (finish_record_type): Retrieve the real name of the type.
1431
14322007-12-05  Eric Botcazou  <ebotcazou@adacore.com>
1433
1434	* trans.c (lvalue_required_p): Take base node directly instead
1435	of its parent.  Rename second parameter to 'gnu_type'.
1436	<N_Indexed_Component>: Return 0 if the node isn't the prefix.
1437	<N_Slice>: Likewise.
1438	(Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
1439	Adjust calls to lvalue_required_p.
1440
14412007-12-05  Samuel Tardieu  <sam@rfc1149.net>
1442
1443	PR ada/21489
1444	* exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
1445	parameters of an entry call.
1446
14472007-12-03  Robert Dewar  <dewar@adacore.com>
1448	    Samuel Tardieu  <sam@rfc1149.net>
1449
1450    	PR ada/34287
1451    	* sem_util.adb (Safe_To_Capture_Value): Do not capture values
1452    	of variables declared in a library-level package.
1453
14542007-12-02  Samuel Tardieu  <sam@rfc1149.net>
1455
1456	* clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
1457	of Empty_String'Unchecked_Access.
1458
1459	* Makefile.in: Add support for sh4-linux.
1460
1461	* system-linux-sh4.ads: New file.
1462
14632007-12-01  Kostik Belousov  <kostikbel@ukr.net>
1464
1465	PR ada/33722
1466	* env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
1467	and its argument must not be free()ed.
1468
14692007-11-29  Eric Botcazou  <ebotcazou@adacore.com>
1470
1471	* decl.c (make_packable_type): Retrieve the real name of the type.
1472	(maybe_pad_type): Simplify similar code.
1473
14742007-11-28  Samuel Tardieu  <sam@rfc1149.net>
1475
1476	PR ada/15804
1477	* par-ch3.adb (P_Variant_Part): Signal an error when anything other
1478	than an identifier is used after "case" in a variant_part.
1479
1480	PR ada/17318
1481	* par-ch4.adb (Is_Parameterless_Attribute): New map.
1482	(P_Name, Scan_Apostrophe block): Parse left parenthesis following
1483	attribute name or not depending on the new map.
1484
1485	* sem-attr.adb (Analyze_Attribute): Parameterless attributes
1486	returning a string or a type will not be called with improper
1487	arguments.
1488
1489	* sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
1490
1491	* snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
1492
1493	PR ada/32792
1494	* sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
1495	Signal an error when attribute argument is a fixed-point value of
1496	an unknown type.
1497
1498	PR ada/22559
1499	* sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
1500	a derived ordinary fixed point type.
1501
1502	* sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
1503	RM_Size when a Small clause is found.
1504
15052007-11-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1506
1507	PR 34081/C++
1508	* trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
1509	Pass 'false' for the new allocate_struct_function parameter.
1510	* utils.c (build_function_stub): Likewise.
1511
15122007-11-25  Richard Guenther  <rguenther@suse.de>
1513
1514	* utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
1515	(gnat_poplevel): Likewise.
1516
15172007-11-25  Eric Botcazou  <ebotcazou@adacore.com>
1518
1519	* decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
1520	strict alignment, no alignment clause and a known static size, cap
1521	the type alignment to the greatest power of 2 factor of the size.
1522	(gnat_to_gnu_field): If the field has a component clause, is aliased
1523	or of a type with strict alignment, require that its size be equal to
1524	that of the type.
1525	(validate_size): Use the type size as the minimum size for a type with
1526	strict alignment.
1527
15282007-11-23  Samuel Tardieu  <sam@rfc1149.net>
1529
1530	* s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
1531	s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
1532	s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
1533	Use 'Access instead of 'Unchecked_Access in second and third
1534	arguments of pthread_sigmask.
1535
15362007-11-23  Eric Botcazou  <ebotcazou@adacore.com>
1537
1538	* decl.c (ceil_alignment): New function.
1539	(gnat_to_gnu_entity): Use it to set the alignment on atomic types.
1540	(make_packable_type): Likewise.
1541
15422007-11-22  Olivier Hainque  <hainque@adacore.com>
1543
1544	* trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
1545	to fit in 80 columns.
1546
15472007-11-21  Aurelien Jarno  <aurelien@aurel32.net>
1548
1549	* s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
1550	* Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
1551
15522007-11-19  Eric Botcazou  <ebotcazou@adacore.com>
1553
1554	PR ada/34098
1555	* misc.c (gnat_adjust_rli): Delete.
1556	(gnat_init): Do not initialize the translation code here.
1557	Do not call set_lang_adjust_rli.
1558	* trans.c (init_code_table): Make static.
1559	(gnat_init_stmt_group): Delete.
1560	(gigi): Initialize the translation code entirely here.
1561	Emit debug info for the common types here instead of...
1562	* utils.c (gnat_init_decl_processing): ...here.
1563	* gigi.h (init_code_table): Delete.
1564	(gnat_init_stmt_group): Likewise.
1565
15662007-11-16  Olivier Hainque  <hainque@adacore.com>
1567
1568	* utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
1569	retrieving an allocator return value from a super-aligned address from
1570	here to ...
1571	* trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
1572	expect a super-aligned address for a fat or thin pointer.
1573
15742007-11-14  Eric Botcazou  <ebotcazou@adacore.com>
1575
1576	* trans.c (call_to_gnu): Always set the source location on the call
1577	expression.  If the function returns-by-target, also set it on the
1578	address expression.
1579
15802007-11-14  Samuel Tardieu  <sam@rfc1149.net>
1581
1582	* adaint.c, init.c, initialize.c, link.c: Remove system-specific
1583	sections of non-supported Interix target.
1584
1585	* s-osinte-interix.ads: Removed.
1586
1587	* i-cstrin.ads (chars_ptr): Make it a C convention type.
1588
15892007-11-13  Samuel Tardieu  <sam@rfc1149.net>
1590
1591	* a-tasatt.adb: Add a comment at the beginning of the package
1592	explaining why in general 'Unchecked_Access must be used instead
1593	of 'Access.
1594
1595	* sem_prag.adb (Process_Convention): Move the test for the
1596	entity on which the Convention pragma applies down to also
1597	forbid pragma Convention on enumeration literals reached
1598	through renamings.
1599
16002007-11-10  Samuel Tardieu  <sam@rfc1149.net>
1601
1602	* a-tasatt.adb: Revert previous change for this file as it will
1603	generate an error when this package is instantiated from a
1604	local context.
1605
16062007-11-07  Samuel Tardieu  <sam@rfc1149.net>
1607
1608	* a-tasatt.adb: Type Wrapper should be declared in comment instead
1609	of already declared type Node_Access.
1610	Use 'Access instead of 'Unchecked_Access when applicable. Local
1611	lifetime is the one of the package.
1612	(Set_Value): W is allocated on the heap.
1613
1614	* g-socket.adb: Use 'Access instead of 'Unchecked_Access when
1615	applicable.
1616	(Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
1617	access type.
1618	(Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
1619	access type.
1620
1621	* s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
1622	applicable.
1623	(elaboration code): Timer_Queue lifetime is the one of the
1624	package.
1625
1626	* tracebak.c (i386 alternative): Remove useless comparaison
1627	which is always false; LOWEST_ADDRESS is 0 and is never greater
1628	than an unsigned integer.
1629
1630	* sem_attr.adb (Analyze_Attribute): Remove duplicate identical
1631	embedded check for "Ada_Version >= Ada_05".
1632
16332007-11-07  Olivier Hainque  <hainque@adacore.com>
1634
1635	* decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
1636	craft and expand comment.
1637
16382007-11-01  Eric Botcazou  <ebotcazou@adacore.com>
1639
1640	* lang-specs.h: Move translation of -fRTS= after -gnatez switch.
1641
16422007-10-23  Eric Botcazou  <ebotcazou@adacore.com>
1643
1644	* misc.c (gnat_handle_option): Replace call to abort with
1645	call to gcc_unreachable.
1646	(gnat_init): Likewise.
1647	(gnat_expand_expr): Likewise.
1648	(fp_prec_to_size): Likewise.
1649	(fp_size_to_prec): Likewise.
1650
16512007-10-23  Richard Guenther  <rguenther@suse.de>
1652
1653	PR bootstrap/33608
1654	* tracebak.c: #undef abort after including system.h.
1655
16562007-10-20  Danny Smith  <dannysmith@users.sourceforge.net>
1657
1658	* Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
1659	s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
1660	for win32 targets.
1661	(EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
1662
16632007-10-15  Eric Botcazou  <ebotcazou@adacore.com>
1664
1665	* s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
1666	Set the protection status of the guard page based on the value of On.
1667
1668	* s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
1669
1670	* s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
1671	(Exit_Task): Pass False to Hide_Yellow_Zone.
1672
16732007-10-15  Robert Dewar  <dewar@adacore.com>
1674
1675	* s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
1676	s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
1677	a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
1678	checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
1679	freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
1680	gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
1681	mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
1682	prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
1683	sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
1684	s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
1685	uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
1686	a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
1687	a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
1688	a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
1689	a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
1690	a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
1691	Minor reformatting.
1692	Add Unreferenced and Warnings (Off) pragmas for cases of
1693	variables modified calls where they are IN OUT or OUT parameters and
1694	the resulting values are not subsequently referenced. In a few cases,
1695	we also remove redundant code found by the new warnings.
1696
1697	* ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
1698	sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
1699	sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
1700	sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
1701	warning controlled by -gnatw.o that warns on cases of out parameter
1702	values being ignored.
1703
17042007-10-15  Geert Bosch  <bosch@adacore.com>
1705
1706	* adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
1707
1708	* expect.c: Initial port to arm-mentor-nucleus.
1709	Use kill for __gnat_kill() on VMS.
1710
17112007-10-15  Emmanuel Briot  <briot@adacore.com>
1712
1713	* ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
1714	value.
1715	(Xref_Record): Change type for Line, since in the case of a reference to
1716	a predefined entity (as happens for array index types), the line is set
1717	to 0.
1718	Add support for parsing multiple array index types info, or
1719	multiple inherited interfaces info. This information cannot be stored
1720	in Xref_Entity_Record, which only supports a single instance of Tref_*,
1721	and is therefore stored in the list of references instead. It has a
1722	special treatement later on in tools that use this information.
1723
17242007-10-15  Tristan Gingold  <gingold@adacore.com>
1725
1726	* debug.adb: Document use of -gnatd.a and -gnatd.I
1727
1728	* layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
1729
17302007-10-15  Javier Miranda  <miranda@adacore.com>
1731
1732	* exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
1733	Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
1734	care of access to class-wide interface types plus removal of bizarre
1735	conversion of tagged object to access type (reported by Gary
1736	Dismukes). After this patch there is no need to perform any
1737	additional management on these nodes in Expand_Interface_Actuals.
1738
1739	* exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
1740	that handles use of 'Access and 'Unchecked_Access applied to
1741	actuals covering interface types. Such code is now
1742	centralized in Expand_N_Attribute_Reference.
1743
17442007-10-15  Ed Schonberg  <schonberg@adacore.com>
1745
1746	* exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
1747	of tagged types whose ultimate ancestor is a CPP type.
1748	(Freeze_Array_Type): For a packed array type, generate an initialization
1749	procedure if the type is public, to handle properly a client that
1750	specifies Normalize_Scalars.
1751
17522007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
1753
1754	* exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
1755	inside a generic body, retrieve the full view of the entry family
1756	discrete subtype if available.
1757
17582007-10-15  Thomas Quinot  <quinot@adacore.com>
1759
1760	* exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
1761	attempt to generate stubs for hidden primitive operations.
1762
17632007-10-15  Vincent Celier  <celier@adacore.com>
1764
1765	* mlib-tgt-specific.adb (Support_For_Libraries): New function,
1766	returning None, used when there is no platform specific body for
1767	MLib.Tgt.Specific.
1768
17692007-10-15  Bob Duff  <duff@adacore.com>
1770
1771	* sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
1772	(passing'Unrestricted_Access of nested subprograms to Sort) with use of
1773	the generic Heap_Sort_G, in order to avoid trampolines.
1774
17752007-10-15  Vasiliy Fofanov  <fofanov@adacore.com>
1776	    Jose Ruiz  <ruiz@adacore.com>
1777
1778	* vx_stack_info.c: New file.
1779
1780	* i-forbla-unimplemented.ads: New file.
1781
1782	* Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
1783	for unsupported configurations; use it on VMS targets instead of the
1784	real one.
1785	(EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
1786	vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
1787	used by VxWorks targets to have access to task-specific data and be
1788	able to extract the stack boundaries for stack checking.
1789	Use system-vms-ia64.ads on ivms.
1790
1791	* Make-lang.in: Update dependencies.
1792
1793	* sysdep.c (__gnat_get_stack_info): Move to a standalone file
1794	(vx_stack_info.c).
1795
17962007-10-15  Vincent Celier  <celier@adacore.com>
1797
1798	* snames.adb, snames.ads: Add new standard name runtime_library_dir
1799
1800	* prj.ads (Language_Config): Add new component Runtime_Library_Dir
1801
1802	* prj-attr.adb: Add project level attribute Runtime_Library_Dir
1803
1804	* prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
1805	the source is unknown.
1806
1807	* prj-ext.adb: Spelling error fix
1808
1809	* prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
1810	95 reserved word in its name.
1811	(Process_Project_Level_Array_Attributes): Process new attribute
1812	Runtime_Library_Dir.
1813
1814	* prj-part.adb (Parse_Single_Project): Do not check the name of the
1815	config project against the user project names.
1816
1817	* prj-proc.adb (Expression): In multi-language mode, indexes that do
1818	not include a dot are always case insensitive.
1819	(Process_Declarative_Items): Ditto
1820	(Process_Project_Tree_Phase_1): Set Success to False in case an error is
1821	detected.
1822
1823	* prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
1824	True, compare both indexes in lower case.
1825
18262007-10-15  Robert Dewar  <dewar@adacore.com>
1827
1828	* rtsfind.adb: (Load_RTU): Turn off style checks for Load call
1829
18302007-10-15  Gary Dismukes  <dismukes@adacore.com>
1831
1832	* sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
1833	association for an access component, add an association with null as
1834	the expression. Remove testing for array subtypes and the setting in
1835	that case of Ctyp to the array component type, which prevented proper
1836	inclusion of an association for null-initialized arrays. Collapse
1837	condition that tests for array subtypes into just a test of
1838	Is_Partially_Initialized_Type (which already covers arrays anyway).
1839
18402007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
1841
1842	* sem_ch12.adb: Minor code reformatting.
1843	(Check_Generic_Child_Unit): Iterate over the homonym chain in order to
1844	find the parent package which may have been hidden by local
1845	declarations.
1846
18472007-10-15  Gary Dismukes  <dismukes@adacore.com>
1848
1849	* sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
1850	flag of derived concurrent types, taking into account the flag setting
1851	on the parent subtype and any new set of discriminants.
1852
18532007-10-15  Hristian Kirtchev  <kirtchev@adacore.com>
1854
1855	* sem_ch4.adb: Minor code and comment reformatting.
1856	(Analyze_Allocator): When the designated type of an unconstrained
1857	allocator is a record with unknown discriminants or an array with
1858	unknown range bounds, emit a detailed error message depending on the
1859	compilation mode and whether the designated type is limited.
1860
18612007-10-15  Tristan Gingold  <gingold@adacore.com>
1862
1863	* system-vms-ia64.ads: New file.
1864
1865	* system-vms_64.ads: Minor comment fix.
1866
18672007-10-15  Ed Schonberg  <schonberg@adacore.com>
1868
1869	* sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
1870	body generated for a function with a controlling result that is a null
1871	extension, discard the generated body in favor of the current explicit
1872	one.
1873
18742007-10-15  Ed Schonberg  <schonberg@adacore.com>
1875
1876	* sem_disp.adb (Find_Controlling_Arg): Examine the call node before
1877	examining its original form, to handle properly operator calls that
1878	have been rewritten.
1879
18802007-10-15  Olivier Hainque  <hainque@adacore.com>
1881
1882	* tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
1883	instead of a procedure value in each traceback entry.
1884
1885	* g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
1886	instead of procedure value to TBK$SYMBOLIZE.
1887
1888	* s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
1889	field.
1890	(TB_Entry_For): Account for the PV/FP renaming.
1891
1892	* s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
1893	add comment.
1894	(Null_TB_Entry): Account for change of component name.
1895	(PV_For): Rename as FP_For.
1896
18972007-10-15  Tristan Gingold  <gingold@adacore.com>
1898
1899	* trans.c (gnat_to_gnu): Remove the padding structure more often.
1900	This optimize assignment to over-aligned record.
1901
19022007-10-15  Emmanuel Briot  <briot@adacore.com>
1903
1904	* xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
1905	interfaces.
1906
1907	* xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
1908	type, for dispatching calls.
1909
19102007-10-15  Vincent Celier  <celier@adacore.com>
1911	    Robert Dewar  <dewar@adacore.com>
1912
1913	* gnat_ugn.texi: Add documentation for switches --version and --help
1914	for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
1915	gnatxref, gnatfind, gnatls, and gnatclean.
1916	Document -gnatw.o.
1917	Mention attribute Excluded_Source_Dirs
1918	Replace obsolescent attribute Locally_Removed_Files with attribute
1919	Excluded_Source_Files.
1920	Improve documentation of -u (gnatbind)
1921	Document how to do reliable stack checking for the environmental task
1922	on iVMS.
1923
1924	* gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
1925	Document attribute Excluded_Source_Files and indicate that attribute
1926	Locally_Removed_Files is obsolescent.
1927
19282007-10-15  Thomas Quinot  <quinot@adacore.com>
1929
1930	* g-soccon-vms.ads: Fix value of MSG_WAITALL.
1931
1932	* gen-soccon.c:
1933	Update documentation to note that OpenVMS 8.3 or later must be used
1934	to generate g-soccon-vms.ads.
1935
1936	* atree.adb: Add ??? comment
1937
1938	* exp_util.adb: Minor reformatting.
1939	Add ??? comment in Kill_Dead_Code.
1940
19412007-10-15  Robert Dewar  <dewar@adacore.com>
1942
1943	* errout.ads: Comment clarification
1944
1945	* exp_ch4.adb (Expand_N_Allocator): Code cleanup.
1946	(Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
1947
1948	* lib.ads: Comment update
1949
1950	* init.c: Minor reformatting.
1951
1952	* sem_attr.adb: Minor formatting
1953
1954	* osint-b.ads: Minor reformatting
1955
1956	* sem_ch9.adb: Implement -gnatd.I switch
1957
1958	* g-comlin.adb: (Start): Fix handling of empty command line.
1959
1960	* gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
1961	even when -rules follows the -cargs section.
1962
19632007-10-08  Ollie Wild  <aaw@google.com>
1964
1965	* misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
1966	gnat_return_tree.
1967	(gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
1968	gnat_return_tree.
1969	(gnat_eh_runtime_type): Removed.
1970	(gnat_return_tree): New function.
1971
19722007-10-08  Ben Elliston  <bje@au.ibm.com>
1973
1974	PR ada/33454
1975	Revert:
1976	2007-08-31  Ben Elliston  <bje@au.ibm.com>
1977
1978	* Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1979	when compiling for powerpc64-*-linux.
1980	* system-linux-ppc64.ads: New file.
1981
19822007-09-27  Eric Botcazou  <ebotcazou@adacore.com>
1983
1984	Mapped location support
1985	* back_end.adb (Call_Back_End): Pass information about source
1986	files instead of units to gigi.
1987	* gigi.h (struct File_Info_Type): New.
1988	(gigi): Rename and change type of number_units parameter, change
1989	type of file_info_ptr parameter.
1990	* trans.c (number_files): New global variable.
1991	(gigi): Rename and change type of number_units parameter, change
1992	type of file_info_ptr parameter.
1993	If mapped location support is enabled, create the isomorphic mapping
1994	between source files and line maps.
1995	(Sloc_to_locus): If mapped location support is enabled, translate
1996	source location into mapped location.
1997	(annotate_with_node): Rename into set_expr_location_from_node.
1998	Call set_expr_location instead of annotate_with_locus.
1999	(Pragma_to_gnu): Adjust for above change.
2000	(Loop_Statement_to_gnu): Likewise.
2001	(call_to_gnu): Likewise.
2002	(Handled_Sequence_Of_Statements_to_gnu): Likewise.
2003	(gnat_to_gnu): Likewise.
2004	(add_stmt_with_node): Likewise.
2005	(add_cleanup): Likewise.
2006	* utils.c (gnat_init_decl_processing): Do not set input_line.
2007
20082007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2009
2010	* sem_ch8.adb (Analyze_Use_Type): Code cleanup.
2011	(Applicable_Use): Emit a warning when a package tries to use itself.
2012	(Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
2013	is already in use or the package where it is declared is in use or is
2014	declared in the current package.
2015	(Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
2016
2017	* a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
2018	s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
2019	s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
2020
20212007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2022
2023	* a-calend-vms.adb, a-calend.adb:
2024	Add a section on leap seconds control along with two entities used to
2025	enable and disable leap seconds support. The array Leap_Second_Times is
2026	now constant and contains hard time values pre-generated. Remove
2027	all elaboration code used to populate the table of leap seconds.
2028
2029	* bindgen.adb:
2030	Add entity Leap_Seconds_Support to the list of global run-time variables
2031	along with a comment on its usage and values.
2032	(Gen_Adainit_Ada): Add code to generate the declaration and import of
2033	Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
2034	or one (enabled) depending on the presence of binder switch "-y".
2035	(Gen_Adainit_C): Add code to generate the declaration of external int
2036	__gl_leap_seconds_support. Set is value to zero (disabled) or one
2037	(enabled) depending on the presence of binder switch "-y".
2038
2039	* init.c: Add __gl_leap_seconds_support to the list of global values
2040	computed by the binder.
2041
20422007-09-26  Jerome Guitton  <guitton@adacore.com>
2043
2044	* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2045	s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
2046	 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2047	s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
2048
2049	* s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
2050
2051	* s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
2052	function which can be called by the debugger to interrupt the tasks of
2053	an Ada application asynchronously, as needed on VxWorks.
2054	(Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
2055
2056	* s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
2057	renamed from Stop_All_Tasks. Update comments.
2058	(Stop_All_tasks): New function declaration.
2059
20602007-09-26  Olivier Hainque  <hainque@adacore.com>
2061
2062	* adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
2063	#include <utime.h> and #define GCC_RESOURCE_H before
2064	#include <sys/wait.h>.
2065	Add more protections in __gnat_translate_vms.
2066
2067	* expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
2068	#include <sys/wait.h>.
2069
20702007-09-26  Thomas Quinot  <quinot@adacore.com>
2071	    Sergey Rybin  <rybin@adacore.com>
2072
2073	* gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
2074
2075	* exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2076	where it belongs.
2077
2078	* opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2079
2080	* rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
2081	where it belongs.
2082
2083	* sem_dist.ads: Minor comment fix
2084
2085	* tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
2086
20872007-09-26  Javier Miranda  <miranda@adacore.com>
2088	    Eric Botcazou  <ebotcazou@adacore.com>
2089
2090	* a-tags.adb:
2091	(Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
2092	 indirection added to the HT_Link component of the TSD. This is required
2093	 to statically allocate the TSD.
2094
2095	* a-tags.ads:
2096	Minor reordering of the declarations in the private part. Required to
2097	add a level of indirection to the contents of the TSD component HT_Link.
2098	This is required to statically allocate the TSD.
2099
2100	* decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
2101	Is_Statically_Allocated set from constant objects.
2102	Do not make exported constants created by the compiler volatile.
2103	(gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
2104	as read-only.
2105
2106	* trans.c (Identifier_to_gnu): For constants, unshare initializers
2107	before returning them.
2108
2109	* exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
2110	public part of the package.
2111	(Make_DT): Move HT_Link component out of the TSD record. For this
2112	purpose Make_DT now declares a separate object that stores the
2113	HT_Link value, and initializes the TSD component with the address
2114	of this new object. The addition of this level of indirection is
2115	required to statically allocate the TSD because the TSD cannot
2116	have variable components.
2117	(Expand_Interface_Conversion): Improve the expanded code.
2118	(Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
2119
2120	* sem_disp.adb (Check_Dispatching_Operation): In case of a body
2121	declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
2122	if we are building static dispatch tables then we must not generate
2123	extra code to register the primitive because the dispatch table will
2124	be built at the end of the library package; otherwise we notify that
2125	we cannot build the static dispatch table.
2126
21272007-09-26  Robert Dewar  <dewar@adacore.com>
2128
2129	* checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
2130	overlays.
2131
2132	* sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
2133	(Analyze_Record_Representation_Clause): Suppress junk warning for
2134	missing component clause.
2135	(Analyze_Attribute_Definition_Clause, case Address): Apply the special
2136	tests for controlled type overlay to composites with controlled
2137	components.
2138	(Analyze_Record_Representation_Clause): Add reference for component name
2139
21402007-09-26  Javier Miranda  <miranda@adacore.com>
2141	    Gary Dismukes  <dismukes@adacore.com>
2142
2143	* einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
2144	for thunks associated with interface types.
2145
2146	* einfo.ads: Improve documentatation of Is_Internal
2147	(Is_Thunk): New attribute applicable to subprograms. True for thunks
2148	associated with interface types.
2149	Extensive comment fixes regarding flags that appear in all entities. The
2150	documentation is now consistent for all such flags (there were a number
2151	of errors in the documentation in this regard).
2152
2153	* exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
2154
2155	* exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
2156	of these procedures are passed a function call that already has
2157	build-in-place actuals (testing new flag
2158	Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
2159	the case where processing continues.
2160	(Expand_Call): If the call is generated from a thunk body then we
2161	propagate the extra actuals associated with the accessibility
2162	level of the access type actuals.
2163
2164	* sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
2165	of each extra formal of a protected operation to reference the
2166	corresponding extra formal of the subprogram denoted by the
2167	operation's Protected_Body_Subprogram.
2168
2169	* sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
2170	N_Function_Call nodes.
2171
21722007-09-26  Robert Dewar  <dewar@adacore.com>
2173
2174	* exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
2175
2176	* debug.adb: Add d.s flag.
2177
21782007-09-26  Gary Dismukes  <dismukes@adacore.com>
2179
2180	* exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
2181	debug variable so that it won't be initialized when pragma
2182	Initialize_Scalars is in effect.
2183
21842007-09-26  Gary Dismukes  <dismukes@adacore.com>
2185
2186	* freeze.adb (Freeze_Entity): Remove check for preelaborable
2187	initialization of a full view. This is moved to
2188	Analyze_Package_Specification.
2189
2190	* sem_ch7.adb (Analyze_Package_Specification): Add check for
2191	preelaborable initialization of a full view in entity loop.
2192	(Uninstall_Declarations): If entity is a use-visible compilation unit,
2193	its child units are use-visible only if they are visible child units.
2194
2195	* sem_util.adb (Is_Preelaborable_Expression): New function to determine
2196	whether an expression can be used within a type declaration that
2197	requires preelaborable init.
2198	(Check_Components): Replace inline code that does partial checking for
2199	preelaborable default expressions with call to
2200	Is_Preelaborable_Expression.
2201	(Has_Preelaborable_Initialization): In the case of a generic actual
2202	subtype, (that is, Is_Generic_Actual is True), return the result of
2203	applying Has_Preelaborable_Initialization to the generic actual's base
2204	type.
2205
22062007-09-26  Hristian Kirtchev  <kirtchev@adacore.com>
2207
2208	* g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
2209	call to Jan_1_Day _Of_Week to optimize its performance.
2210	(Is_Leap): Move the routine to the scope of Week_In_Year.
2211	(Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
2212	weekday on which January 1 falls of Year - 1 and Year + 1. This function
2213	avoids calling Time_Of and Split, thus making it more efficent.
2214	(Week_In_Year): Reimplemented in oder to follow ISO 8601.
2215
2216	* g-calend.ads (Week_In_Year): Change comment to reflect new
2217	implementation.
2218
22192007-09-26  Emmanuel Briot  <briot@adacore.com>
2220
2221	* g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
2222	Command_Line): New types
2223	(Define_Alias, Define_Prefix, Free): New subprograms. These provide
2224	support for defining how switches can be grouped on a command line (as
2225	is the case for -gnatw... for GNAT), and how simple switches can be
2226	used as aliases for more complex switches (-gnatwa is same as
2227	-gnatwbcef...)
2228	(Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
2229	(Start, Current_*): New subprograms
2230	Added support for parsing an array of strings in addition to the real
2231	command line.
2232	(Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
2233	 be moved from the body to the private part of the spec.
2234	(*): All subprograms now have an extra parameter with default value to
2235	specify which parser should be used. For backward compatibility, it
2236	defaults to parsing the command line of the application. They were also
2237	modified to properly handle cases where each of the argument does not
2238	start at index 1 (which is always true for Ada.Command_Line, but not
2239	when processing any Argument_List).
2240	(Free): New subprogram
2241	(Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
2242	Argument): New subprograms
2243	(Switch_Parameter_Type): New enum, which clarifies the code. The extra
2244	special characters like ':', '=',... are now handled in a single place,
2245	which makes the code more extensible eventually.
2246	(Getopt, Full_Switch): When the switch was returned as part of the
2247	special character '*', make sure it is prepended by the switch character
2248	('-' in general), so that the application knows whether "foo" or "-foo"
2249	was specified on the command line.
2250
22512007-09-26  Florian Villoing  <villoing@adacore.com>
2252
2253	* g-dirope.adb (Remove_Dir): In case we are removing directories
2254	recursively, make sure that if an exception is raised during the
2255	processing, the current working directory is reset to its initial
2256	value before propagating the exception.
2257
22582007-09-26  Vincent Celier  <celier@adacore.com>
2259
2260	* gnatbind.adb: If there are several ALI files specified and there is
2261	a main program to bind, the first ALI is expected to contain the main
2262	subprogram and the names of the binder generated files will be derived
2263	from the first ALI file name.
2264	(Gnatbind): Fix insertion character in invocation of Error_Msg
2265
22662007-09-26  Vincent Celier  <celier@adacore.com>
2267
2268	* gnatcmd.adb (Check_Files): Do not include sources that have been
2269	removed by attributes Exclude_Source_Files or Locally_Removed_Files.
2270
22712007-09-26  Ed Schonberg  <schonberg@adacore.com>
2272
2273	* lib-xref.ads, lib-xref.adb: The entry for array types now carries
2274	information about each of its index types, following the type
2275	reference for its component type.
2276
22772007-09-26  Vincent Celier  <celier@adacore.com>
2278
2279	* make.adb: (Kill): New procedure (__gnat_kill imported)
2280	(Running_Compile, Outstanding_Compiles): Global variables that
2281	were previously local to procedure Compile_Sources.
2282	(Sigint_Intercepted): Send signal SIGINT to all outstanding
2283	compilation processes.
2284
2285	(Gnatmake): If project files are used, create the mapping of all the
2286	sources, so that the correct paths will be found.
2287
2288	* prj-env.ads, prj-env.adb (Create_Mapping): New procedure
2289
22902007-09-26  Vincent Celier  <celier@adacore.com>
2291
2292	* makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
2293
2294	* prj.ads, prj.adb (Default_Language): Remove function, no longer used
2295	Replace components Compiler_Min_Options and Binder_Min_Options with
2296	Compiler_Required_Switches and Binder_Required_Switches in record
2297	Language_Config.
2298	Remove components Default_Language and Config in Project_Tree_Data,
2299	no longer used.
2300
2301	* prj-attr.adb: New attributes Required_Switches (<language>) in
2302	packages Compiler and Binder.
2303
2304	* prj-nmsc.adb: Major rewrite of the processing of configuration
2305	attributes for gprbuild. No impact on GNAT tools.
2306
2307	* prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
2308	process configuration attributes: this is done in Prj.Nmsc.Check.
2309	(Recursive_Process): Make a full copy of packages inherited from project
2310	being extended, instead of a shallow copy.
2311	(Process_Project_Tree_Phase_1): New procedure
2312	(Process_Project_Tree_Phase_1): New procedure
2313	(Process): Implementation now uses the two new procedures
2314
2315	* prj-util.adb (Executable_Of): Get the suffix and the default suffix
2316	from the project config, not the tree config that no longer exists.
2317
23182007-09-26  Vincent Celier  <celier@adacore.com>
2319
2320	* Make-lang.in: Update dependencies..
2321
23222007-09-26  Vincent Celier  <celier@adacore.com>
2323
2324	* osint.adb, osint.ads: Minor reformatting
2325
2326	* osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
2327
23282007-09-26  Gary Dismukes  <dismukes@adacore.com>
2329
2330	* par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
2331	message to cite use of <> in aggregate component associations rather
2332	than wrongly indicating use of limited aggregates.
2333
23342007-09-26  Robert Dewar  <dewar@adacore.com>
2335
2336	* sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
2337	Address_Taken.
2338
23392007-09-26  Ed Schonberg  <schonberg@adacore.com>
2340
2341	* sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
2342	ancestor of the derived type, the operations are inherited from the
2343	primary dispatch table of the parent.
2344	(OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
2345	when the context is an explicit type conversion.
2346
23472007-09-26  Ed Schonberg  <schonberg@adacore.com>
2348
2349	* sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
2350	rule for qualified expressions properly, to detect improper conversions
2351	and resolve some cases of overloading.
2352
23532007-09-26  Ed Schonberg  <schonberg@adacore.com>
2354
2355	* sem_res.adb (Resolve_Call): If the call is dispatching, generate the
2356	proper kind of reference to the primitive operation, for better source
2357	navigation.
2358	(Valid_Conversion): A tagged conversion is legal if both operands are
2359	tagged.
2360
23612007-09-26  Robert Dewar  <dewar@adacore.com>
2362
2363	* sem_warn.adb (Check_References): Catch more cases of unreferenced
2364	packages.
2365
23662007-09-26  Vincent Celier  <celier@adacore.com>
2367
2368	* snames.adb, snames.ads: Change Include_Option to Include_Switches
2369
23702007-09-26  Robert Dewar  <dewar@adacore.com>
2371
2372	* s-wchstw.adb: provide messages for run time unit exceptions
2373
2374	* a-witeio.adb: Minor reformatting
2375
2376	* exp_ch13.adb: Minor reformatting
2377
23782007-09-26  Sergey Rybin  <rybin@adacore.com>
2379
2380	* vms_data.ads: Revise gnatmetric qualifiers.
2381	Add qualified for the new gnatbind option '-y'
2382
2383	* gnat_ugn.texi: Revise the gnatmetric section.
2384	Add entry for new gnatbind option '-y'.
2385
2386	* gnat_rm.texi: Minor spelling correction.
2387	Document restriction on overlaying controlled types
2388
23892007-09-26  Vincent Celier  <celier@adacore.com>
2390
2391	* makegpr.adb (Link_Executables): Do not fail when the root project has
2392	no sources, but is an extending project.
2393
23942007-09-25  Eric Botcazou  <ebotcazou@adacore.com>
2395
2396	* trans.c: Fix misplaced #define.
2397
23982007-09-22  Eric Botcazou  <ebotcazou@adacore.com>
2399
2400	* utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
2401	the TYPE_REF_CAN_ALIAS_ALL flag to the result.
2402
24032007-09-21  Olivier Hainque  <hainque@adacore.com>
2404
2405	* utils.c (type_for_nonaliased_component_p): Return false for
2406	all AGGREGATE_TYPEs.
2407
24082007-09-17  Eric Botcazou  <ebotcazou@adacore.com>
2409
2410	* decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
2411	object covered by 13.3(19) volatile.
2412
24132007-09-12  Eric Botcazou  <ebotcazou@adacore.com>
2414
2415	PR ada/26797
2416	PR ada/32407
2417	* utils.c (unchecked_convert): Use a subtype as the intermediate type
2418	in the special VIEW_CONVERT_EXPR case.
2419
24202007-09-12  Robert Dewar  <dewar@adacore.com>
2421
2422	* types.ads, a-charac.ads, freeze.adb: Minor reformatting.
2423
2424	* a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
2425	lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
2426	s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
2427	s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
2428	s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
2429	s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
2430	s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
2431	s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
2432	a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
2433	g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
2434	s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
2435	s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
2436	snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
2437	s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
2438	s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
2439	s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
2440	s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
2441	pragma Compiler_Unit and adds it to relevant library units.
2442
24432007-09-12  Ed Schonberg  <schonberg@adacore.com>
2444
2445	* sem_aggr.adb (Resolve_Record_Aggregate): An others association with
2446	a box need not correspond to any component.
2447
24482007-09-12  Robert Dewar  <dewar@adacore.com>
2449
2450	* g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
2451	the tasking version of the Ada run time when foreign threads are
2452	present and there are no explicit Ada tasks or tasking constructs.
2453
2454	* gnat_rm.texi: Clarify documentation of GNAT.Threads.
2455
24562007-09-12  Hristian Kirtchev  <kirtchev@adacore.com>
2457
2458	* bindusg.adb (Display): Correct comment for switch -X. Add a line for
2459	the usage of switch -y.
2460
2461	* switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
2462	when switch -y is present.
2463
2464	* opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
2465	leap seconds in Ada.Calendar and its children.
2466
24672007-09-12  Jose Ruiz  <ruiz@adacore.com>
2468
2469	* a-extiti.ads (Timer): The discriminant is a "not null access
2470	constant" in the Reference Manual.
2471	(Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
2472
24732007-09-12  Robert Dewar  <dewar@adacore.com>
2474
2475	* a-swuwha.adb: Remove junk RM header
2476
24772007-09-12  Vincent Celier  <celier@adacore.com>
2478
2479	* g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
2480	indicator
2481
2482	* g-bytswa.ads: Minor reformatting
2483
24842007-09-12  Thomas Quinot  <quinot@adacore.com>
2485
2486	* g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
2487	Add new constant Thread_Blocking_IO, always True by default, set False
2488	on a per-runtime basis.
2489	(Need_Netdb_Buffer): New constant.
2490
24912007-09-12  Arnaud Charlet  <charlet@adacore.com>
2492
2493	* s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
2494	Added renames for corresponding functions in System.Partition_Interface.
2495
24962007-09-12  Doug Rupp  <rupp@adacore.com>
2497
2498	* Makefile.in: Remove VMS specific System.CRTL packages which are no
2499	longer needed.
2500
2501	* s-crtl-vms64.ads: Removed.
2502
25032007-09-12  Olivier Hainque  <hainque@adacore.com>
2504
2505	* decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
2506	with discriminant constraints, generalize the code for BIT_FIELDs
2507	to PACKED fields of constant size and propagate DECL_PACKED.
2508
25092007-09-11  Eric Botcazou  <ebotcazou@adacore.com>
2510
2511	* decl.c (array_type_has_nonaliased_component): New predicate.
2512	(gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
2513	set the TYPE_NONALIASED_COMPONENT flag on the type.
2514	<E_Array_Subtype>: Likewise.
2515	* gigi.h (type_for_nonaliased_component_p): Declare.
2516	* utils.c (type_for_nonaliased_component_p): New predicate.
2517	(create_field_decl): Invoke the above predicate to set the
2518	DECL_NONADDRESSABLE_P flag on the field.
2519
25202007-09-11  Javier Miranda  <miranda@adacore.com>
2521
2522	* einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
2523	in library level record type entities if we are generating statically
2524	allocated dispatch tables.
2525
2526	* exp_disp.adb (Make_Tags/Make_DT): Replace previous code
2527	importing/exporting the _tag declaration by new code
2528	importing/exporting the dispatch table wrapper. This change allows us
2529	to statically allocate of the TSD.
2530	(Make_DT.Export_DT): New procedure.
2531	(Build_Static_DT): New function.
2532	(Has_DT): New function.
2533
2534	* freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
2535	True_Constant and Current_Value. Required to statically
2536	allocate the dispatch tables.
2537	(Check_Allocator): Make function iterative instead of recursive.
2538 	Also return inner allocator node, when present, so that we do not have
2539 	to look for that node again in the caller.
2540
25412007-09-11  Jan Hubicka  <jh@suse.cz>
2542
2543	* misc.c (gnat_expand_body): Kill.
2544	(LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
2545
25462007-09-10  Robert Dewar  <dewar@adacore.com>
2547
2548	* exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
2549	mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2550	mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2551	mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
2552	ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
2553	bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
2554	bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
2555	butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
2556	comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
2557	elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
2558	err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
2559	exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
2560	exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
2561	exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
2562	exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
2563	exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
2564	exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
2565	exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
2566	exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
2567	exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
2568	exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
2569	exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
2570	fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
2571	get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
2572	gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
2573	gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
2574	gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
2575	gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
2576	gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
2577	gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
2578	inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
2579	lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
2580	lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
2581	make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
2582	mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
2583	mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
2584	mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
2585	mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
2586	osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
2587	osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
2588	par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
2589	par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
2590	par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
2591	par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
2592	par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
2593	prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
2594	prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
2595	prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
2596	prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
2597	prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
2598	prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
2599	prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
2600	rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
2601	scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
2602	sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
2603	sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
2604	sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
2605	sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
2606	sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
2607	sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
2608	sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
2609	sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
2610	sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
2611	sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
2612	sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
2613	sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
2614	sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
2615	sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
2616	stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
2617	styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
2618	switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
2619	switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
2620	tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
2621	treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
2622	types.h, uintp.h, urealp.h, usage.adb, usage.ads,
2623	validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
2624	xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
2625	xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
2626	gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
2627	mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
2628	symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
2629	mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
2630	mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
2631
26322007-09-10  Emmanuel Briot  <briot@adacore.com>
2633
2634	* s-regpat.adb (Parse_Character_Class): Fix handling of empty character
2635	classes ("[]").
2636
26372007-09-10  Vasiliy Fofanov  <fofanov@adacore.com>
2638
2639	* adaint.c (__gnat_translate_vms): new function.
2640
26412007-09-10  Gary Dismukes  <dismukes@adacore.com>
2642	    Thomas Quinot  <quinot@adacore.com>
2643
2644	* exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
2645	create an abstract subprogram in the case of 'Input. For 'Output we now
2646	create a real spec/body when the type is abstract, since it can
2647	potentially be called.
2648	(Predefined_Primitive_Bodies): Now allow the creation of a predefined
2649	body for 'Output when the type is abstract (only the creation of the
2650	body for 'Input is excluded when the type is abstract).
2651	(Stream_Operation_OK): Add an additional condition in the return
2652	statement, so that False will be returned for TTS_Stream_Input if the
2653	associated tagged type is an abstract extension. Add comments for
2654	return statement.
2655	(Expand_N_Object_Declaration): For the case of a shared passive
2656	variable, insert init proc call only after the shared variable
2657	procedures have been processed, because the IP call needs to undergo
2658	shared passive variable reference expansion, which requires these
2659	procedures to be available (and elaborated).
2660
26612007-09-10  Vincent Celier  <celier@adacore.com>
2662
2663	* prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
2664	parameter Runtime_Project.
2665
26662007-09-10  Ed Schonberg  <schonberg@adacore.com>
2667
2668	* sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
2669	given a box association, the type of the component is discriminated,
2670	and the value of the discriminant is the discriminant of the enclosing
2671	type, retrieve its value from the aggregate itself, where it must have
2672	been supplied.
2673
2674	* sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
2675	to remove other spurious ambiguities on arithmetic operations involving
2676	literals and addresses, on systems where Address is a visible integer
2677	type, when the operator is called in functional notation.
2678	(Try_Primitive_Operation): Within an instance, a call in prefixed form
2679	is legal when the types match, even if the operation is currently
2680	hidden.
2681
26822007-09-10  Ed Schonberg  <schonberg@adacore.com>
2683
2684	* sem_ch12.adb (Build_Local_Package): A formal package with no
2685	associations is legal if all formals have defaults. It is not
2686	equivalent to a formal declared with a box.
2687
26882007-09-10  Sergey Rybin  <rybin@adacore.com>
2689
2690	* vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
2691
26922007-09-10  Sergey Rybin  <rybin@adacore.com>
2693
2694	* gnat_ugn.texi: Add description of the new '-lratio' option
2695	Update 7.3.1 section about availability of the feature.
2696
26972007-09-10  Thomas Quinot  <quinot@adacore.com>
2698
2699	* exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
2700	inserted node.
2701
27022007-09-10  Olivier Hainque  <hainque@adacore.com>
2703
2704	* Makefile.in: (mips-irix section): Activate build of libgmem.
2705
27062007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2707
2708	* a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
2709	x87 registers.
2710
27112007-09-10  Eric Botcazou  <ebotcazou@adacore.com>
2712
2713	* decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
2714	a debug renaming declaration specially.
2715
27162007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2717
2718	* decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
2719	which a constant renaming is treated as a normal object declaration.
2720	* trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
2721	the N_Indexed_Component case.
2722	<N_Indexed_Component>: Fall through to above case.
2723	<N_Object_Renaming_Declaration>: Return true for all composite types.
2724
27252007-09-08  Eric Botcazou  <ebotcazou@adacore.com>
2726
2727	* decl.c (make_packable_type): If the new type has been given BLKmode,
2728	try again to get an integral mode for it.
2729
27302007-09-07  Eric Botcazou  <ebotcazou@adacore.com>
2731
2732	Re-apply accidentally reverted change:
2733
2734	2007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
2735
2736	* raise-gcc.c (get_region_description_for, get_call_site_action_for,
2737	get_action_description_for): Replace _Unwind_Word with _uleb128_t
2738	and _Unwind_SWord with _sleb128_t.
2739
27402007-09-06  Eric Botcazou  <ebotcazou@adacore.com>
2741
2742	* trans.c (convert_with_check): Update call to real_2expN.
2743
27442007-09-05  Sandra Loosemore  <sandra@codesourcery.com>
2745
2746	* trans.c (Compilation_unit_to_gnu): Use set_cfun.
2747	* utils.c (end_subprog_body): Likewise.
2748
27492007-09-03  Nick Clifton  <nickc@redhat.com>
2750
2751	* Make-lang.in: Change copyright header to refer to version 3 of
2752	the GNU General Public License and to point readers at the
2753	COPYING3 file and the FSF's license web page.
2754	* ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
2755	Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
2756	namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
2757	treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
2758	Likewise.
2759
27602007-08-31  Vincent Celier  <celier@adacore.com>
2761
2762	PR ada/4720
2763
2764	* gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
2765	gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
2766	(Check_Version_And_Help): New procedure in package Switch to process
2767	switches --version and --help.
2768	Use Check_Version_And_Help in GNAT tools
2769
2770	* make.adb:  Ditto.
2771	(Compile_Sources): Make sure that sources that are "excluded" are not
2772	compiled.
2773	(Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
2774	project file is used.
2775	(Version_Switch): Remove, moved to Switch
2776	(Help_Switch): Remove, moved to Switch
2777	(Display_Version): Remove, moved to Switch
2778
2779	* switch.ads, switch.adb (Check_Version_And_Help): New procedure in
2780	package Switch to process switches --version and --help.
2781	(Display_Version): New procedure
2782
2783	* gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
2784
27852007-08-31  Javier Miranda  <miranda@adacore.com>
2786
2787	* a-tags.adb (Internal_Tag): Protect the run-time against wrong
2788	internal tags.
2789
27902007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
2791
2792	* checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
2793	(Mark_Non_Null): If the node for which we just generated an access check
2794	is a reference to an *in* parameter and the reference appears in the
2795	declarative part of a subprogram body, mark the node as known non null.
2796
27972007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
2798
2799	* einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
2800	structure of E_Exception to reflect the new flag.
2801	(Is_Raised, Set_Is_Raised): New inlined routines.
2802	Update the usage of available flag to reflect the addition of Is_Raised.
2803	(Is_Raised, Set_Is_Raised): Bodies of new routines.
2804	(Write_Entity_Flags): Write the status of flag Is_Raised.
2805	(Is_Descendent_Of_Address): New entity flag, to simplify handling of
2806	spurious ambiguities when integer literals appear in the context of an
2807	address type that is a visible integer type.
2808
2809	* sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
2810	exceptions never being raised.
2811	(Analyze_Raise_Statement): When analyzing an exception, mark it as being
2812	explicitly raised.
2813
28142007-08-31  Javier Miranda  <miranda@adacore.com>
2815
2816	* exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
2817	statement when compiling under restriction No_Exceptions_Proparation.
2818
28192007-08-31  Ed Schonberg  <schonberg@adacore.com>
2820
2821	* exp_ch3.adb (Build_Record_Init_Proc): If there is a static
2822	initialization aggregate for the type, generate itype references for
2823	thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
2824
28252007-08-31  Gary Dismukes  <dismukes@adacore.com>
2826
2827	* exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
2828	library-level package renaming, pass the declaration associated with
2829	the renaming's special debug variable to Qualify_Entity_Names to ensure
2830	that its encoded name is properly qualified.
2831
2832	* exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
2833	occurring in the list of entities to qualify, and do not attempt to
2834	traverse an entity list in that case. Variables associated with
2835`	library-level package renamings can now occur in the table.
2836
2837	* exp_dbug.ads: Revise documentation of the encoding for renaming
2838	declarations.
2839
28402007-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2841
2842	* layout.adb (Layout_Type): Use Underlying_Type to determine whether an
2843	access type points to an unconstrained array.
2844
28452007-08-31  Hristian Kirtchev  <kirtchev@adacore.com>
2846
2847	* restrict.adb, namet.adb, par-util.adb: Remove redundant type
2848	conversion.
2849
2850	* sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
2851	simple redundant qualifications. The check is performed whenever the
2852	expression is a non-overloaded identifier.
2853	(Resolve_Type_Conversion): Enchance the redundant type conversion check
2854	to include loop parameters.
2855	(Valid_Conversion): Avoid generation of spurious error message.
2856
28572007-08-31  Bob Duff  <duff@adacore.com>
2858
2859	* par-ch4.adb (P_Simple_Expression): Fold long sequences of
2860	concatenations of string literals into a single literal, in order to
2861	avoid very deep recursion in the front end, which was causing stack
2862	overflow.
2863
2864	* sem_eval.adb (Eval_Concatenation): If the left operand is the empty
2865	string, and the right operand is a string literal (the case of "" &
2866	"..."), optimize by avoiding copying the right operand -- just use the
2867	value of the right operand directly.
2868
2869	* stringt.adb (Store_String_Chars): Optimize by growing the
2870	String_Chars table all at once, rather than appending characters one by
2871	one.
2872	(Write_String_Table_Entry): If the string to be printed is very long,
2873	just print the first few characters, followed by the length. Otherwise,
2874	doing "pn(n)" in the debugger can take an extremely long time.
2875
2876	* sem_prag.adb (Process_Interface_Name): Replace loop doing
2877	Store_String_Char with Store_String_Chars.
2878
28792007-08-31  Vincent Celier  <celier@adacore.com>
2880
2881	* prj-attr.adb: Add new attribute Excluded_Source_Files
2882
2883	* prj-nmsc.adb: Use attribute Excluded_Source_Files before
2884	Locally_Removed_Files.
2885
2886	* snames.ads, snames.adb: New standard name Excluded_Source_Files
2887
28882007-08-31  Ed Schonberg  <schonberg@adacore.com>
2889
2890	* sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
2891	clauses of subunits, ignore limited_with_clauses that are illegal and
2892	have not been fully analyzed.
2893
28942007-08-31  Ed Schonberg  <schonberg@adacore.com>
2895
2896	* sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
2897	flag, for effiency. It is called when analyzing arithmetic operators
2898	and also for actuals in calls that are universal_integers. The flag is
2899	set for the predefined type address, and for any type or subtype
2900	derived from it.
2901
2902	* sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
2903	Universal_Integer, when the formal is a descendent of address and the
2904	call appears in user code.
2905	(Analyze_Selected_Component): if the prefix is a private extension, the
2906	tag component is visible.
2907
2908	* sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
2909	entity flag.
2910
29112007-08-31  Robert Dewar  <dewar@adacore.com>
2912
2913	* s-fileio.adb (Open): Normalize file name to lower case in non-case
2914	sensitive file name systems to avoid unexpected mismatch in Vista.
2915
29162007-08-31  Vincent Celier  <celier@adacore.com>
2917
2918	* tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
2919
29202007-08-31  Vincent Celier  <celier@adacore.com>
2921
2922	* symbols-vms.adb (Initialize): Read symbol files with continuation
2923	lines
2924	(Finalize): If symbol is long, split the line
2925
29262007-08-31  Vincent Celier  <celier@adacore.com>
2927
2928	* fmap.ads: Minor comment updates
2929
29302007-08-31  GNAT Script  <nobody@adacore.com>
2931
2932	* Make-lang.in: Makefile automatically updated
2933
29342007-08-31  Bob Duff  <duff@adacore.com>
2935
2936	* sinfo.ads: Minor comment fix.
2937
29382007-08-31  Thomas Quinot  <quinot@adacore.com>
2939
2940	* stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
2941	with implementation.
2942	Documentation cleanup only.
2943
29442007-08-31  Sergey Rybin  <rybin@adacore.com>
2945
2946	* vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
2947	gnatpp '--separate-stmt-name' option.
2948	Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
2949	option.
2950
2951	* gnat_ugn.texi: Add description for the new gnatpp
2952	'--separate-stmt-name' and '--use-on-new-line' options.
2953
29542007-08-31  Ben Elliston  <bje@au.ibm.com>
2955
2956	* Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
2957	when compiling for powerpc64-*-linux.
2958	* system-linux-ppc64.ads: New file.
2959
29602007-08-22  Krister Walfridsson  <cato@df.lth.se>
2961
2962	* env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
2963	NetBSD.
2964
29652007-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2966
2967	* misc.c (gnat_type_max_size): Constify.
2968
29692007-08-16  Gary Dismukes  <dismukes@adacore.com>
2970
2971	* cstand.adb (Create_Standard): Create an entity for a zero-sized type
2972	associated with Standard_Debug_Renaming_Type, to be used as the type of
2973	the special variables whose names provide debugger encodings for
2974	renaming declarations.
2975
2976	* einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
2977	(Set_Debug_Renaming_Link): Change to set Node25.
2978	(Write_Field13_Name): Remove case for E_Enumeration_Literal.
2979	(Write_Field25_Name): Add case for E_Variable to output
2980	"Debug_Renaming_Link".
2981	(Write_Field23_Name): Correct the output string for "Limited_View".
2982
2983	* exp_dbug.adb: Add with and use of Tbuild.
2984	(Debug_Renaming_Declaration): Replace creation of an enumeration type
2985	and literal with creation of a variable of type
2986	Standard_Debug_Renaming_Type whose name encodes both the renamed object
2987	and the entity of the renaming declaration.
2988	(Qualify_Entity_Name): Add the delayed qualification of the entity name
2989	part of the name of a variable that has a Debug_Renaming_Link.
2990
2991	* stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
2992	special type to be associated with variables that provide debugger
2993	encodings for renaming declarations.
2994
29952007-08-16  Gary Dismukes  <dismukes@adacore.com>
2996	    Ed Schonberg  <schonberg@adacore.com>
2997	    Javier Miranda  <miranda@adacore.com>
2998
2999	* exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
3000	ancestor part given by an aggregate to test for an unchecked conversion,
3001	since this can occur in some cases when the ancestor part is a function
3002	call, and we don't want to fall into the recursive call to this
3003	procedure in that case.
3004
3005	* exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
3006	stream attributes on limited types to account for user-specified
3007	attributes as well as whether Input (resp. Output) becomes available
3008	due to Read (resp. Write) being available for the type. Change Boolean
3009	variable to the more accurate name
3010	Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
3011	double-"not" predicate at beginning of return statement to more
3012	understandable form.
3013
3014	* exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
3015	return has an associated N_Handled_Sequence_Of_Statements, then wrap it
3016	in a block statement and use that as the first statement of the
3017	expanded return rather than incorrectly using the handled sequence as
3018	the first statement.
3019
3020	* exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
3021	operation, generate an explicit freeze node for it rather than
3022	generating extra formals, to ensure that gigi has the proper order of
3023	elaboration for anonymous subtypes in the signature of the subprograms.
3024	(Build_In_Place_Formal): Move assertion to beginning of loop.
3025	(Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
3026	applied to a function call (occurs for some cases of 'Input).
3027	(Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
3028	applied to a function call (occurs for some cases of 'Input).
3029
3030	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
3031	2005, generate an extended return statement enclosing the result object
3032	and 'Read call.
3033
3034	* freeze.adb (Freeze_Record_Type): Extend the current management of
3035	components that are access type with an allocator as default value: add
3036	missing support to the use of qualified expressions of the
3037	allocator (which also cause freezing of the designated type!)
3038	(Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
3039	dispatching operation, since extra formals may be needed by calls to
3040	build-in-place functions (such as stream 'Input).
3041
3042	* sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
3043	formals for 'Constrained and accessibility level in the case of a
3044	predefined dispatching operation.
3045
3046	* exp_util.adb (Insert_Actions): A protected body is a valid insertion
3047	point, no need to find the parent node.
3048
30492007-08-16  Javier Miranda  <miranda@adacore.com>
3050
3051	* exp_attr.adb (Attribute_Priority): Add missing support for entries
3052	and entry barriers.
3053
30542007-08-16  Javier Miranda  <miranda@adacore.com>
3055
3056	* exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
3057	is not really required and can introduce regression with the debugger.
3058	The original problem is fixed with the patch written for checks.adb.
3059
30602007-08-16  Thomas Quinot  <quinot@adacore.com>
3061
3062	* g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
3063	Range_Check on Allocated_Table.
3064
30652007-08-16  Vincent Celier  <celier@adacore.com>
3066
3067	* make.adb (Collect_Arguments): Call Test_If_Relative_Path with
3068	Including_Non_Switch set to False.
3069	(Gnatmake): For the compiler, call Test_If_Relative_Path with
3070	Including_Non_Switch set to False.
3071
3072	* makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
3073	parameter Including_Non_Switch, defaulted to True. When
3074	Including_Non_Switch is False, options that are not switches and
3075	appear as relative path are not converted to absolute paths.
3076
30772007-08-16  Nicolas Roche  <roche@adacore.com>
3078
3079	* Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
3080	makefiles
3081
3082	* Make-lang.in: Update dependencies
3083
30842007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3085
3086	* sem_ch10.adb (Has_With_Clause): If the name of the with clause
3087	currently inspected is a selected component, retrieve the entity of
3088	its selector.
3089	(Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
3090	from the immediate ancestor of Main_Unit_Entity.
3091	(Install_Limited_Withed_Unit): Do not install the limited view of
3092	package P if P is reachable through an ancestor chain from package C
3093	and C also has a with clause for P in its body.
3094	(Has_Limited_With_Clause): New routine.
3095	(Has_With_Clause): New routine.
3096
30972007-08-16  Ed Schonberg  <schonberg@adacore.com>
3098
3099	* sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
3100	generic for an enclosing instance is a global reference, even though
3101	its scope is the enclosing instance.
3102
31032007-08-16  Gary Dismukes  <dismukes@adacore.com>
3104	    Javier Miranda  <miranda@adacore.com>
3105
3106	* sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
3107	initialize a limited object.
3108	(Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
3109	13/2 and 14/2.
3110	Make sure Has_Complex_Representation is inherited by derived type.
3111
31122007-08-16  Robert Dewar  <dewar@adacore.com>
3113
3114	* sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
3115	exception case
3116
31172007-08-16  Ed Schonberg  <schonberg@adacore.com>
3118
3119	* sem_disp.adb (Check_Dispatching_Operation): If the operation
3120	implements an operation inherited from a progenitor interface, verify
3121	that they are subtype-conformant.
3122
31232007-08-16  Hristian Kirtchev  <kirtchev@adacore.com>
3124	    Bob Duff  <duff@adacore.com>
3125	    Nicolas Setton  <setton@adacore.com>
3126
3127	* sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
3128	(Resolve): Alphabetize local variables. Add new variable From_Lib. When
3129	the statement which is being resolved comes from a predefined library
3130	unit, all non-predefined library interpretations are skipped.
3131	(Resolve_Op_Concat): If string concatenation was folded in the parser,
3132	but the "&" is user defined, give an error, because the folding would
3133	be wrong.
3134
3135	* sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
3136	the parser has folded a long sequence of concatenations of string
3137	literals.
3138
3139	* trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
3140	and "JMP_BUF" variables as artificial.
3141	(N_String_Literal): Do not use alloca for very long string literals. Use
3142	xmalloc/free instead. Otherwise the stack might overflow.
3143
3144	* utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
3145	compiler.
3146
31472007-08-16  Vincent Celier  <celier@adacore.com>
3148
3149	* vms_conv.adb (Process_Argument): Ensure that project related options
3150	are not put in the -cargs section when using GNAT COMPILE.
3151
31522007-08-16  Robert Dewar  <dewar@adacore.com>
3153
3154	* gnat_ugn.texi: Add note on preprocessing (output file not written)
3155
31562007-08-16  Thomas Quinot  <quinot@adacore.com>
3157
3158	* a-tags.adb: Minor reformatting.
3159
31602007-08-16  Bob Duff  <duff@adacore.com>
3161
3162	* sem_type.ads, sem_ch4.adb: Minor reformatting.
3163
31642007-08-14  Thomas Quinot  <quinot@adacore.com>
3165
3166	* g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
3167	s-osinte-interix.ads, system-interix.ads: Removed.
3168
31692007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
3170
3171	* a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
3172	calls to Check_Within_Time_Bounds.
3173	("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
3174	(Difference): Account for possible rounding of the resulting difference
3175
31762007-08-14  Robert Dewar  <dewar@adacore.com>
3177
3178	* uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
3179	par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
3180	s-osinte-solaris.adb, s-osinte-solaris.ads,
3181	s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
3182
3183	* styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
3184	switch -gnatyS. Enable -gnatyS in GNAT style check mode
3185
31862007-08-14  Robert Dewar  <dewar@adacore.com>
3187	    Ed Schonberg  <schonberg@adacore.com>
3188
3189	* inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
3190	Suppress unmodified in-out parameter warning in some cases
3191	This patch is a also fairly significant change to the way suppressible
3192	checks are handled.
3193
3194	* checks.ads, checks.adb (Install_Null_Excluding_Check): No check
3195	needed for access to concurrent record types generated by the expander.
3196	(Generate_Range_Check): When generating a temporary to capture the
3197	value of a conversion that requires a range check, set the type of the
3198	temporary before rewriting the node, so that the type is always
3199	properly placed for back-end use.
3200	(Apply_Float_Conversion_Check): Handle case where the conversion is
3201	truncating.
3202	(Get_Discriminal): Code reformatting. Climb the scope stack looking
3203	for a protected type in order to examine its discriminants.
3204
32052007-08-14  Robert Dewar  <dewar@adacore.com>
3206	    Gary Dismukes  <dismukes@adacore.com>
3207	    Ed Schonberg  <schonberg@adacore.com>
3208	    Thomas Quinot  <quinot@adacore.com>
3209
3210	* a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
3211	a-stwisu.adb, a-strsup.adb: Fix warnings for range
3212	tests optimized out.
3213
3214	* exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
3215	(Get_Allocator_Final_List): For the case of an anonymous access type
3216	that has a specified Associated_Final_Chain, do not go up to the
3217	enclosing scope.
3218	(Expand_N_Type_Conversion): Test for the case of renamings of access
3219	parameters when deciding whether to apply a run-time accessibility
3220	check.
3221	(Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
3222	aggregate code before allocator, and ahead of declaration for
3223	temporary, to prevent access before elaboration when the allocator is
3224	an actual for an access parameter.
3225	(Expand_N_Type_Conversion): On an access type conversion involving an
3226	access parameter, do not apply an accessibility check when the
3227	operand's original node was an attribute other than 'Access. We now
3228	create access conversions for the expansion of 'Unchecked_Access and
3229	'Unrestricted_Access in certain cases and clearly accessibility should
3230	not be checked for those.
3231
3232	* exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
3233	includes a type conversion of a packed component that has been expanded,
3234	recover the original expression for the object, and use this expression
3235	in the post-call assignment statement, so that the assignment is made
3236	to the object and not to a back-end temporary.
3237	(Freeze_Subprogram): In case of primitives of tagged types not defined
3238	at the library level force generation of code to register the primitive
3239	in the dispatch table. In addition some code reorganization has been
3240	done to leave the implementation clear.
3241	(Expand_Call): When expanding an inherited implicit conversion,
3242	preserve the type of the inherited function after the intrinsic
3243	operation has been expanded.
3244
3245	* exp_ch2.ads, exp_ch2.adb
3246	(Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
3247	of an entry formal appearing in an assignment statement does not assign
3248	to the formal.
3249	(Expand_Current_Value): Instead of calling a routine to determine
3250	whether the prefix of an attribute reference should be optimized or
3251	not, prevent the optimization of such prefixes all together.
3252
3253	* lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
3254	component whose prefix is known to be of an access type is an implicit
3255	dereference and does not assign to the prefix.
3256
32572007-08-14  Ed Schonberg  <schonberg@adacore.com>
3258	    Robert Dewar  <dewar@adacore.com>
3259
3260	* atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
3261	itype is visited, make an entry into table to link associated node and
3262	new itype.
3263	Add comments and correct harmless error in Build_NCT_Hash_Tables
3264	(Array_Aggr_Subtype): Associate each itype created for an index type to
3265	the corresponding range construct, and not to the aggregate itself. to
3266	maintain a one-to-one correspondence between itype and its associated
3267	node, to prevent errors when complex expression is copied.
3268	Fix mishandling of multiple levels of parens
3269
3270	* sem_aggr.adb: Create a limited view of an incomplete type, to make
3271	treatment of limited views uniform for all visible declarations in a
3272	limited_withed package.
3273	(New_Copy_Tree): If hash table is being used and itype is visited,
3274	make an entry into table to link associated node and new itype.
3275	(Resolve_Record_Aggregate): Do not add an others box association for a
3276	discriminated record component that has only discriminants, when there
3277	is a box association for the component itself.
3278
3279	* par-ch4.adb: Fix mishandling of multiple levels of parens
3280
32812007-08-14  Robert Dewar  <dewar@adacore.com>
3282
3283	* comperr.adb: Fix problem with suppressing warning messages from gigi
3284
3285	* erroutc.ads, erroutc.adb, errout.ads,
3286	errout.adb (Write_Eol): Remove trailing spaces before writing the line
3287	(Write_Eol_Keep_Blanks): New procedure to write a line, including
3288	possible trailing spaces.
3289	(Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
3290	Fix problem with suppressing warning messages from back end
3291	Improve handling of deleted warnings
3292
3293	* gnat1drv.adb:
3294	Fix problem with suppressing warning messages from back end
3295	Handle setting of Static_Dispatch_Tables flag.
3296
3297	* prepcomp.adb:
3298	Fix problem with suppressing warning messages from back end
3299
3300	* exp_intr.adb: Improve handling of deleted warnings
3301
33022007-08-14  Robert Dewar  <dewar@adacore.com>
3303
3304	* debug.adb: Improve -gnatdI to cover all cases of serialization
3305	Add documentation of dZ, d.t
3306
3307	* sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
3308	serialization.
3309	(Sprint_Node_Actual): Generate new output associated with implicit
3310	importation and implicit exportation of object declarations.
3311
33122007-08-14  Ed Schonberg  <schonberg@adacore.com>
3313	    Robert Dewar  <dewar@adacore.com>
3314	    Javier Miranda  <miranda@adacore.com>
3315	    Gary Dismukes  <dismukes@adacore.com>
3316
3317	* einfo.ads, einfo.adb: Create a limited view of an incomplete type,
3318	to make treatment of limited views uniform for all visible declarations
3319	in a limited_withed package.
3320	Improve warnings for in out parameters
3321	(Set_Related_Interaface/Related_Interface): Allow the use of this
3322	attribute with constants.
3323	(Write_Field26_Name): Handle attribute Related_Interface in constants.
3324	Warn on duplicate pragma Preelaborable_Initialialization
3325
3326	* sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
3327	generation of a freezing node to ensure proper management of null
3328	excluding access types in the backend.
3329	(Create_Extra_Formals): Test base type of the formal when checking for
3330	the need to add an extra accessibility-level formal. Pass the entity E
3331	on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
3332	originally being done in a couple of cases), to ensure that the
3333	Extra_Formals list gets set on the entity E when the first entity is
3334	added.
3335	(Conforming_Types): Add missing calls to Base_Type to the code that
3336	handles anonymous access types. This is required to handle the
3337	general case because Process_Formals builds internal subtype entities
3338	to handle null-excluding access types.
3339	(Make_Controlling_Function_Wrappers): Create wrappers for constructor
3340	functions that need it, even when not marked Requires_Overriding.
3341	Improve warnings for in out parameters
3342	(Analyze_Function_Return): Warn for disallowed null return
3343	Warn on return from procedure with unset out parameter
3344	Ensure consistent use of # in error messages
3345	(Check_Overriding_Indicator): Add in parameter Is_Primitive.
3346	(Analyze_Function_Return): Move call to Apply_Constraint_Check before
3347	the implicit conversion of the expression done for anonymous access
3348	types. This is required to generate the code of the null excluding
3349	check (if required).
3350
3351	* sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
3352	A formal parameter is never publicly referenceable outside of its body.
3353	(Check_References): For an unreferenced formal parameter in an accept
3354	statement, use the same warning circuitry as for subprogram formal
3355	parameters.
3356	(Warn_On_Unreferenced_Entity): New subprogram, taken from
3357	Output_Unreferenced_Messages, containing the part of that routine that
3358	is now reused for entry formals as described above.
3359	(Goto_Spec_Entity): New function
3360	(Check_References): Do not give IN OUT warning for dispatching operation
3361	Improve warnings for in out parameters
3362	(Test_Ref): Check that the entity is not undefinite before calling
3363	Scope_Within, in order to avoid infinite loops.
3364	Warn on return from procedure with unset out parameter
3365	Improved warnings for unused variables
3366
33672007-08-14  Robert Dewar  <dewar@adacore.com>
3368	    Javier Miranda  <miranda@adacore.com>
3369	    Gary Dismukes  <dismukes@adacore.com>
3370
3371	* exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
3372	(Expand_N_Attribute_Reference): Further unify the handling of the
3373	three forms of access attributes, using common code now for all three
3374	cases. Add a test for the case of applying an access attribute to
3375	an explicit dereference when the context is an access-to-interface
3376	type. In that case we need to apply the conversion to the prefix
3377	of the explicit dereference rather than the prefix of the attribute.
3378	(Attribute_Version, UET_Address): Set entity as internal to ensure
3379	proper dg output of implicit importation.
3380	(Expand_Access_To_Type): Removed.
3381	(Expand_N_Attribute_Reference): Merge the code from the three cases
3382	of access attributes, since the processing is largely identical for
3383	these cases. The substantive fix here is to process the case of a
3384	type name prefix (current instance case) before handling the case
3385	of interface prefixes.
3386
33872007-08-14  Thomas Quinot  <quinot@adacore.com>
3388	    Ed Schonberg  <schonberg@adacore.com>
3389	    Javier Miranda  <miranda@adacore.com>
3390	    Robert Dewar  <dewar@adacore.com>
3391
3392	* exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
3393	(Freeze_Array_Type, Freeze_Record_Type): For the case of a component
3394	type that is an anonymous access to controlled object, establish
3395	an associated finalization chain to avoid corrupting the global
3396	finalization list when a dynamically allocated object designated
3397	by such a component is deallocated.
3398	(Make_Controlling_Function_Wrappers): Create wrappers for constructor
3399	functions that need it, even when not marked Requires_Overriding.
3400	(Initialize_Tag): Replace call to has_discriminants by call to
3401	Is_Variable_Size_Record in the circuitry that handles the
3402	initialization of secondary tags.
3403	(Is_Variable_Size_Record): New implementation.
3404	(Expand_N_Object_Declaration): Suppress call to init proc if there is a
3405	Suppress_Initialization pragma for a derived type.
3406	(Is_Variable_Size_Record): New subprogram.
3407	(Build_Offset_To_Top_Functions): New implementation that simplifies the
3408	initial version of this routine and also fixes problems causing
3409	incomplete initialization of the table of interfaces.
3410	(Build_Init_Procedure): Improve the generation of code to initialize the
3411	the tag components of secondary dispatch tables.
3412	(Init_Secondary_Tags): New implementation that simplifies the previous
3413	version of this routine.
3414	(Make_DT): Add parameter to indicate when type has been frozen by an
3415	object declaration, for diagnostic purposes.
3416	(Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
3417	diagnose attemps to freeze a subprogram when some untagged type of its
3418	profile is a private type whose full view has not been analyzed yet.
3419	(Freeze_Array_Type): Generate init proc for packed array if either
3420	Initialize or Normalize_Scalars is set.
3421	(Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
3422	constructing the new profile, copy the null_exclusion indicator for each
3423	parameter, to ensure full conformance of the new body with the spec.
3424
3425	* sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
3426	Create wrappers for constructor functions that need it, even when not
3427	marked Requires_Overriding.
3428	(Covers): Handle properly designated types of anonymous access types,
3429	whose non-limited views are themselves incomplete types.
3430	(Add_Entry): Use an entity to store the abstract operation which hides
3431	an interpretation.
3432	(Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
3433	(Collect_Interps): Use Empty as an actual for Abstract_Op in the
3434	initialization aggregate.
3435	(Function_Interp_May_Be_Hidden): Rename to
3436	Function_Interp_Has_Abstract_Op.
3437	(Has_Compatible_Type): Remove machinery that skips interpretations if
3438	they are labeled as potentially hidden by an abstract operator.
3439	(Has_Hidden_Interp): Rename to Has_Abstract_Op.
3440	(Set_May_Be_Hidden): Rename to Set_Abstract_Op.
3441	(Write_Overloads): Output the abstract operator if present.
3442	(Add_Entry): Before inserting a new entry into the interpretation table
3443	for a node, determine whether the entry will be disabled by an abstract
3444	operator.
3445	(Binary_Op_Interp_May_Be_Hidden): New routine.
3446	(Collect_Interps): Add value for flag May_Be_Hidden in initialization
3447	aggregate.
3448	(Function_Interp_May_Be_Hidden): New routine.
3449	(Has_Compatible_Type): Do not consider interpretations hidden by
3450	abstract operators when trying to determine whether two types are
3451	compatible.
3452	(Has_Hidden_Interp): New routine.
3453	(Set_May_Be_Hidden_Interp): New routine.
3454	(Write_Overloads): Write the status of flag May_Be_Hidden.
3455
34562007-08-14  Ed Schonberg  <schonberg@adacore.com>
3457	    Javier Miranda  <miranda@adacore.com>
3458
3459	* exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
3460	types declared in the declarative part of a nested package body or in
3461	the proper body of a stub.
3462	(Set_All_DT_Position): Add missing check to avoid wrong assignation
3463	of the same dispatch table slot to renamed primitives.
3464	(Make_Select_Specific_Data_Table): Handle private types.
3465	(Tagged_Kind): Handle private types.
3466	(Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
3467	output of implicit importation and exportation.
3468	(Expand_Interface_Thunk): Fix bug in the expansion assuming that the
3469	first formal of the thunk is always associated with the controlling
3470	type. In addition perform the following code cleanup: remove formal
3471	Thunk_Alias which is no longer required, cleanup evaluation of the
3472	the controlling type, and update the documentation.
3473	Replace occurrence of Default_Prim_Op_Count by
3474	Max_Predef_Prims. Addition of compile-time check to verify
3475	that the value of Max_Predef_Prims is correct.
3476	(Check_Premature_Freezing): Apply check in Ada95 mode as well.
3477	(Make_DT): Add parameter to indicate when type has been frozen by an
3478	object declaration, for diagnostic purposes.
3479	(Build_Static_Dispatch_Tables): New subprogram that takes care of the
3480	construction of statically allocated dispatch tables.
3481	(Make_DT): In case of library-level tagged types export the declaration
3482	of the primary tag. Remove generation of tags (now done by Make_Tags).
3483	Additional modifications to handle non-static generation of dispatch
3484	tables. Take care of building tables for asynchronous interface types
3485	(Make_Tags): New subprogram that generates the entities associated with
3486	the primary and secondary tags of Typ and fills the contents of Access_
3487	Disp_Table. In case of library-level tagged types imports the forward
3488	declaration of the primary tag that will be declared later by Make_DT.
3489	(Expand_Interface_Conversion): In case of access types to interfaces
3490	replace an itype declaration by an explicit type declaration to avoid
3491	problems associated with the scope of such itype in transient blocks.
3492
34932007-08-14  Robert Dewar  <dewar@adacore.com>
3494	    Ed Schonberg  <schonberg@adacore.com>
3495	    Javier Miranda  <miranda@adacore.com>
3496
3497	* exp_util.ads, exp_util.adb:
3498	This patch replaces a number of occurrences of explicit tests for N_Null
3499	with calls to Known_Null. This improves tracking of null values, since
3500	Known_Null also catches null constants, and variables currently known to
3501	be null, so we get better tracking.
3502	(Ensure_Defined): create an itype reference only in the scope of the
3503	itype.
3504	(Side_Effect_Free): A selected component of an access type that
3505	denotes a component with a rep clause must be treated as not
3506	side-effect free, because if it is part of a linked structure its
3507	value may be affected by a renaming.
3508	(Expand_Subtype_From_Expr): For limited objects initialized with build
3509	in place function calls, do nothing; otherwise we prematurely introduce
3510	an N_Reference node in the expression initializing the object, which
3511	breaks the circuitry that detects and adds the additional arguments to
3512	the called function. Bug found working in the new patch for statically
3513	allocated dispatch tables.
3514	(Is_Library_Level_Tagged_Type): New subprogram.
3515	(Remove_Side_Effects): If the expression of an elementary type is an
3516	operator treat as a function call.
3517	(Make_Literal_Range): If the index type of the array is not integer, use
3518	attributes properly to compute the constraint on the resulting aggregate
3519	which is a string.
3520
3521	* freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
3522	class-wide type whose base type is an incomplete private type, leave
3523	class-wide type unfrozen so that freeze nodes can be generated
3524	properly at a later point.
3525	(Freeze_Entity, array case): Handle case of pragma Pack and component
3526	size attributre clause for same array.
3527
35282007-08-14  Vincent Celier  <celier@adacore.com>
3529
3530	* prj.ads, prj.adb: Update Project Manager to new attribute names for
3531	gprbuild.
3532	Allow all valid declarations in configuration project files
3533	(Reset): Initialize all tables and hash tables in the project tree data
3534	Major update of the Project Manager and of the project aware tools,
3535	including gprmake, so that the same sources in the GNAT repository
3536	can be used by gprbuild.
3537	(Slash_Id): Change type to be Path_Name_Type
3538	(Slash): Return a Path_Name_Type instead of a File_Name_Type
3539
3540	* prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
3541	gprbuild.
3542	Update Project Manager to new attribute names for ghprbuild
3543	Allow all valid declarations in configuration project files
3544	Major update of the Project Manager and of the project aware tools,
3545	including gprmake, so that the same sources in the GNAT repository
3546	can be used by gprbuild.
3547
3548	* prj-com.ads:
3549	Major update of the Project Manager and of the project aware tools,
3550	including gprmake, so that the same sources in the GNAT repository
3551	can be used by gprbuild.
3552
3553	* prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3554	insensitive flag for attributes with optional index.
3555	(Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3556	array attribute, put the index in lower case.
3557	Update Project Manager to new attribute names for ghprbuild
3558	Allow all valid declarations in configuration project files
3559	Major update of the Project Manager and of the project aware tools,
3560	including gprmake, so that the same sources in the GNAT repository
3561	can be used by gprbuild.
3562
3563	* prj-env.ads, prj-env.adb:
3564	Major update of the Project Manager and of the project aware tools,
3565	including gprmake, so that the same sources in the GNAT repository
3566	can be used by gprbuild.
3567	(Get_Reference): Change type of parameter Path to Path_Name_Type
3568
3569	* prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
3570	removing '-' from the path to start with the first character of the
3571	next directory.
3572	Major update of the Project Manager and of the project aware tools,
3573	including gprmake, so that the same sources in the GNAT repository
3574	can be used by gprbuild.
3575	Major update of the Project Manager and of the project aware tools,
3576	including gprmake, so that the same sources in the GNAT repository
3577	can be used by gprbuild.
3578
3579	* prj-nmsc.ads, prj-nmsc.adb:
3580	Update Project Manager to new attribute names for ghprbuild
3581	Allow all valid declarations in configuration project files
3582	(Search_Directories): Detect subunits that are specified with an
3583	attribute Body in package Naming. Do not replace a source/unit in the
3584	same project when the order of the source dirs are known. Detect
3585	duplicate sources/units in the same project when the order of the
3586	source dirs are not known.
3587	(Check_Ada_Name): Allow all identifiers that are not reserved words
3588	in Ada 95.
3589	Major update of the Project Manager and of the project aware tools,
3590	including gprmake, so that the same sources in the GNAT repository
3591	can be used by gprbuild.
3592	(Look_For_Sources): If the list of sources is empty, set the object
3593	directory of non extending project to nil.
3594	Change type of path name variables to be Path_Name_Type
3595	(Locate_Directory): Make sure that on Windows '/' is converted to '\',
3596	otherwise creating missing directories will fail.
3597
3598	* prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
3599	prj-part.ads, prj-part.adb:
3600	Major update of the Project Manager and of the project aware tools,
3601	including gprmake, so that the same sources in the GNAT repository
3602	can be used by gprbuild.
3603
3604	* prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
3605	insensitive flag for attributes with optional index.
3606	(Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
3607	array attribute, put the index in lower case.
3608	(Parse_Variable_Reference): Allow the current project name to be used in
3609	the prefix of an attribute reference.
3610
3611	* prj-util.ads, prj-util.adb
3612	(Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
3613	defaulted to False. When True, always check against indexes in lower
3614	case.
3615
3616	* snames.ads, snames.h, snames.adb:
3617	Update Project Manager to new attribute names for gprbuild
3618	Allow all valid declarations in configuration project files
3619
36202007-08-14  Robert Dewar  <dewar@adacore.com>
3621	    Ed Schonberg  <schonberg@adacore.com>
3622
3623	* opt.ads: Warning for non-local exception propagation now off by
3624	default
3625	New switch -gnatI to disable representation clauses
3626	Implement new pragma Implicit_Packing
3627
3628	* usage.adb:
3629	Warning for non-local exception propagation now off by default
3630	Add warning for unchecked conversion of pointers wi different
3631	conventions.
3632	New switch -gnatI to disable representation clauses
3633
3634	* usage.adb: new switch -gnatyS
3635
3636	* gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
3637	note that aggregates of anonymous array types are not flagged.
3638	-gnatwc now includes membership tests optimized away
3639	-gnatw.x warnings are now off by default
3640	Added conditional compilation Appendix
3641	Add documentation of -gnatI
3642	Add documentation for new -gnatyS style check
3643	Update documentation about SAL and auto-init on Windows.
3644
3645	* gnat_rm.texi:
3646	Add documentation for pragma Check_Name and 'Enabled attribute
3647	Document that Eliminate on dispatching operation is ignored
3648	Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
3649	Document pragma Main
3650	Document pragma Implicit_Packing
3651
3652	* sem_ch13.adb: Add warning for unchecked conversion of pointers wi
3653	different conventions
3654	New switch -gnatI to disable representation clauses
3655
3656	* switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
3657	recognized, report the invalid characters including "-gnat" instead of
3658	just the first character in the switch.
3659	New switch -gnatI to disable representation clauses
3660	Set Warn_On_Object_Renames_Function true for -gnatg
3661
3662	* vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
3663	Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
3664	Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
3665	to switch -aP (add directory to project search dir).
3666
3667	* par-prag.adb: Implement new pragma Implicit_Packing
3668
3669	* sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
3670	type as having a non-standard representation, to force expansion on
3671	conversion to related types.
3672	(Analyze_Pragma): Warn on misspelled pragma
3673	(Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
3674	Ensure consistent use of # in error messages
3675	Implement pragma Implicit_Packing
3676
36772007-08-14  Olivier Hainque  <hainque@adacore.com>
3678	    Eric Botcazou  <ebotcazou@adacore.com>
3679
3680	* targtyps.c (get_target_maximum_default_alignment): New function.
3681	Maximum alignment
3682	that the compiler might choose by default for a type or object.
3683	(get_target_default_allocator_alignment): New function. Alignment known
3684	to be honored by the target default allocator.
3685	(get_target_maximum_allowed_alignment): New function. Maximum alignment
3686	we might accept for any type or object on the target.
3687	(get_target_maximum_alignment): Now synonym of maximum_default_alignment
3688
3689	* gigi.h (get_target_maximum_default_alignment): Declare new function.
3690	(get_target_default_allocator_alignment): Likewise.
3691	(get_target_maximum_allowed_alignment): Likewise.
3692
3693	PR ada/19037
3694	* decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
3695	result of a function call, first try to use a stabilized reference for
3696	a constant renaming too.
3697	(validate_alignment): Use target_maximum_allowed_alignment instead of
3698	MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
3699	(gnat_to_gnu_entity): Use common nodes directly.
3700	(gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
3701	alignment and size for the object.
3702	(lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
3703	and N_Procedure_Call_Statement.
3704	(takes_address): Rename to lvalue_required_p, add third parameter
3705	'aliased' and adjust recursive calls.
3706	<N_Indexed_Component>: Update 'aliased' from the array type.
3707	<N_Selected_Component>: New case.
3708	<N_Object_Renaming_Declaration>: New Likewise.
3709	(Identifier_to_gnu): Adjust for above changes.
3710	(maybe_stabilize_reference) <CONST_DECL>: New case.
3711
3712	* utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
3713	between type variants.
3714	(build_simple_component_ref): Likewise.
3715	(build_call_alloc_dealloc): Use target_default_allocator_alignment
3716	instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
3717	aligning type circuitry for allocations from the default storage pool.
3718	(build_allocator): Likewise.
3719	(build_simple_component_ref): Manually fold the reference for a
3720	constructor if the record type contains a template.
3721
3722	* utils.c (value_zerop): Delete.
3723	(gnat_init_decl_processing): Emit debug info for common types.
3724	(rest_of_record_type_compilation): If a union contains a field
3725	with a non-constant qualifier, treat it as variable-sized.
3726	(finish_record_type): Give the stub TYPE_DECL a name.
3727	(rest_of_record_type_compilation): Likewise.
3728	(convert) <CONSTRUCTOR>: New case.  Build a new constructor if
3729	types are equivalent array types.
3730	(create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
3731	even if the type is not passed by reference.
3732	(static_ctors, static_dtors): Delete.
3733	(end_subprog_body): Do not record constructors and destructors.
3734	(build_global_cdtor): Delete.
3735	(gnat_write_global_declarations): Do not call build_global_cdtor.
3736
3737	* lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
3738	-fRTS=rtp is specified.
3739	If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
3740	specified.
3741
3742	* misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
3743	of the personality function with SJLJ exceptions.
3744
3745	* raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
3746	the name of the personality function with SJLJ exceptions.
3747
37482007-08-14  Robert Dewar  <dewar@adacore.com>
3749	    Ed Schonberg  <schonberg@adacore.com>
3750
3751	* par.ads, par.adb: Improve handling of extra right parens.
3752	(Par): Remove flag From_Limited_With_Clause.
3753
3754	* par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
3755	Improve handling of extra right parens.
3756
37572007-08-14  Robert Dewar  <dewar@adacore.com>
3758
3759	* par-tchk.adb (TF_Semicolon): Improve error recovery
3760
37612007-08-14  Robert Dewar  <dewar@adacore.com>
3762	    Ed Schonberg  <schonberg@adacore.com>
3763
3764	* sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
3765	enumeration type, mark all literals as referenced.
3766	(Eval_Attribute, case 'Image): If the argument is an enumeration
3767	literal and names are available, constant-fold but mark nevertheless as
3768	non-static.
3769	Clean up function names.
3770	(Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
3771	comment.
3772	(Requires_Simple_Name_Prefix): Removed.
3773
37742007-08-14  Robert Dewar  <dewar@adacore.com>
3775	    Ed Schonberg  <schonberg@adacore.com>
3776
3777	* sem_ch11.adb: Improved warnings for unused variables
3778
3779	* sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
3780	is a synchronized interface, the derived type is limited.
3781	(Analyze_Object_Declaration): Mark the potential coextensions in the
3782	definition and expression of an object declaration node.
3783	(Build_Derived_Type): For the completion of a private type declaration
3784	with a derived type declaration, chain the parent type's representation
3785	items to the last representation item of the derived type (not the
3786	first one) if they are not present already.
3787	(Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
3788	object declaration of forward references to tags.
3789	(Access_Subprogram_Declaration): In Ada2005, anonymous access to
3790	subprogram types can appear as access discriminants of synchronized
3791	types.
3792	(OK_For_Limited_Init_In_05): The initialization is legal is it is a call
3793	given in prefixed form as a selected component.
3794	(Process_Discriminants): If not all discriminants have defaults, place
3795	error message on a default that is present.
3796	(Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
3797	extend a synchronized tagged type.
3798	Improved warnings for unused variables
3799	(Is_Visible_Component): Fix a visibility hole on a component inherited
3800	by a private extension when parent is itself declared as a private
3801	extension, and the derivation is in a child unit.
3802	(Find_Hidden_Interface): Move spec from the package body.
3803
38042007-08-14  Robert Dewar  <dewar@adacore.com>
3805	    Ed Schonberg  <schonberg@adacore.com>
3806
3807	* sem_ch5.adb: Improve warnings on redundant assignments
3808
3809	* sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
3810	parameter
3811	(Is_Synchronized_Tagged_Type): New subprogram that returns true
3812	in case of synchronized tagged types (AARM 3.9.4 (6/2)).
3813	(Safe_To_Capture_Value): Can now return True for constants, even if Cond
3814	is set to False. Improves handling of Known_[Not_]Null.
3815	(Wrong_Type): Special case address arithmetic attempt
3816	(Collect_Abstract_Interfaces): Add new formal to allow collecting
3817	abstract interfaces just using the partial view of private types.
3818	(Has_Abstract_Interfaces): Add new formal to allow checking types
3819	covering interfaces using the partial view of private types.
3820	(Is_Fully_Initialized_Type): Special VM case for uTag component. This
3821	component still needs to be defined in this case, but is never
3822	initialized as VMs are using other dispatching mechanisms.
3823	(Abstract_Interface_List): For a protected type, use base type to get
3824	proper declaration.
3825	Improve warnings on redundant assignments
3826	(Is_Variable): Handle properly an implicit dereference of a prefixed
3827	function call.
3828	(Build_Actual_Subtype): If this is an actual subtype for an
3829	unconstrained formal parameter, use the sloc of the body for the new
3830	declaration, to prevent anomalises in the debugger.
3831
38322007-08-14  Robert Dewar  <dewar@adacore.com>
3833
3834	* sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
3835	dispatching operation
3836
38372007-08-14  Ed Schonberg  <schonberg@adacore.com>
3838	    Gary Dismukes  <dismukes@adacore.com>
3839
3840	* exp_aggr.ads,
3841	exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
3842	expanded aggregate code before allocator, and ahead of declaration for
3843	temporary, to prevent access before elaboration when the allocator is
3844	an actual for an access parameter.
3845	(Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
3846	the TSD and the table of interfaces.
3847	(Convert_To_Assignments): Augment the test for delaying aggregate
3848	expansion for limited return statements to include the case of extended
3849	returns, to prevent creation of an unwanted transient scope.
3850	(Is_Static_Dispatch_Table_Aggregate): New subprogram.
3851	(Expand_Array_Aggregate): Handle aggregates associated with
3852	statically allocated dispatch tables.
3853	(Expand_Record_Aggregate): Handle aggregates associated with
3854	statically allocated dispatch tables.
3855	(Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
3856	of anonymous access type.
3857
38582007-08-14  Ed Schonberg  <schonberg@adacore.com>
3859
3860	* exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
3861	is a variable that renames a slice, use the variable itself in the
3862	expannsion when the renamed expression itself may be modified between
3863	the declaration of the renaming and the array assignment.
3864
38652007-08-14  Jerome Guitton  <guitton@adacore.com>
3866
3867	* s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
3868	s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
3869	s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
3870	New functions; dummy implementations.
3871
3872	* s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
3873	functions, used to implement the multi-tasks mode routines on VxWorks.
3874
3875	* s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
3876	New functions, thin
3877	binding to the VxWorks routines which have changed between VxWorks 5
3878	and 6.
3879	(Int_Lock, Int_Unlock): New function, thin binding to kernel routines
3880	which are not callable from a RTP.
3881
3882	* s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
3883	implemented for the multi-tasks mode on VxWorks 5 and 6.
3884
3885	* s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
3886
3887	* s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
3888	functions.
3889
38902007-08-14  Vincent Celier  <celier@adacore.com>
3891
3892	* clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
3893	gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
3894	mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
3895	mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
3896	mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
3897	mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
3898	mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
3899	procedure.
3900	(Major_Id_Name): New function.
3901	mlib-tgt.ads/mlib.tgt.adb:
3902	(Library_Major_Minor_Id_Supported): New function, default returns True
3903	Most mlib-tgt-*.adb that support shared libraries and symbolic links:
3904	(Build_Dynamic_Library): Add support for major/minor ids for shared libs
3905	Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
3906	Implementation of Library_Major_Minor_Id_Supported returns False
3907	clean.adb:
3908	(Clean_Library_Directory): If major/minor ids are supported, clean all
3909	library files.
3910	Major update of the Project Manager and of the project aware tools,
3911	including gprmake, so that the same sources in the GNAT repository
3912	can be used by gprbuild.
3913
39142007-08-14  Olivier Hainque  <hainque@adacore.com>
3915
3916	* system-solaris-x86.ads (ZCX_By_Default): Switch to True.
3917	(GCC_ZCX_Support): Switch to True.
3918
3919	* s-intman-solaris.adb (Notify_Exception): Call
3920	Adjust_Context_For_Raise before raising, as expected for signal
3921	handlers in general.
3922
3923	* s-intman-posix.adb (Notify_Exception): Remove declaration of
3924	Adjust_Context_For_Raise, moved to the spec of this unit to be visible
3925	to other implementation bodies.
3926
3927	* s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
3928	be visible by multiple implementation bodies.
3929
3930	* init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
3931	only for conditions coming from hardware.
3932	[alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
3933	adjustments to signal context prior to exception raise from signal
3934	handler.
3935	(__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
3936	mode.
3937	Solaris section: (__gnat_adjust_context_for_raise): New function.
3938	Implementation of the machine context adjustments to perform prior to
3939	raise from a signal handler. Version for both sparc and x86.
3940	(HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
3941	(__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
3942	prior to raising as expected for any handler, before possible nested
3943	faults to make sure all the contexts in a chain have been adjusted by
3944	the time we propagate.
3945
39462007-08-14  Pascal Obry  <obry@adacore.com>
3947
3948	* s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
3949	(SYSTEM_INFO): New record.
3950	(SetThreadIdealProcessor): New imported routine needed for supporting
3951	task_info pragma on Windows.
3952
3953	* s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
3954	info can be applied to the current host.
3955	(Create_Task): Set the ideal processor if information is present.
3956
3957	* s-tasinf-mingw.adb, s-tasinf-mingw.ads,
3958	a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
3959
39602007-08-14  Olivier Hainque  <hainque@adacore.com>
3961
3962	* s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
3963	stack size and initial stack pointer value for a given task.
3964	(Enter_Task): Get the stack attributes of the task we are entering and
3965	let the stack checking engine know about them.
3966
3967	* s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
3968	Let the stack-checking engine know about the initial sp value and stack
3969	size associated with the current task.
3970	(Set_Stack_Info): If a stack base has been notified for the current
3971	task, honor it. Fallback to the previous less accurate method otherwise.
3972
3973	* s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
3974
39752007-08-14  Ed Schonberg  <schonberg@adacore.com>
3976
3977	* sem_ch10.adb: Create a limited view of an incomplete type, to make
3978	treatment of limited views uniform for all visible declarations in a
3979	limited_withed package.
3980	Set flag indicating that a subprogram body for a child unit has a
3981	generated spec.
3982	(Analyze_Compilation_Unit): If unit is a subprogram body that has no
3983	separate declaration, remove the unit name from visibility after
3984	compilation, so that environment is clean for subsequent compilations.
3985	(Install_Limited_Context_Clauses): Do not install a
3986	limited_private_with_clause unless the current unit is a body or a
3987	private child unit.
3988	(Analyze_Subunit, Install_Parents): Treat generic and non-generic units
3989	in the same fashion.
3990	(Install_Limited_Withed_Unit): Do not install a limited with clause if
3991	it applies to the declaration of the current package body.
3992	(Remove_Private_With_Clauses): If there is a regular with_clause for
3993	the unit, delete Private_With_Clause from context, to prevent improper
3994	hiding when processing subsequent nested packages and instantiations.
3995
39962007-08-14  Jose Ruiz  <ruiz@adacore.com>
3997
3998	* adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
3999	dir/file, device:/dir/file, and device:drive_letter:/dir/file as
4000	representing absolute path names.
4001	__gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
4002
4003	* cstreams.c (__gnat_full_name for VxWorks): Use
4004	__gnat_is_absolute_path to detect whether we need to add the current
4005	directory to normalize the path.
4006
40072007-08-14  Javier Miranda  <miranda@adacore.com>
4008
4009	* a-tags.ads,
4010	a-tags.adb (Displace): Associate a message with the raised CE
4011	exception.
4012	(To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
4013	To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
4014	To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
4015	spec.
4016	(Default_Prim_Op_Count): Removed.
4017	(IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
4018	Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
4019	Remove pragma Inline_Always.
4020
4021	* rtsfind.ads (Default_Prim_Op_Count): Removed
4022	(Max_Predef_Prims): New entity
4023	(RE_Expanded_Name): Removed
4024	(RE_HT_Link): Removed
4025	(RE_Iface_Tag): Remmoved
4026	(RE_Ifaces_Table): Removed
4027	(RE_Interfaces_Array): Removed
4028	(RE_Interface_Data_Element): Removed
4029	(RE_Nb_Ifaces): Removed
4030	(RE_RC_Offset): Removed
4031	(RE_Static_Offset_To_Top): Removed
4032
4033	* exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
4034	formal.
4035	(Build_Inherit_Predefined_Prims): Replace occurrences of Default_
4036	Prim_Op_Count by Max_Predef_Prims.
4037
40382007-08-14  Thomas Quinot  <quinot@adacore.com>
4039	    Vincent Celier  <celier@adacore.com>
4040
4041	* binde.adb (Elab_All_Links): Remove unnecessary call to
4042	Generic_Separately_Compiled (if a unit satisfies this predicate, there
4043	won't be an associated Afile).
4044	(Elab_All_Links): Fail if a referenced unit cannot be found
4045
4046	* bindgen.adb:
4047	Fix comments in bindgen regarding consistency checks done in Bcheck:
4048	the checks are made across units within a partition, not across several
4049	partitions.
4050	Fix generation of C binder file for VxWorks.
4051
4052	* lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
4053	Generic_May_Lack_ALI, more descriptive of the current use of the
4054	predicate, and update documentation.
4055
4056	* lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
4057	reorganization and documentation update for the case of predefined
4058	library generics (for which we do not reference an Afile).
4059
40602007-08-14  Robert Dewar  <dewar@adacore.com>
4061
4062	* s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
4063	s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
4064	s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
4065	s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
4066	s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
4067	s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
4068	s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
4069	s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
4070	exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
4071	s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
4072	s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
4073	a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
4074	s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
4075	g-altcon.adb: Minor reformatting
4076
4077	ada-tree.h: Delete empty line.
4078
4079	ali.ads: Minor reformatting
4080	Clarification of comments.
4081	Minor spelling correction
4082
4083	* exp_dbug.adb: Add Warnings Off to suppress new warning
4084
4085	* a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4086	formal
4087
4088	* a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
4089	value
4090
4091	* a-textio.adb (Write): Remove an unnecessary IN OUT mode from
4092
4093	* a-textio.ads: Reorder the standard input/output/error declarations
4094	for consistency.
4095
4096	* g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
4097
4098	* par-ch2.adb: Recognize RM specially in errout
4099	Change 'R'M to RM in all error messages
4100
4101	* scng.adb: Recognize RM specially in errout
4102
4103	* sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
4104	N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
4105
4106	* s-direio.adb: Add missing routine header box.
4107
4108	* sem_attr.ads: Add ??? comments
4109
4110	* sem_eval.adb: Recognize RM specially in errout
4111	Change 'R'M to RM in all error messages
4112
4113	* sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
4114
4115	* s-tasinf.ads: Fix minor comment typo.
4116
4117	* a-cihama.adb: Minor comment addition
4118
4119	* a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
4120	formal
4121
4122	* s-tasinf-tru64.ads: Fix minor comment typo.
4123
4124	* itypes.ads: Comment update.
4125
4126	* ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
4127	anymore.
4128
4129	* argv.c: Added protection against null gnat_argv and gnat_envp.
4130
4131	* bcheck.adb (Check_Consistency): Use correct markup character ({) in
4132	warning message when Tolerate_Consistency_Errors is True.
4133
4134	* cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
4135	Any_Id, as this subprogram is only applicable to *type* entities (it
4136	sets RM_Size). Instead initialize just Esize and Alignment.
4137
41382007-08-14  Bob Duff  <duff@adacore.com>
4139
4140	* a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
4141	a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
4142	a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
4143	a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
4144	a-coorse.ads (Next): Applied pragma Inline.
4145	Make all Containers packages Remote_Types (unless they are already
4146	Pure).
4147	(Previous): applied pragma Inline
4148	(Elements_Type): is now a record instead of an array
4149
41502007-08-14  Thomas Quinot  <quinot@adacore.com>
4151
4152	* table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
4153	of Set_Item.
4154	(Set_Item): When the new item is an element of the currently allocated
4155	table passed by reference, save a copy on the stack if we're going
4156	to reallocate. Also, in Table.Set_Item, make sure we test the proper
4157	variable to determine whether to call Set_Last.
4158
4159	* sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
4160	symbols-vms.adb, symbols-processing-vms-alpha.adb,
4161	symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
4162	some occurrences of the pattern
4163	   T.Increment_Last;
4164	   T.Table (T.Last) := Value;
4165	with a cleaner call to
4166	   T.Append (Value);
4167
41682007-08-14  Ed Schonberg  <schonberg@adacore.com>
4169	    Gary Dismukes  <dismukes@adacore.com>
4170	    Thomas Quinot  <quinot@adacore.com>
4171
4172	* sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
4173	derived type with interface progenitors use the analyzed formal as the
4174	parent of the actual, to create renamings for all the inherited
4175	operations in Derive_Subprograms.
4176	(Collect_Previous_Instances): new procedure within of
4177	Load_Parent_Of_Generic, to instantiate all bodies in the compilation
4178	unit being loaded, to ensure that the generation of global symbols is
4179	consistent in different compilation modes.
4180	(Is_Tagged_Ancestor): New function testing the ancestor relation that
4181	takes progenitor types into account.
4182	(Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
4183	traversing over the primitives of the formal and actual types to locate
4184	any abstract subprograms of the actual type that correspond to a
4185	nonabstract subprogram of the formal type's ancestor type(s), and issue
4186	an error if such is found.
4187	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
4188	Instantiate_Package_Body, Instantiate_Subprogram_Body):
4189	Remove bogus guard around calls to Inherit_Context.
4190	(Reset_Entity): If the entity is the selector of a selected component
4191	that denotes a named number, propagate constant-folding to the generic
4192	template only if the named number is global to the generic unit.
4193	(Set_Instance_Env): Only reset the compilation switches when compiling
4194	a predefined or internal unit.
4195
41962007-08-14  Ed Schonberg  <schonberg@adacore.com>
4197
4198	* sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
4199	parameter to determine whether operation applies to the prefix.
4200	(Complete_Object_Operation): If actual has an access type and
4201	controlling formal is not an in_parameter, reject the actual if it is
4202	an access_to_constant type.
4203	(Try_Primitive_Operation): If the type of the prefix is a formal tagged
4204	type, the candidate operations are found in the scope of declaration of
4205	the type, because the type has no primitive subprograms.
4206	(Analyze_Selected_Component): If prefix is class-wide, and root type is
4207	a private extension, only examine visible components before trying to
4208	analyze as a prefixed call.
4209	Change Entity_List to Type_To_Use, for better readability.
4210	(Has_Fixed_Op): Use base type when checking whether the type of an
4211	operator has a user-defined multiplication/division
4212	(Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
4213	user-defined operators are available for fixed-point types.
4214
42152007-08-14  Thomas Quinot  <quinot@adacore.com>
4216	    Ed Schonberg  <schonberg@adacore.com>
4217
4218	* sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
4219	formal At_Any_Place indicating, when True, that we want to test for
4220	availability of the stream attribute at any place (as opposed to the
4221	current visibility context only).
4222	(Missing_Read_Write_Attributes): A stream attribute is missing for the
4223	purpose of enforcing E.2.2(8) only if it is not available at any place.
4224	Take into account the Ada2005 pragma Has_Preelaborable_Initialization
4225	when checking the legality of an extension aggregate in a preelaborable
4226	package. Treat the literal null as a valid default expression in a
4227	component declaration for a type with preelaborable initialization.
4228	A limited interface is a legal progenitor for the designated type of a
4229	remote access to class-wide type.
4230
42312007-08-14  Thomas Quinot  <quinot@adacore.com>
4232	    Ed Schonberg  <schonberg@adacore.com>
4233
4234	* sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
4235	reference): Use correct entity as denoted entity for the selector of
4236	the rewritten node.
4237	(Find_Direct_Name): Add comment about Generate_Reference incorrectly
4238	setting the Referenced_As_LHS flag for entities that are implicitly
4239	dereferenced.
4240	(Find_Type): If the type is an internally generated incomplete type,
4241	mark the full view as referenced, to prevent spurious warnings.
4242	(Find_Selected_Component, Has_Components): Handle properly non-limited
4243	views that are themselves incomplete types.
4244	Handle interfaces visible through limited-with clauses.
4245	(Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
4246	subprogram generic actual for which we have generated a renaming.
4247	Warn when the renaming introduces a homonym of
4248	the renamed entity, and the renamed entity is directly visible.
4249
42502007-08-14  Ed Schonberg  <schonberg@adacore.com>
4251	    Hristian Kirtchev  <kirtchev@adacore.com>
4252
4253	* sem_res.adb (Resolve_Allocator): Propagate any coextensions that
4254	appear in the subtree to the current allocator if it is not a static
4255	coextension.
4256	(Resolve_Allocator): Perform cleanup if resolution has determined that
4257	the allocator is not a coextension.
4258	(Resolve): Skip an interpretation hidden by an abstract operator only
4259	when the type of the interpretation matches that of the context.
4260	(Resolve): When looping through all possible interpretations of a node,
4261	do not consider those that are hidden by abstract operators.
4262	(Resolve_Actuals): When verifying that an access to class-wide object
4263	is an actual  for a controlling formal, ignore anonymous access to
4264	subprograms whose return type is an access to class_wide type.
4265	(Resolve_Slice): If the prefix of the slice is a selected component
4266	whose type depends on discriminants, build its actual subtype before
4267	applying range checks on the bounds of the slice.
4268	(Valid_Conversion): In an instance or inlined body, compare root types,
4269	to prevent anomalies between private and public views.
4270	(Resolve): Improve error message for ambiguous fixed multiplication
4271	expressions that involve universal_fixed multiplying operations.
4272
42732007-08-14  Javier Miranda  <miranda@adacore.com>
4274	    Hristian Kirtchev  <kirtchev@adacore.com>
4275
4276	* exp_ch9.adb (Build_Protected_Entry): Propagate the original source
4277	location to allow the correct generation of errors in case of
4278	restrictions applied to the expanded code.
4279	(Expand_Entry_Barrier): Remove all generated renamings for a barrier
4280	function if the condition does not reference them.
4281	(Expand_Entry_Body_Declarations): Mark the index constant as having a
4282	valid value.
4283
42842007-08-14  Thomas Quinot  <quinot@adacore.com>
4285	    Pablo Oliveira  <oliveira@adacore.com>
4286
4287	* exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
4288	typecode parameters for a union (in a variant record), remove
4289	extraneous layer of Any wrapping for member label.
4290	(Expand_Receiving_Stubs_Bodies): For an RCI package body that has
4291	elabration statements, register the package with the name server
4292	at the beginning, not at the end, of the elaboration statements so
4293	that they can create remote access to subprogram values that designate
4294	remote subprograms from the package.
4295
42962007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4297
4298	* g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
4299	values to compute the number of seconds since the Unix Epoc in order to
4300	account for Daylight Savings Time. Perform special processing for dates
4301	that are earlier than the Unix Epoc to obtain a negative number.
4302
43032007-08-14  Emmanuel Briot  <briot@adacore.com>
4304
4305	* g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
4306	switches.
4307
43082007-08-14  Eric Botcazou  <ebotcazou@adacore.com>
4309
4310	* gnatlink.adb (Gnatlink): Pass switches to the linker even if the
4311	binder-generated file is not in Ada.
4312	Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
4313	recorded in the ALI file.
4314	Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
4315
43162007-08-14  Vincent Celier  <celier@adacore.com>
4317
4318	* gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
4319	(Output_Source): Do nothing if parameter is No_Sdep_Id
4320
4321	* make.adb (Gnatmake): Do not rebuild an archive simply because a
4322	shared library it imports has a later time stamp.
4323	(Check): Resolve the symbolic links in the path name of the object
4324	directory.
4325	Check that the ALI file is in the correct object directory
4326	Check if a file name does not correspond to the mapping of units
4327	to file names.
4328	(Display_Version): New procedure
4329	(Initialize): Process switches --version and --help
4330	Use type Path_Name_Type for path name
4331
43322007-08-14  Paul Hilfinger  <hilfinger@adacore.com>
4333
4334	* impunit.adb: Re-organize System.Random_Numbers and
4335	GNAT.Random_Numbers and add to builds.
4336
4337	* Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
4338
4339	* s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
4340
4341	* a-assert.ads, a-assert.adb: New files.
4342
43432007-08-14  Gary Dismukes  <dismukes@adacore.com>
4344
4345	* layout.adb (Layout_Type): In the case of access-to-subprogram types,
4346	if AAMP_On_Target is True, then the size of the type encompasses two
4347	addresses (a static link and a subprogram address), except in the case
4348	of library-level access types.
4349
43502007-08-14  Vincent Celier  <celier@adacore.com>
4351
4352	* output.ads, output.adb (Write_Eol): Remove trailing spaces before
4353	writing the line.
4354	(Write_Eol_Keep_Blanks): New procedure to write a line, including
4355	possible trailing spaces.
4356	(Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
4357
43582007-08-14  Javier Miranda  <miranda@adacore.com>
4359
4360	* par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
4361	null-excluding access types.
4362
43632007-08-14  Javier Miranda  <miranda@adacore.com>
4364
4365	* sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
4366	that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
4367	of private types add missing check on matching interfaces in the
4368	partial and full declarations.
4369	(Analyze_Protected_Type): Code cleanup.
4370	(Analyze_Task_Type): Code cleanup.
4371
43722007-08-14  Javier Miranda  <miranda@adacore.com>
4373
4374	* sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
4375	generated interface thunk.
4376
43772007-08-14  Ed Schonberg  <schonberg@adacore.com>
4378
4379	* s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
4380	obsolescent warning on application of 'Class to an incomplete type.
4381
4382	* s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
4383	prevent obsolescent warning on application of 'Class to an incomplete
4384	type.
4385
43862007-08-14  Pascal Obry  <obry@adacore.com>
4387
4388	* s-fileio.adb (Is_Open): Add check for usability of the underlying
4389	file stream.
4390
43912007-08-14  Cyrille Comar  <comar@adacore.com>
4392
4393	* s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
4394	since it is potentially used in cases implying double finalization of
4395	the same object.
4396
43972007-08-14  Jose Ruiz  <ruiz@adacore.com>
4398
4399	* s-tasini.adb (Get_Stack_Info): Move this function to
4400	System.Soft_Links.Tasking because it is common to the full and the
4401	restricted run times.
4402	(Init_RTS): Do not set the Get_Stack_Info soft link because it is done
4403	in SSL.Tasking.Init_Tasking_Soft_Links.
4404
4405	* s-solita.adb (Get_Stack_Info): Function moved from
4406	System.Tasking.Initialization because it is common to the full and the
4407	restricted run times.
4408	(Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
4409
44102007-08-14  Arnaud Charlet  <charlet@adacore.com>
4411
4412	* s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
4413	s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
4414	(PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
4415	parameter.
4416
4417	* s-tassta.adb (Task_Wrapper): Increased value of the small overflow
4418	guard to 12K.
4419
44202007-08-14  Gary Dismukes  <dismukes@adacore.com>
4421
4422	* s-veboop.adb (SU): New named number initialized to
4423	System.Storage_Unit.
4424	(True_Val): The initialization expression is revised to use SU (=
4425	Storage_Unit) rather than assuming 8 for the component size of an
4426	unpacked Boolean array.
4427
44282007-08-14  Tristan Gingold  <gingold@adacore.com>
4429
4430	* tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
4431
4432	* tb-ivms.c: New file.
4433
4434	* g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
4435
44362007-08-14  Geert Bosch  <bosch@adacore.com>
4437
4438	* i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
4439	s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
4440	Add required linker pragmas for automatically linking with the gnalasup
4441	linear algebra support library, and the systems math library.
4442	Rename cdot to cdotu and zdot to zdotu.
4443	Update header comment to describe purpose of package.
4444
44452007-08-14  Thomas Quinot  <quinot@adacore.com>
4446
4447	* exp_ch7.adb (Find_Final_List): For an anonymous access type that has
4448	an explicitly specified Associated_Final_Chain, use that list.
4449	(Expand_N_Package_Body): Build dispatch tables of library level tagged
4450	types.
4451	(Expand_N_Package_Declaration): Build dispatch tables of library level
4452	tagged types. Minor code cleanup.
4453
44542007-08-14  Vincent Celier  <celier@adacore.com>
4455
4456	* gnatchop.adb (Terminate_Program): Remove exception and use
4457	Types.Terminate_Program instead.
4458
4459	* osint.ads, osint.adb (Current_Exit_Status): New global variable
4460	(Find_Program_Name): Added protection against empty name.
4461	(OS_Exit_Through_Exception): New procedure
4462
4463	* s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
4464	(OS_Exit_Default): New procedure that contains the previous
4465	implementation of procedure OS_Exit.
4466	(Final_Value): Remove obsolete Interix stuff.
4467
44682007-08-14  Thomas Quinot  <quinot@adacore.com>
4469
4470	* g-socket.ads: Reorganize example code so that it also works on
4471	Windows XP.
4472
44732007-08-14  Tristan Gingold  <gingold@adacore.com>
4474
4475	* g-trasym.ads: AIX now supports symbolic backtraces.
4476
44772007-08-14  Ed Schonberg  <schonberg@adacore.com>
4478
4479	* lib-load.adb (From_Limited_With_Chain): Always scan the stack of
4480	units being loaded to detect circularities. A circularity may be
4481	present even if the current chain of pending units to load starts from
4482	a limited_with_clause.
4483
4484	* lib-load.ads: Change profile of Load_Unit to use a with_clause
4485	rather than a boolean flag, in order to detect circularities in
4486	with_clauses.
4487
4488	* par-load.adb: Use current with_clause in calls to Load_Unit, rather
4489	than propagating the From_Limited_With flag, in order to handle
4490	properly circularities involving with_clauses.
4491
44922007-08-14  Nicolas Setton  <setton@adacore.com>
4493
4494	* link.c (FreeBSD): Add "const" keyword where needed, to eliminate
4495	warnings.
4496
44972007-08-14  Arnaud Charlet  <charlet@adacore.com>
4498
4499	* Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
4500	to build for libgnala.
4501	libgnat: Add rules to build libgnala.a
4502	(LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
4503	target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
4504	Add s-osinte-vxworks-kernel.adb to the target pairs of the
4505	kernel run-time lib for VxWorks 6, which would provide a different
4506	implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
4507	x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
4508	running ZCX by default.
4509	Add g-sttsne-locking to LynxOS version.
4510	Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
4511	On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
4512
4513	* system-darwin-x86.ads: New file.
4514
4515	* Make-lang.in: Delete files before copying onto them, so if they are
4516	read-only, the copy won't fail.
4517	Update dependencies
4518
45192007-08-14  Pascal Obry  <obry@adacore.com>
4520
4521	* mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
4522	naming scheme.
4523
45242007-08-14  Vincent Celier  <celier@adacore.com>
4525
4526	* mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
4527	(Gcc): Initialize Gcc_Name at the first call
4528
45292007-08-14  Ed Schonberg  <schonberg@adacore.com>
4530
4531	* sem_ch7.adb (Analyze_Package_Specification): Do not install private
4532	with_clauses of the enclosing unit when analyzing the package
4533	specification of a nested instance.
4534
45352007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4536
4537	* sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
4538	(Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
4539	Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
4540	layout of N_Allocator.
4541
45422007-08-14  Thomas Quinot  <quinot@adacore.com>
4543
4544	* rtsfind.adb (Check_RPC): Add PCS version check.
4545
4546	* gnatvsn.ads, gnatvsn.adb: Add PCS version.
4547	(Gnat_Free_Software): New function.
4548
4549	* sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
4550	the PCS_Version value from s-parint, used to check that it is consistent
4551	with what exp_dist expects.
4552
4553	* s-parint.ads (PCS_Version): New entity for checking consistency
4554	between exp_dist and PCS.
4555
4556	* gen-soccon.c: (SO_REUSEPORT): New constant.
4557
45582007-08-14  Hristian Kirtchev  <kirtchev@adacore.com>
4559
4560	* a-calfor.adb (Image (Duration; Boolean)): Change type of local
4561	variable Sub_Second to Duration in order to accomodate a larger range
4562	of arithmetic operations.
4563
45642007-08-14  Bob Duff  <duff@adacore.com>
4565
4566	* g-sttsne-locking.ads: Move comments from spec to body.
4567	* g-sttsne-locking.adb: Move comments from spec to body.
4568	* g-sttsne-vxworks.ads: Removed.
4569	* g-sttsne-vxworks.adb: Removed.
4570
45712007-08-11  Ian Lance Taylor  <iant@google.com>
4572
4573	* misc.c (gnat_get_alias_set): Change return type to
4574	alias_set_type.
4575
45762007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4577
4578	* decl.c, utils2.c: Fix whitespace in last change.
4579
45802007-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4581
4582	* decl.c (compare_field_bitpos): Constify.
4583	* utils2.c (compare_elmt_bitpos): Likewise.
4584
45852007-07-27  Aurelien Jarno  <aurelien@aurel32.net>
4586
4587	* s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
4588	anonymous access type.
4589	(pthread_sigmask): Now take an access sigset_t.
4590
45912007-07-05  Joel Sherrill  <joel.sherrill@oarcorp.com>
4592
4593	* s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
4594
45952007-06-21  Eric Botcazou  <ebotcazou@adacore.com>
4596
4597	PR tree-optimization/25737
4598	* misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
4599
46002007-06-15  Andrew Pinski  <andrew_pinski@playstation.sony.com>
4601
4602	* trans.c (Attribute_to_gnu): When subtracting an
4603	offset from a pointer, use POINTER_PLUS_EXPR with
4604	NEGATE_EXPR instead of MINUS_EXPR.
4605	(gnat_to_gnu): Likewise.
4606	* utils.c (convert): When converting between
4607	thin pointers, use POINTER_PLUS_EXPR and sizetype
4608	for the offset.
4609	* utils2.c (known_alignment): POINTER_PLUS_EXPR
4610	have the same semantics as PLUS_EXPR for alignment.
4611	(build_binary_op): Add support for the semantics of
4612	POINTER_PLUS_EXPR's operands.
4613	When adding an offset to a pointer, use POINTER_PLUS_EXPR.
4614
46152007-06-11  Rafael Ávila de Espíndola  <espindola@google.com>
4616
4617	* trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
4618	of get_signed_or_unsigned_type.
4619	* misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
4620
46212007-06-11  Bob Duff  <duff@adacore.com>
4622	    Thomas Quinot  <quinot@adacore.com>
4623
4624	* g-stsifd-sockets.adb (Create): Work around strange behavior of
4625	'bind' on windows that causes 'connect' to fail intermittently, by
4626	retrying the 'bind'.
4627	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4628
46292007-06-10  Duncan Sands  <baldrick@free.fr>
4630
4631	* decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
4632	than to void, for the fields when making a new fat pointer type.
4633	(gnat_substitute_in_type): Now substitute_in_type.
4634	* gigi.h (gnat_substitute_in_type): Likewise.  Adjust recursive calls.
4635	* trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
4636	* utils.c (update_pointer_to): Update fat pointers by updating the
4637	dummy node pointers used for the fields.
4638
46392007-06-06  Thomas Quinot  <quinot@adacore.com>
4640	    Bob Duff  <duff@adacore.com>
4641
4642	* g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
4643	g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
4644	g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads:  Add new
4645	constant Thread_Blocking_IO, always True by default, set False
4646	on a per-runtime basis.
4647	(Need_Netdb_Buffer): New constant.
4648
4649	* g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
4650	g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
4651	files.
4652
4653	* g-socthi-vxworks.ads, g-socthi-vxworks.adb,
4654	g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
4655	Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
4656	child package Task_Safe_NetDB
4657	(Host_Error_Messages): Add stub body.
4658	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4659
4660	* g-soccon-mingw.ads: Add Windows-specific constants.
4661	(Need_Netdb_Buffer): New constant.
4662	(GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
4663	wrapper and import inet_addr(3) from the standard sockets library
4664	directly instead.
4665	(In_Addr): Add alignment clause.
4666	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4667
46682007-06-06  Robert Dewar  <dewar@adacore.com>
4669
4670	* a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
4671	s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
4672	s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
4673	s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
4674	s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
4675	s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
4676	a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
4677	a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
4678	a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
4679	g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
4680	g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
4681	i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
4682	s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
4683	s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
4684	s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
4685	s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
4686	s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
4687	s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
4688 	s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
4689	s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
4690	s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
4691	s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
4692	s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
4693	s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
4694	s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
4695	s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
4696	s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
4697	s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
4698	s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
4699	s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
4700	s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
4701	a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
4702	Unchecked_* by Ada.Unchecked_*
4703
47042007-06-06  Robert Dewar  <dewar@adacore.com>
4705
4706	* g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
4707	s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
4708	g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
4709	output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
4710	g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
4711	a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
4712
4713	* s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
4714	s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
4715	s-tasloc.adb, s-tasloc.ads: New files.
4716
47172007-06-06  Bob Duff  <duff@adacore.com>
4718
4719	* g-expect-vms.adb:
4720	(Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
4721	* g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
4722	(Send_Signal, Close): Raise Invalid_Process if the process id is
4723	invalid.
4724	(Pattern_Matcher_Access): Is now a general access type to be able to
4725	use aliased string.
4726
47272007-06-06  Thomas Quinot  <quinot@adacore.com>
4728	    Arnaud Charlet  <charlet@adacore.com>
4729
4730	* a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
4731	(SIGEMT is now used instead of SIGTERM on AIX).
4732
4733	* s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
4734	(Time_Slice_Supported): Set to True.
4735	Use SIGEMT instead of SIGTERM as SIGADAABORT.
4736
47372007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
4738
4739	* a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
4740	(Time, Time)): Use To_Relative_Time rather than manual calculation to
4741	express the bounds of Duration as Time. Raise Time_Error when the
4742	result is greater or equal to the higher bound of Duration (on the
4743	margin case).
4744	("+" (Time, Duration)): Reorder code. Remove the declaration of constant
4745	Ada_High_And_Leaps.
4746	("-" (Time, Duration)): Reorder code. Remove the declaration of constant
4747	Ada_High_And_Leaps.
4748	("-" (Time, Time)): Reorder code.
4749	(All_Leap_Seconds): Removed.
4750	(Arithmetic_Operations.Add): Remove sign related kludge.
4751	(Arithmetic_Operations.Difference): Control the leaps seconds processing
4752	with flag Leap_Support.
4753	(Arithmetic_Operations.Subtract): Remove sign related kludge.
4754	(Check_Within_Time_Bounds): New procedure.
4755	(Clock): Control the leap seconds processing with flag Leap_Support.
4756	(Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
4757	(Formatting_Operations.Split): Control the leap seconds processing with
4758	flag Leap_Support.
4759	(Formatting_Operations.Time_Of): Control the leaps seconds processing
4760	with flag Leap_Support. Adjust the year, month and day (if applicable)
4761	when the value of day seconds designates a new day.
4762	(Split): Use parameter associations for better readability. Integrate
4763	flag Is_Ada_05.
4764	(Time_Of): Use parameter associations for better readability. Integrate
4765	flag Is_Ada_05.
4766
4767	* a-calfor.adb (Split): Use parameter associations for better
4768	readability. Integrate flag Is_Ada_05.
4769	(Time_Of): Remove flag Leap_Checks. Use parameter associations for
4770	better readability. Integrate flag Is_Ada_05.
4771
47722007-06-06  Arnaud Charlet  <charlet@adacore.com>
4773
4774	* s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
4775	s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
4776	s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
4777	s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
4778	s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
4779	s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
4780	s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
4781	s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
4782	s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
4783	s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
4784	s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
4785	time when entering this routine to detect a backward clock setting
4786	(manual setting or DST adjustment), to avoid waiting for a longer delay
4787	than needed.
4788	(Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
4789	Remove handling of deferred priority change, and replace by setting the
4790	task priority directly, as required by AI-188.
4791	Update comments.
4792	(Max_Task_Image_Length): New constant.
4793	Replace Warnings (Off) by Unreferenced pragma, cleaner.
4794	(Dynamic_Priority_Support): Removed, no longer needed.
4795	(Poll_Base_Priority_Change): Ditto.
4796	(Set_Ceiling): Add this procedure to change the ceiling priority
4797	associated to a lock. This is a dummy implementation because dynamic
4798	priority ceilings are not supported by the underlying system.
4799
4800	* a-dynpri.adb (Set_Priority): Take into account case where Target is
4801	accepting a RV with its priority boosted.
4802	Remove handling of deferred priority change, and replace by setting the
4803	task priority directly, as required by AI-188.
4804
4805	* s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
4806	Succeeded = True.
4807	Remove handling of deferred priority change, and replace by setting the
4808	task priority directly, as required by AI-188.
4809	(Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
4810	of Self_Id earlier.
4811
4812	* s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
4813	(Poll_Base_Priority_Change): Removed.
4814	Code clean up: use SSL.Current_Target_Exception.
4815
4816	* s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
4817	to run as this is a potentially dispatching point.
4818	(Call_Synchronous): Use Local_Defer_Abort.
4819	(Callable): Relax assertion.
4820	(Selective_Wait): Relax assertion in case abort is not allowed.
4821	Remove handling of deferred priority change, and replace by setting the
4822	task priority directly, as required by AI-188.
4823
4824	* s-tasuti.adb (Make_Passive): Adjust assertions.
4825	Remove handling of deferred priority change, and replace by setting the
4826	task priority directly, as required by AI-188.
4827
48282007-06-06  Arnaud Charlet  <charlet@adacore.com>
4829
4830	* system-vxworks-sparcv9.ads, system-solaris-x86.ads,
4831	system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
4832	system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
4833	system-vxworks-mips.ads, system-vxworks-alpha.ads,
4834	system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
4835	system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
4836	system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
4837	system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
4838	system-solaris-sparcv9.ads, system-vms.ads, system.ads,
4839	system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
4840	system-linux-ia64.ads: Document mapping between Ada and OS priorities.
4841	This patch changes the largest non-binary modulus from 2**31-1 to
4842	2**32-1.
4843	(Compiler_System_Version): Removed, no longer used.
4844	Clean up system files by removing flags only used on a single target.
4845	Also remove obsolete flags, only used during bootstrap from system.ads
4846	(Address): Add a pragma Preelaborable_Initialization.
4847
4848	* system-aix.ads:  Ditto.
4849	(GCC_ZCX_Support): Set to true.
4850	Update priority range on AIX and map Ada priorities to target
4851	priorities appropriately for different scheduling policies.
4852
4853	* ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
4854
48552007-06-06  Vincent Celier  <celier@adacore.com>
4856
4857	* mlib-tgt-specific.adb, mlib-tgt-specific.ads,
4858	mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
4859
4860	* mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
4861	mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
4862	mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
4863	mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
4864	mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
4865	MLib.Tgt, containing the default versions of the exported subprograms.
4866	For each platform, create a specific version of the body of new child
4867	package MLib.Tgt.Specific that contains only the body of subprograms
4868	that are different from the default.
4869	(Archive_Builder_Append_Options): New function.
4870
48712007-06-06  Matthew Gingell  <gingell@adacore.com>
4872
4873	* s-osinte-aix.adb: Map Ada priorities to target priorities
4874	appropriately for different scheduling policies.
4875
48762007-06-06  Arnaud Charlet  <charlet@adacore.com>
4877
4878	* s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
4879	its C counterpart.
4880	Remove references to Unchecked_Conversion, and use Ada.xxx instead.
4881	Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
4882
48832007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
4884
4885	* s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
4886	Noop on VMS, added for interface commonality.
4887
48882007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
4889	    Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4890	    Olivier Hainque  <hainque@adacore.com>
4891
4892	* decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
4893	renamed expression of a full renaming at toplevel.
4894	(gnat_to_gnu_entity, case object): If not defining, do not look inside
4895	the values the constant is initialized to if it is an N_Allocator.
4896	(gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
4897	TYPE_SIZE_UNIT of inner types after the stride is elaborated.
4898	(make_aligning_type): Accept an extra ROOM argument for storage to be
4899	made available before the aligned field, and an extra BASE_ALIGN
4900	argument for callers to pass the alignment guaranteed to be honored for
4901	the whole aligning object. Avoid call to finish_record_type, which only
4902	interferes with the sizes we want to set.
4903	(gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
4904	make_aligning_type for super-aligned objects on stack.
4905	(components_to_record): Pass the adjusted size of the type when creating
4906	fields in the qualified union for the variant part.
4907	(gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
4908	(gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
4909	packed array type.
4910	(maybe_pad_type): Set TYPE_USER_ALIGN.
4911	(make_aligning_type): Likewise.
4912	ALIGN argument is unsigned int.
4913	(gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
4914	(gnat_to_gnu_param): Likewise, for parameters.
4915	(gnat_to_gnu_entity) <object>: Always instantiate the renaming object
4916	if it is constant and stems from a function call.
4917	(gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
4918	of the record is specified.  Adjust accordingly.
4919	(adjust_packed): New static function.
4920	(gnat_to_gnu_field): Use it to adjust the packedness setting.
4921	(components_to_record): Likewise.
4922	(gnat_to_gnu_entity) <object>: Do not test the renamed expression for
4923	side-effects if the object is deemed constant.
4924	(gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
4925	type instead of merely finalizing it.  Tidy.
4926	<E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
4927	<E_Access_Type>: Likewise.
4928	(defer_debug_incomplete_list): Rename to defer_finalize_list.
4929	(defer_debug_level): Delete.
4930	(gnat_to_gnu_entity) <debug_deferred>: Likewise
4931	<E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
4932	type.
4933	<E_Record_Type>: Do not explicitly defer finalizing the type.
4934	Adjust for write_record_type_debug_info renaming.
4935	<E_Subprogram_Type>: Likewise.
4936	Finalize deferred types right after deferred incomplete types are
4937	expanded.
4938	(rest_of_type_decl_compilation): New global function.
4939	(components_to_record): Rename defer_debug parameter to do_not_finalize.
4940	(components_to_record): Propagate the packedness to the fields of the
4941	qualified union type if there is a variant part.
4942	(gnat_to_gnu_entity) <E_Array_Type>: Use new function
4943	instead of inline code to adjust the XUT field offsets.
4944	(gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
4945	<E_Record_Subtype>: Do not let finish_record_type compute the sizes
4946	and write the debug info if the type derives from a discriminated one.
4947	(gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
4948	<E_Array_Subtype>: Likewise.
4949	<E_String_Literal_Subtype>: Likewise.
4950	(gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
4951	an alignment clause.
4952	(maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
4953	before giving warning.
4954	(prepend_one_attribute_to): New function, helper to prepend an attribute
4955	to an attribute list.
4956	(gnat_to_gnu_entity) <E_Procedure>: Use it.
4957	(prepend_attributes): Likewise.
4958	(gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
4959	<E_Array_Type>: Declare the padding type for the element type, if any.
4960	<E_Array_Subtype>: Likewise.
4961	(defer_limited_with): New variable.
4962	(Gigi_Equivalent_Type): New function.
4963	(gnat_to_gnu_entity): Use it at start and use result throughout.
4964	(gnat_to_gnu_entity, case E_Access_Type): Rework to use
4965	Gigi_Equivalent_Type, support Limited_With, allow two levels of
4966	indirection, precompute if unconstrained array to simplify logic, and
4967	use defer_limited_with to defer elaboration of some types from limited
4968	with.
4969	(finalize_from_with_types): New function.
4970
49712007-06-06  Gary Dismukes  <dismukes@adacore.com>
4972	    Eric Botcazou  <ebotcazou@adacore.com>
4973	    Tristan Gingold  <gingold@adacore.com>
4974	    Olivier Hainque  <hainque@adacore.com>
4975
4976	* trans.c (Identifier_to_gnu): Change test for deferred constant by
4977	adding guard that the entity is an E_Constant before testing presence
4978	of Full_view (and remove unnecessary test that entity is not a type).
4979	For a CONST_DECL used by reference, manually retrieve
4980	the DECL_INITIAL.  Do not invoke fold in the other DECL_P cases either.
4981	(struct language_function): Move from utils.c to here.
4982	(struct parm_attr): New structure.
4983	(parm_attr, parm_attr vector, parm_attr GC vector): New types.
4984	(f_parm_attr_cache): New macro.
4985	(Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
4986	expressions for the 'First, 'Last and 'Length attributes of the
4987	unconstrained array IN parameters.
4988	(Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
4989	Allocate the information structure for the function earlier, as well
4990	as the language-specific part.
4991	If the parameter attributes cache has been populated, evaluate the
4992	cached expressions on entry.
4993	(takes_address): Add OPERAND_TYPE parameter.  Handle N_Function_Call,
4994	N_Procedure_Call_Statement and N_Indexed_Component.
4995	(Pragma_to_gnu): Translate inspection_point to an asm statement
4996	containaing a comment and a reference to the object (either its address
4997	for BLKmode or its value).
4998	(Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
4999	to go to DECL_INITIAL. Together with the size constraint relaxation
5000	in create_var_decl, enlarges the set of situations in which an
5001	identifier may be used as an initializer without implying elaboration
5002	code.
5003	(Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
5004	DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
5005	node.
5006	(maybe_stabilize_reference): Remove lvalues_only parameter.
5007	(gnat_stabilize_reference): Adjust for above change.
5008	(gnat_to_gnu): Do not set location information on the result
5009	if it is a reference.
5010	(add_cleanup): Add gnat_node parameter and set the location of the
5011	cleanup to it.
5012	(Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
5013	(Exception_Handler_to_gnu_zcx): Likewise.
5014	(gigi): Remove the cgraph node if the elaboration procedure is empty.
5015	(Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
5016	the former right after the latter.
5017	(start_stmt_group): Make global.
5018	(end_stmt_group): Likewise.
5019	(gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
5020	vars.
5021	(gnu_program_error_label_stack): Likewise.
5022	(gigi): Initialize them.
5023	(call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
5024	(gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
5025	New cases.
5026	(push_exception_label_stack): New function.
5027	(takes_address): New function.
5028
5029	* utils.c (struct language_function): Move to trans.c from here.
5030	(unchecked_convert): Do not wrap up integer constants in
5031	VIEW_CONVERT_EXPRs.
5032	(create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
5033	the latter for aggregate types, unexpected by later passes, and relax an
5034	arbitrary size constraint on the former.
5035	(create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
5036	to compare the sizes.
5037	(convert_vms_descriptor): When converting to a fat pointer type, be
5038	prepared for a S descriptor at runtime in spite of a SB specification.
5039	(shift_unc_components_for_thin_pointers): New function.
5040	(write_record_type_debug_info): For variable-sized fields, cap the
5041	alignment of the pointer to the computed alignment.
5042	(finish_record_type): Change HAS_REP parameter into REP_LEVEL.
5043	If REP_LEVEL is 2, do not compute the sizes.
5044	(build_vms_descriptor): Adjust for new prototype of finish_record_type.
5045	(build_unc_object_type): Likewise.
5046	(declare_debug_type): New function.
5047
5048	* ada-tree.def: USE_STMT: removed (not emitted anymore).
5049
5050	* misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
5051	no statement is expandable anymore.
5052	(gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
5053	(gnat_handle_option): Only allow flag_eliminate_debug_types to be set
5054	when the user requested it explicitely.
5055	(gnat_post_options): By default, set flag_eliminate_unused_debug_types
5056	to 0 for Ada.
5057	(get_alias_set): Return alias set 0 for a type if
5058	TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
5059
5060	* ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
5061	(DECL_FUNCTION_STUB): New accessor macro.
5062	(SET_DECL_FUNCTION_STUB): New setter macro.
5063
5064	* lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
5065
5066	* fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
5067	declarations.
5068
50692007-06-06  Jose Ruiz  <ruiz@adacore.com>
5070
5071	* s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
5072	Rename to Abort_Task_Interrupt to be able to keep the same interface
5073	as the rest of the targets.
5074
5075	* s-osinte-vxworks.ads s-osinte-vxworks.adb
5076	(To_VxWorks_Priority): Remove explicit "in" mode indicator
5077
5078	* s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
5079	New files.
5080
50812007-06-06  Robert Dewar  <dewar@adacore.com>
5082
5083	* a-chahan.ads: Remove obsolescent pragmas
5084
5085	* a-chlat1.ads: Minor reformatting
5086
50872007-06-06  Robert Dewar  <dewar@adacore.com>
5088
5089	* comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
5090	for Errout
5091
5092	* errout.adb: New Finalize/Compilation_Errors/Output_Messages
5093	implementation
5094
5095	* errout.ads (Finalize): Changed interface
5096	(Output_Messages): New procedure
5097	(Compilation_Errors): New Interface
5098
5099	* prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
5100	Finalize/Output_Messages interface for Errout
5101	(Prepare_To_Preprocess): New Finalize/Output_Messages interface for
5102	Errout.
5103
51042007-06-06  Thomas Quinot  <quinot@adacore.com>
5105	    Olivier Hainque  <hainque@adacore.com>
5106	    Robert Dewar  <dewar@adacore.com>
5107
5108	* a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
5109	check.
5110	(Raise_Current_Excep): Call Debug_Raise_Exception just before
5111	propagation starts, to let debuggers know about the event in a reliable
5112	fashion.
5113	(Local_Raise): Moved to System.Exceptions
5114	More convenient to have this as a separate unit
5115
5116	* s-except.adb, s-except.ads: New files.
5117
5118	* a-exextr.adb (Unhandled_Exception): Delete - replaced by
5119	Debug_Unhandled_Exception in System.Exceptions where it belongs
5120	together with a couple of other debug helpers.
5121	(Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
5122	the former Unhandled_Exception.
5123
5124	* exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
5125	(Warn_No_Exception_Propagation): New procedure
5126	(Warn_If_No_Propagation): Rewritten for new warning generation
5127	(Expand_Exception_Handlers): New warning generation
5128	(Expand_N_Raise_xxx_Error): Rewritten for new warnings
5129	(Add_Exception_Label): Use Special_Exception_Package_Used for test
5130	instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
5131	(Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
5132	even if restriction is set (makes life easier in Check_Returns)
5133	(Expand_Local_Exception_Handlers): Follow renamed entity chain when
5134	checking exception identities.
5135	(Expand_Local_Exception_Handlers): Do not optimize when all others case
5136	(Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
5137	block for handler (used by Check_Returns)
5138	(Expand_Local_Exception_Handlers): Local_Raise now takes an address
5139	(Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
5140	remove all exception handlers when optimizing local raise statements.
5141	(Find_Local_Handler): Use Get_Renamed_Entity
5142	(Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
5143	marked analyzed after expanding exception handlers, do not generate
5144	redundant cleanup actions, because they have been constructed already.
5145
51462007-06-06  Thomas Quinot  <quinot@adacore.com>
5147
5148	* a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
5149	presence of this categorization pragma is mandated by the language.
5150	(Limited_Controlled): Add missing pragma Preelaborable_Initialization
5151	for this type.
5152
51532007-06-06  Vincent Celier  <celier@adacore.com>
5154	    Robert Dewar  <dewar@adacore.com>
5155
5156	* bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
5157	butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
5158	err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
5159	fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
5160	lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
5161	makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
5162	par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
5163	prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
5164	prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
5165	sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
5166	uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
5167	ali.ads, ali.adb:
5168	Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
5169	package Namet. Make File_Name_Type and Unit_Name_Type types derived from
5170	Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
5171	Use variables of types File_Name_Type and Unit_Name_Type in error
5172	messages.
5173	(Get_Name): Add parameter Ignore_Special, and set it reading file name
5174	(New_Copy): When debugging the compiler, call New_Node_Debugging_Output
5175	here.
5176	Define flags Flag217-Flag230 with associated subprograms
5177	(Flag_Word5): New record type.
5178	(Flag_Word5_Ptr): New access type.
5179	(To_Flag_Word5): New unchecked conversion.
5180	(To_Flag_Word5_Ptr): Likewise.
5181	(Flag216): New function.
5182	(Set_Flag216): New procedure.
5183
51842007-06-06  Arnaud Charlet  <charlet@adacore.com>
5185
5186	* a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
5187	instead of 'Size.
5188
5189	* a-stwifi.ads, a-stzfix.ads: Minor reformatting
5190
51912007-06-06  Javier Miranda  <miranda@adacore.com>
5192
5193	* a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
5194	the package.
5195	(Object_Specific_Data_Array): This is now internal to the package.
5196	(Object_Specific_Data): This is now internal to the package.
5197	(Select_Specific_Data_Element): This is now internal to the package.
5198	(Select_Specific_Data_Array): This is now internal to the package.
5199	(Select_Specific_Data): This is now internal to the package.
5200	(Offset_To_Top_Function_Ptr): This is now public.
5201	(To_Offset_To_Top_Function_Ptr): Removed.
5202	(Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
5203	 local to subprogram Offset_To_Top.
5204	(Predefined_DT): Removed.
5205	(Typeinfo_Ptr): Removed.
5206	(OSD): This function is now internal to this package.
5207	(SSD): This function is now internal to this package.
5208	(DT): New function that displaces the pointer to the table of primitives
5209	 to get access to the enclosing wrapper record.
5210	(IW_Membership): Code cleanup.
5211	(Offset_To_Top): Code cleanup.
5212	(Predefined_DT): Removed.
5213	(Register_Interface_Tag): Removed.
5214	(Set_Interface_Table): Removed.
5215	(Set_Offset_Index): Removed.
5216	(Set_Offset_To_Top): Code cleanup.
5217	(Set_OSD): Removed.
5218	(Set_Signature): Removed.
5219	(Set_SSD): Removed.
5220	(Set_Tagged_Kind): Removed.
5221	(Typeinfo_Ptr): Removed.
5222	(TSD): Removed.
5223	(Displace): Add missing check on null actual.
5224
5225	* exp_disp.ads, exp_disp.adb
5226	(Select_Expansion_Utilities): Removed.
5227	(Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
5228	(Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
5229	the interface requires a new parameter.
5230	(Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
5231	Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
5232	calls to subprograms Build_T, Build_S, etc. by the corresponding code.
5233	Done to remove package Select_Expansion_Utilities.
5234	(Make_DT): New implementation for statically allocated dispatch tables.
5235	(Make_Secondary_DT): Moved to the scope of Make_DT.
5236	(Register_Primitive): Code cleanup plus incoporate the use of the new
5237	function DT_Address_Attribute.
5238	(Expand_Interface_Thunk): The profile of this subprogram has been
5239	changed to return the Thunk_Id and the corresponding code.
5240	(Fill_DT_Entry): Removed. Its functionality is now provided by
5241	subprogram Register_Primitive.
5242	(Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
5243	subprogram Register_Primitive.
5244	(Register_Primitive): New subprogram that incorporates the previous
5245	functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
5246	(Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
5247	was only required to call Make_DT_Access_Action, which is now removed.
5248	(Ada_Actions): Removed
5249	(Action_Is_Proc): Removed
5250	(Action_Nb_Arg): Removed
5251	Replace all the calls to Make_DT_Access_Action by direct calls to
5252	Make_Procedure_Call_Statement or Make_Function_Call.
5253	(Set_DTC_Entity_Value): New subprogram.
5254	(Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
5255	(Expand_Interface_Thunk): Add missing support for primitives that are
5256	functions with a controlling result (case in which there is no need
5257	to generate the thunk).
5258
5259	* exp_atag.ads, exp_atag.adb
5260	(Build_DT): New subprogram that displaces the pointer to reference the
5261	base of the wrapper record.
5262	(Build_Typeinfo_Offset): Removed.
5263	(RTE_Tag_Node): Removed.
5264	(Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
5265	(Build_Get_RC_Offset): Removed.
5266	(Build_Inherit_Predefined_Prims): Removed.
5267	(Build_Inherit_TSD: Removed.
5268	(Build_New_TSD): Removed.
5269	(Build_Set_External_Tag): Removed.
5270	(Build_Set_Predefined_Prim_Op_Address): Add documentation.
5271	(Build_Set_Prim_Op_Address): Add documentation.
5272	(Build_Set_TSD): Removed.
5273
5274	* rtsfind.ads, rtsfind.adb
5275	(Load_Fail): If load fails and we are not in configurable run-time
5276	mode, then raise Unrecoverable_Error.
5277	(Text_IO_Kludge): Generate an error message if a run-time library is
5278	not available in a given run-time (ie. zfp run-time).
5279	(RTE_Record_Component): Add code to check that the component we search
5280	for is not found in two records in the given run-time package.
5281	(RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
5282	(RE_DT_Predef_Prims_Offset): New entity
5283	(RE_Static_Offset_To_Top): New entity
5284	(RE_HT_Link): New entity.
5285	(System_Address_Image): Addition of this run-time package.
5286	(RE_Address_Image): New entity.
5287	(RE_Abstract_Interface): Removed.
5288	(RE_Default_Prim_Op_Count): Removed.
5289	(RE_DT_Entry_Size): Removed.
5290	(RE_DT_Min_Prologue_Size): Removed.
5291	(RE_DT_Prologue_Size): Removed.
5292	(RE_Ifaces_Table_Ptr): Removed.
5293	(RE_Interface_Data_Ptr): Removed.
5294	(RE_Type_Specific_Data): Removed.
5295	(RE_Primary_DT): Removed.
5296	(RE_Register_Interface_Tag): Removed.
5297	(RE_Set_Offset_Index): Removed.
5298	(RE_Set_OSD): Removed.
5299	(RE_Set_SSD): Removed.
5300	(RE_Set_Signature): Removed.
5301	(RE_Set_Tagged_Kind): Removed.
5302	(RE_Address_Array): New entity.
5303	(RE_DT): New entity.
5304	(RE_Iface_Tag): New entity.
5305	(RE_Interfaces_Table): New entity.
5306	(RE_No_Dispatch_Table): New entity.
5307	(RE_NDT_Prims_Ptr): New entity.
5308	(RE_NDT_TSD): New entity.
5309	(RE_Num_Prims): New entity.
5310	(RE_Offset_To_Top_Function_Ptr): New entity.
5311	(RE_OSD_Table): New entity.
5312	(RE_OSD_Num_Prims): New entity.
5313	(RE_Predef_Prims): New entity
5314	(RE_Predef_Prims_Table_Ptr): New entity.
5315	(RE_Primary_DT): New entity.
5316	(RE_Signature): New entity.
5317	(RE_SSD): New entity.
5318	(RE_TSD): New entity.
5319	(RE_Type_Specific_Data): New entity.
5320	(RE_Tag_Kind): New entity.
5321
53222007-06-06  Thomas Quinot  <quinot@adacore.com>
5323
5324	* a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
5325	C imported variable.
5326	(Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
5327	on entry.
5328
53292007-06-06  Robert Dewar  <dewar@adacore.com>
5330
5331	* a-tienio.adb (Get): Adjust buffer size to accomodate one extra
5332	character
5333
53342007-06-06  Vincent Celier  <celier@adacore.com>
5335
5336	* a-tifiio.adb (Put, internal): For negative numbers, check that there
5337	is room for at least one digit and the minus sign.
5338	(Put.Put_Character): Never put a character outside of the range of
5339	string To.
5340
53412007-06-06  Olivier Hainque  <hainque@adacore.com>
5342	    Eric Botcazou  <ebotcazou@adacore.com>
5343
5344	* utils2.c (build_allocator): Provide the extra arguments to
5345	make_aligning_type for super-aligned objects allocated from the default
5346	pool. Leave enough room for a pointer before the aligning field, and
5347	store the system's allocator return value there.
5348	(build_call_alloc_dealloc): When releasing a super-aligned object,
5349	retrieve the system's allocator return value from where build_allocator
5350	has stored it, just ahead of the adjusted address we are passed.
5351	(build_call_raise): Handle properly the generation of line numbers when
5352	the node is marked No_Location.
5353	(compare_elmt_bitpos): Use tree_int_cst_compare.  Stabilize the sort
5354	by using DECL_UID on ties.
5355	(build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
5356	main variant.
5357	(build_call_raise): Handle converting exception into goto; support new
5358	argument KIND.
5359	(build_component_ref): Add new arg to build_call_raise.
5360
53612007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5362
5363	* a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
5364	"." in the case of nnn.xxx when nnn terminates with an underscore.
5365	Parse the remaining "#" or ":" in the case of nnn#.xxx#
5366
53672007-06-06  Robert Dewar  <dewar@adacore.com>
5368
5369	* a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
5370
53712007-06-06  Arnaud Charlet  <charlet@adacore.com>
5372	    Vincent Celier  <celier@adacore.com>
5373	    Robert Dewar  <dewar@adacore.com>
5374
5375	* bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
5376	needed.
5377	(Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
5378	((destructor)) for adafinal, even when switch -a is used.
5379	Do not issue pragma Linker_Destructor for adafinal when switch -a is
5380	used.
5381	(Gen_Object_Files_Options): Add formatting of Linker Options, when
5382	Output_Linker_Option_List is set. Suppress this formatting when
5383	Zero_Formatting is set.
5384	Add case for CLI_Target.
5385	(System_Restrictions_Used): New flag, used to avoid generating with of
5386	System_Restrictions and initialization of the data unless there is
5387	some use of System.Restrictions in the partition.
5388	(Check_System_Restrictions_Used): New procedure
5389
5390	* s-stalib.adb: Remove with of System.Restrictions. No longer needed
5391	since we only with this unit in the binder file if it is used elsewhere
5392	in the partition.
5393
53942007-06-06  Vincent Celier  <celier@adacore.com>
5395
5396	* bindusg.adb: Add line for @<response file>
5397	Add lines for new switches -R and -Z
5398
5399	* gnatbind.adb (Gnatbind): Do not include sources from the GNAT
5400	hierarchy in the list of files of the closure when -R is used
5401	(Gnatbind): Accept arguments starting with '@' to indicate response
5402	files and take the arguments from the response files.
5403	If List_Closure is set, display the referenced files
5404
54052007-06-06  Javier Miranda  <miranda@adacore.com>
5406	    Robert Dewar  <dewar@adacore.com>
5407	    Ed Schonberg  <schonberg@adacore.com>
5408
5409	* checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
5410	which the address-clause is applied to in-mode actuals (allowed by
5411	13.1(22)).
5412	(Apply_Discriminant_Check): Do not generate a check if the type is
5413	constrained by a current instance.
5414	(Activate_Division_Check): New procedure
5415	(Activate_Overflow_Check): New procedure
5416	(Activate_Range_Check): New procedure
5417	Call these new Activate procedures instead of setting flags directly
5418	(Apply_Array_Size_Check): Removed, no longer needed.
5419	Code clean up: remove obsolete code related to GCC 2.
5420	(Get_E_Length): Protect against bomb in case scope is standard
5421	(Selected_Range_Checks): If the node to be checked is a conversion to
5422	an unconstrained array type, and the expression is a slice, use the
5423	bounds of the slice to construct the required constraint checks.
5424	Improve NOT NULL error messages
5425	(Apply_Constraint_Check): If the context is a null-excluding access
5426	type, diagnose properly the literal null.
5427
54282007-06-06  Pascal Obry  <obry@adacore.com>
5429
5430	* clean.adb (Clean_Archive): Use untouched casing for the archive name
5431	and the corresponding .deps file.
5432	(Clean_Interface_Copy_Directory): Use untouched casing for the library
5433	src directory. Minor code-clean-up. Use untouched casing for files
5434	read into the library src dir.
5435	(Clean_Library_Directory): Idem.
5436	(Parse_Cmd_Line): Accept new switch -aP
5437
54382007-06-06  Javier Miranda  <miranda@adacore.com>
5439	    Ed Schonberg  <schonberg@adacore.com>
5440	    Robert Dewar  <dewar@adacore.com>
5441	    Eric Botcazou  <ebotcazou@adacore.com>
5442	    Arnaud Charlet  <charlet@adacore.com>
5443
5444	* einfo.ads, einfo.adb (Available_View): New synthesized attribute
5445	applicable to types that have the With_Type flag set. Returns the
5446	non-limited view of the type, if available, otherwise the type itself.
5447	For class-wide types, there is no direct link in the tree, so we have
5448	to retrieve the class-wide type of the non-limited view of the Etype.
5449	New attributes Static_Initialization and Static_Elaboration_Desired.
5450	Remove the pragma Thread_Body, and the associated flag
5451	Is_Thread_Body in entities, and all related code.
5452	(Suppress_Value_Tracking_On_Call): New flag
5453	E_Exception has Esize and Alignment fields
5454	(Universal_Aliasing): New function.
5455	(Set_Universal_Aliasing): New procedure.
5456	(Write_Entity_Flags): Deal with Universal_Aliasing flag.
5457	(Check_Nested_Access): New procedure.
5458	(Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5459	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5460	(Related_Interface): New attribute. Present in dispatch table pointer
5461	components of records. Set to point to the entity of the corresponding
5462	interface type.
5463	(Is_By_Reference_Type): Recurse on the full view of an incomplete type.
5464	(Original_Access_Type): Remove, not needed.
5465	(Root_Type): Handle properly subtypes of class-wide-types.
5466	Update comments.
5467
5468	* sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
5469	class-wide types visible through limited-with clauses.
5470	(Try_Primitive_Operation): When examining all primitive operations of a
5471	tagged type, do not consider subprograms labeled as hidden unless they
5472	belong to a private generic type with a tagged parent.
5473	(Try_Object_Operation): Extensive rewriting, to handle properly various
5474	overloading cases, when several ancestors may have class-wide operations
5475	that are possible candidates, and when the overloaded functions return
5476	array types and have defaulted parameters so that the call may be
5477	interpreted as an indexing.
5478	(Analyze_Allocator): Remove Mark_Allocator and its invocation.
5479	(Process_Function_Call): use Next, rather than Next_Actual, to analyze
5480	successive actuals before analyzing the call itself.
5481	(Try_Primitive_Operation): A primitive operation is compatible with the
5482	prefix if the prefix has a synchronized type and the type of the formal
5483	is its corresponding record, as can be the case when the primitive
5484	operation is declared outside of the body of the type.
5485	(Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
5486	perform homonym traversal, looking for class-wide operation matches
5487	(formerly done in statements of Try_Class_Wide_Operation). Matches on
5488	access parameters are now restricted to anonymous access types.
5489	(Mark_Allocator): An allocator with a discriminant association parent is
5490	a coextension.
5491	(Try_One_Prefix_Interpretation): If the type of the object is
5492	incomplete, as can be happen when it is a limited view obtained through
5493	a limited_with_clause, the selected component is not part of a prefixed
5494	call.
5495	(Complete_Object_Operation): Diagnose properly an object that is not
5496	aliased when the corresponding controlling formal is an access
5497	parameter.
5498	(Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
5499	ambiguous calls in prefixed notation, where two primitives differ only
5500	in that the controlling argument of one is an access parameter.
5501
5502	* sem_ch6.adb (Has_Single_Return): Add guard in code that determines
5503	whether a function that returns an unconstrained type can be inlined.
5504	(Process_Formals): Diagnose properly the illegal use of an incomplete
5505	type in the profile of an access_to_subprogram declaration.
5506	(Check_Synchronized_Overriding): Nothing check for concurrent types, the
5507	operations are attached to the corresponding record.
5508	(Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
5509	When processing a primitive of a concurrent type which implements an
5510	interface change the type of all controlling formals to that of the
5511	corresponding record type.
5512	(Check_Synchronized_Overriding): Relax the conditional logic when trying
5513	to determine the tagged type to which a primitive belongs.
5514	(Check_Conventions): Capture condition to ignore a primitive operation
5515	(which is shared between the loop in Check_Conventions and the one in
5516	Check_Convention) in a new local function Skip_Check.
5517	(Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
5518	confusion with Check_Conventions' own Prim_Op local variable.
5519	(Create_Extra_Formals): Test for a tagged result type rather than a
5520	controlling result when determining whether to add a BIP_Alloc_Form
5521	formal and a BIP_Final_List formal to the function.
5522	(Check_Conformance); For parameters that are anonymous access types,
5523	subtype conformance requires that the not null and the constant
5524	indicators must match
5525	(Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
5526	to retrieve the appropriate type when processing a concurrent type
5527	declared within a generic. Minor comment reformatting. Change invocation
5528	of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
5529	mitive.
5530	(Analyze_Subprogram_Body): If the return type of a function is an
5531	anonymous access to the limited view of a class-wide type, and the
5532	non-limited view of the type is available, update the type of the
5533	function so that code can be generated.
5534	(Process_Formals): In case of access-subtype itype whose designated
5535	type is also an itype (situation that happens now with access to
5536	subprograms) we mark the access-type itype with the Has_Delayed_Freeze
5537	attribute to avoid backend problems.
5538	(Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
5539	init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
5540	anonymous types' designated types are same before testing
5541	Subtypes_Statically_Match.
5542	(Create_Extra_Formals): Test for a named access parameter that is a
5543	controlling formal as an additional condition for adding an
5544	accessibility level formal. This can occur in the subp type created for
5545	dispatching calls in Expand_Dispatching_Call, and allows calling
5546	Create_Extra_Formals from that procedure rather than special-casing the
5547	extra formals there.
5548	(Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
5549	when the function has a controlling result.
5550	(Check_Returns): Add much more knowledge of the optimization of local
5551	raise statements to gotos, to retain proper warnings in this case.
5552	(Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
5553	nodes when looking for last statement.
5554
5555	* sem_type.ads, sem_type.adb (Specific_Type): Add support for
5556	class-wide types visible through limited with clauses.
5557	(Add_One_Interp): If the operands are anonymous access types, the
5558	predefined operator on universal_access is immediately visibles
5559	(Find_Unique_Type): Handle anonymous access to subprogram types just as
5560	other anonymous access types.
5561	(Disambiguate): Take into account CIL convention.
5562	(Interface_Present_In_Ancestor): Add support for class-wide interfaces.
5563
55642007-06-06  Robert Dewar  <dewar@adacore.com>
5565
5566	* sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
5567	sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
5568	elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
5569	Fix lower bound of tables.
5570	Add rep clauses.
5571
5572	* nlists.adb: Ditto.
5573	(Prev_Node, Next_Node): Change index type to Int so that it properly
5574	covers the range First_Node_Id - 1 up.
5575
55762007-06-06  Javier Miranda  <miranda@adacore.com>
5577	    Ed Schonberg  <schonberg@adacore.com>
5578	    Bob Duff  <duff@adacore.com>
5579	    Hristian Kirtchev  <kirtchev@adacore.com>
5580
5581	* exp_aggr.ads, exp_aggr.adb:
5582	(Build_Record_Aggr_Code): Add missing initialization of secondary tags
5583	in extension aggregates.
5584	(Flatten): Other conditions being met, an aggregate is static if the
5585	low bound given by component associations is different from the low
5586	bound of the base index type.
5587	(Packed_Array_Aggregate_Handled): If the component type is itself a
5588	packed array or record, the front-end must expand into assignments.
5589	(Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
5590	Init_Pr, instead of Ancestor_Is_Expression.
5591	(Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
5592	coextension chain root, either generate a list controller or use the
5593	already existing one.
5594	(Static_Array_Aggregate): New procedure to construct a positional
5595	aggregate that can be handled by the backend, when all bounds and
5596	components are compile-time known constants.
5597	(Expand_Record_Aggregate): Force conversion of aggregates of tagged
5598	types covering interface types into assignments.
5599	(Replace_Type): move to Build_Record_Aggr_Code.
5600	(Expand_Record_Aggr_Code): if the target of the aggregate is an
5601	interface type, convert to the definite type of the aggregate itself,
5602	so that needed components are visible.
5603	(Convert_Aggr_In_Object_Decl): If the aggregate has controlled
5604	components and the context is an extended return statement do not
5605	create a transient block for it, to prevent premature finalization
5606	before the return is executed.
5607	(Gen_Assign): Do not generate a call to deep adjust routine if the
5608	component type is itself an array of controlled (sub)-components
5609	initialized with an inner aggregate.
5610	(Component_Check): New name for Static_Check. This name is now more
5611	appropriate, and documentation is added which was missing.
5612	(Component_Check): Add test for bit aligned component value
5613	(Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
5614	Tagged_Comps, name is more appropriate given added function below.
5615	(Component_Not_OK_For_Backend): Check for bit aligned component ref.
5616
56172007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5618	    Javier Miranda  <miranda@adacore.com>
5619	    Robert Dewar  <dewar@adacore.com>
5620
5621	* exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
5622	Terminated: Add unchecked type conversion from System.Address to
5623	System.Tasking.Task_Id when calling the predefined primitive
5624	_disp_get_task_id.
5625	Disable new Ada 05 accessibility check for JVM.NET targets, which
5626	cannot be implemented in a practical way.
5627	(Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
5628	the sources always references the tag of the actual object. Therefore,
5629	if 'Tag is applied in the sources to class-wide interface objects we
5630	generate code that displaces "this" to reference the base of the object.
5631	(Expand_N_Attribute_Reference, case Size): Return specified size if
5632	known to front end.
5633	(Expand_N_Attribute_Reference): The expansion of the 'Address attribute
5634	has code that displaces the pointer of the object to manage interface
5635	types. However this code must not be executed when the prefix is a
5636	subprogram. This bug caused the wrong expansion of the internally
5637	generated assignment that fills the dispatch table when the primitive
5638	is a function returning a class-wide interface type.
5639	(Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
5640	Set_Attribute_Name for Name_Unaligned_Valid.
5641
56422007-06-06  Ed Schonberg  <schonberg@adacore.com>
5643	    Gary Dismukes  <dismukes@adacore.com>
5644
5645	* exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
5646	If the initialization is the equivalent aggregate of the initialization
5647	procedure of the type, do not remove it.
5648	(Expand_N_Attribute_Definition_Clause): Exclude access variables
5649	initialized to null from having their expression reset to empty and
5650	note this exception in the comment.
5651
56522007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
5653	    Robert Dewar  <dewar@adacore.com>
5654	    Ed Schonberg  <schonberg@adacore.com>
5655	    Gary Dismukes  <dismukes@adacore.com>
5656
5657	* exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
5658	Add "with" and "use" clauses for Sem_Attr.
5659	(Expand_Current_Value): Do not replace occurences of attribute
5660	references where the prefix must be a simple name.
5661
5662	* sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
5663	Namet. Add new arrays Attribute_Name_Modifies_Prefix and
5664	Attribute_Requires_Simple_Name_Prefix.
5665	(Name_Modifies_Prefix): Body of new function.
5666	(Requires_Simple_Name_Prefix): Body of new function.
5667	(Resolve_Attribute, case Access): Improve error message for case of
5668	mismatched conventions.
5669	(Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
5670	incomplete type.
5671	(Analyze_Attribute, case 'Access): If the type of the prefix is a
5672	constrained subtype for a nominal unconstrained type, use its base type
5673	to check for conformance with the context.
5674	(Resolve_Attribute): Remove test of the access type being associated
5675	with a return statement from condition for performing accessibility
5676	checks on access attributes, since this case is now captured by
5677	Is_Local_Anonymous_Access.
5678	(Analyze_Access_Attribute): Set Address_Taken on entity
5679	(Analyze_Attribute, case Address): Set Address_Taken on entity
5680	(OK_Self_Reference): Traverse tree to locate enclosing aggregate when
5681	validating an access attribute whose prefix is a current instance.
5682	(Resolve_Attribute): In case of attributes 'Code_Address and 'Address
5683	applied to dispatching operations, if freezing is required then we set
5684	the attribute Has_Delayed_Freeze in the prefix's entity.
5685	(Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
5686	current scope if access of local subprogram taken
5687	(Analyze_Access_Attribute): Check legality of self-reference even if the
5688	expression comes from source, as when a single component association in
5689	an aggregate has a box association.
5690	(Resolve_Attribute, case 'Access): Do not apply accessibility checks to
5691	the prefix if it is a protected operation and the attribute is
5692	Unrestricted_Access.
5693	(Resolve_Attribute, case 'Access): Set the Etype of the attribute
5694	reference to the base type of the context, to force a constraint check
5695	when the context is an access subtype with an explicit constraint.
5696	(Analyze_Attribute, case 'Class): If the prefix is an interface and the
5697	node is rewritten as an interface conversion. leave unanalyzed after
5698	resolution, to ensure that type checking against the context will take
5699	place.
5700
57012007-06-06  Ed Schonberg  <schonberg@adacore.com>
5702	    Javier Miranda  <miranda@adacore.com>
5703	    Robert Dewar  <dewar@adacore.com>
5704
5705	* exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
5706	wrapper when the full view of the controlling type of an inherited
5707	function that dispatches on result implements interfaces.
5708	(Expand_N_Object_Declaration): In cases where the type of the
5709	declaration is anonymous access, create finalization list for it.
5710	(Expand_N_Object_Declaration): Generate a persistent_bss directive only
5711	if the object has no explicit initialization, to match description of
5712	functionality of pragam Persistent_BSS.
5713	(Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
5714	new function to build static aggregates, to replace initialization call
5715	when static initialization is desired.
5716	(Freeze_Type): Generate a list controller for an access type whenever
5717	its designated type has controlled anonymous access discriminants.
5718	(Build_Equivalent_Aggregate): New procedure to compute a static
5719	aggregate to be used as default initialization for composite types,
5720	instead of a generating a call to the initialization procedure for the
5721	type.
5722	(Build_Initialization_Call): When available, replace a call to the
5723	initialization procedure with a copy of the equivalent static aggregate
5724	for the type.
5725	(Expand_N_Object_Declaration):  Use New_Occurrence_Of in generated
5726	declarations for objects of a class-wide interface type, rather than
5727	just identifiers, to prevent visibility problems.
5728	(Expand_N_Object_Declaration): When expanding the declaration for an
5729	object of a class-wide interface type, preserve the homonym chain of
5730	the original entity before exchanging it with that of the generated
5731	renaming declaration.
5732	(Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
5733	active, because there is no way to handle the exception.
5734	(Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
5735	to do a minimum decoration of the Access_Disp_Table list.
5736	(Expand_Record_Controller): Avoid the addition of the controller between
5737	the component containing the tag of a secondary dispatch table and its
5738	adjacent component that stores the offset to the base of the object.
5739	This latter component is only generated when the parent type has
5740	discriminants ---documented in Add_Interface_Tag_Components).
5741	(Apply_Array_Size_Check): Removed, no longer needed.
5742	(Expand_N_Full_Type_Declaration): If the type has anonymous access
5743	components, create a Master_Entity for it only if it contains tasks.
5744	(Build_Init_Procedure): Suppress the tag assignment compiling under
5745	no run-time mode.
5746	(Freeze_Record_Type): Remove code associated with creation of dispatch
5747	table.
5748	(Init_Secondary_Tags): Update type of actuals when generating calls to
5749	Ada.Tags.Set_Offset_To_Top
5750	(Stream_Operation_OK): Disable use of streams compiling under no
5751	run-time mode
5752	(Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
5753	if Has_Init_Expression set.
5754	(Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
5755	Register_Primitive, which provides the same functionality.
5756	(Requires_Init_Proc): Return false in case of interface types.
5757	(Add_Secondary_Tables): Use the new attribute Related_Interface to
5758	cleanup the code.
5759	(Predefined_Primitive_Freeze): Do not assume that an internal entity
5760	is always associated with a predefined primitive because the internal
5761	entities associated with interface types are not predefined primitives.
5762	Therefore, the call to Is_Internal is replaced by a call to the
5763	function Is_Predefined_Dispatching_Operation.
5764	(Make_Eq_If): When generating the list of comparisons for the
5765	components of a given variant, omit the controller component that is
5766	present if the variant has controlled components.
5767
57682007-06-06  Javier Miranda  <miranda@adacore.com>
5769	    Hristian Kirtchev  <kirtchev@adacore.com>
5770	    Bob Duff  <duff@adacore.com>
5771
5772	* exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
5773	handle the creation of finalization lists and calls for nested
5774	coextensions when the root of the chains is part of a return statement.
5775	(Inside_A_Return_Statement): New function inside Complete_Coextension_
5776	Finalization.
5777	(Expand_Record_Equality): Skip components that are interface types.
5778	(Displace_Allocator_Pointer): Add missing support for interface subtypes
5779	(Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
5780	with Rewrite_Coextension. Change the condition for detecting coextension
5781	root nodes.
5782	(Is_Local_Access_Discriminant): Removed.
5783	(Rewrite_Coextension): New routine which rewrites a static coextension
5784	as a temporary and uses its unrestricted access in the construction of
5785	the outer object.
5786	(Complete_Coextension_Finalization): New routine. Generate finalization
5787	attachment calls to all delayed coextensions.
5788	(Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
5789	the allocator is not a coextension itself and has delayed coextensions.
5790	If the current allocator is controlled, but also a coextension, delay
5791	the generation of the finalization attachment call.
5792	Rename local variable "Node" to "Nod" in order to avoid confusion with
5793	"Elists.Node".
5794	(Expand_Allocator_Expression): Call Adjust for initialized allocators of
5795	limited types that are not inherently limited. Such an allocator is
5796	illegal, but is generated by the expander for a return statement, to
5797	copy the result onto the secondary stack. This is the only case where a
5798	limited object can be copied. Generate code to displace the pointer
5799	to the object if the qualified expression is a class-wide interface
5800	object. Such displacement was missing and hence the copy of the object
5801	was wrong.
5802	(Apply_Accessibility_Check): Handle allocated objects initialized in
5803	place.
5804	(Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
5805	and Expand_Allocator_Expression. Allocating class-wide interface objects
5806	this routine displaces the pointer to the allocated object to reference
5807	the component referencing the corresponding secondary dispatch table.
5808	Expand_Allocator_Expression): Add missing support to allocate class-wide
5809	interface objects initialized with a qualified expression.
5810	(Get_Allocator_Final_List): Test for an anonymous access type that is a
5811	function result type, and use the finalization list associated with the
5812	function scope in that case (such an anonymous type should not be
5813	treated like an access parameter's type).
5814
58152007-06-06  Ed Schonberg  <schonberg@adacore.com>
5816	    Gary Dismukes  <dismukes@adacore.com>
5817	    Javier Miranda  <miranda@adacore.com>
5818
5819	* exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
5820	controlled type, use Make_Handler_For_Ctrl_Operation to construct the
5821	required exception handler.
5822	(Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
5823	properly the case of a function whose return type is a limited
5824	class-wide interface type. Modify the code of the accessibility
5825	check to handle class-wide interface objects. In this case we need to
5826	displace "this" to reference the primary dispatch table to get access
5827	to the TSD of the object (to evaluate its accessibility level).
5828	(Expand_N_Extended_Return_Statement): Test for a tagged result type
5829	rather than a controlling result as one of the conditions for
5830	generating tests of the implicit BIP_Alloc_Form formal. The
5831	initialization assignment is also handled according to whether the
5832	result is tagged instead of controlling.
5833	In the case where the init assignment is inserted in the "then" part of
5834	the allocation conditional, rewrite the target to be a dereference of
5835	the implicit BIP_Object_Access formal.
5836	If the returned value is unconstrained and created on the secondary
5837	stack, mark the enclosing block and function so that the secondary
5838	stack is not reclaimed on return.
5839	Treat returns from functions with controlling results similarly to
5840	returns from functions with unconstrained result subtypes.
5841	If the object returned is unconstrained, and an allocator must be
5842	created for it, analyze the allocator once the block for the extended
5843	return is installed, to ensure that finalizable components
5844	of the expression use the proper finalization list. Guard the call to
5845	Move_Final_List with a check that there is something to finalize.
5846	(Make_Tag_Ctrl_Assignment): Use "old" handling
5847	of controlled type assignment for virtual machines, since new code uses
5848	unsupported features (such as direct access to bytes in memory).
5849
58502007-06-06  Gary Dismukes  <dismukes@adacore.com>
5851	    Ed Schonberg  <schonberg@adacore.com>
5852
5853	* exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
5854	accessibility actual, check for the case of an aliased object that has
5855	been rewritten as an Access attribute, and assign Prev to Prev_Orig so
5856	we fall into processing for the attribute rather than the name of the
5857	object.
5858	(Expand_Inline_Call): If an actual is a literal, and the corresponding
5859	formal has its address taken in the body, create a temporary to capture
5860	value.  If the return type is a limited interface, do not treat the
5861	return value as Controlled.
5862	(Is_In_Place_Function):  If the return type is a limited interface,
5863	treat as returning in place. The actual returned object may not always
5864	be limited, but the caller has to assume that it is returned in place.
5865	(Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
5866	context of an allocator, use the correct finalization chain (that is,
5867	the chain belonging to the access type, rather than the chain belonging
5868	to the current scope).
5869	(Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
5870	result type rather than a controlling result as a precondition for
5871	adding an allocation form actual to a build-in-place call.
5872	(Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
5873	(Freeze_Subprogram): Code cleanup. Remove all the code that register the
5874	primitive in the dispatch tables. This work is now done by Make_DT when
5875	the type is frozen.
5876	(Register_Predefined_DT_Entry): Removed.
5877	(Add_Return): If end label is not present, use sloc of last statement
5878	for generated return statement in procedure, for better gdb behavior
5879	on expanded code.
5880	(Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
5881	object address nodes to ensure proper processing by routines like
5882	Insert_After*.
5883	(Expand_Call): Fix generation of validity check for parameter
5884	(Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
5885	the allocation form parameter if the result subtype is constrained,
5886	except when the function has a controlling result.
5887	(Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
5888	rather than Is_Controlled and Has_Controlled_Component, since we want to
5889	include class-wide result types in this treatment. Also test for a
5890	controlling result, since that also requires passing a finalization
5891	list.
5892	(Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
5893	even when the result subtype is constrained, to handle calls involving
5894	controlling results.
5895	(Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
5896	is now called even when the result subtype is constrained, to handle
5897	calls involving controlling results.
5898	(Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
5899	on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
5900	now performs the test).
5901	(Make_Build_In_Place_Call_In_Object_Declaration):
5902	Add_Alloc_Form_Actual_* is now called even when the result subtype is
5903	constrained, to handle calls involving controlling results.
5904	(Add_Return): Accomodate rewritten pattern from local raise to goto
5905	transformation, so that we still recognize an transfer statement
5906	and do the right thing here in that case.
5907	(Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
5908	and end of subprogram code.
5909	(Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
5910	support for primitives that are functions (without formals) with a
5911	controlling result.
5912	(Inherited_From_Formal): If the actual subtype has not generic parent
5913	type, it is not an actual for a formal derived type, and there is no
5914	operation to inherit from the formal.
5915
59162007-06-06  Ed Schonberg  <schonberg@adacore.com>
5917	    Thomas Quinot  <quinot@adacore.com>
5918
5919	* exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
5920	inserted cleanup code appropriately for GDB use.
5921	(Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
5922	exception handler for Deep_Adjust or Deep_Finalize.
5923	(Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
5924	Raise_From_Controlled_Operation is available, use a call to that
5925	subprogram instead of a plain "raise Program_Error" node to raise
5926	Program_Error if an exception is propagated from an Adjust or Finalize
5927	operation.
5928	(Insert_Actions_In_Scope_Around): If the statement to be wrapped
5929	appears in the optional statement list of a triggering alternative, the
5930	scope actions can be inserted directly there, and not in the list that
5931	includes the asynchronous select itself.
5932
59332007-06-06  Ed Schonberg  <schonberg@adacore.com>
5934	    Robert Dewar  <dewar@adacore.com>
5935	    Hristian Kirtchev  <kirtchev@adacore.com>
5936
5937	* exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
5938	generated exception handler appropriately when debugging generated code.
5939	Deal properly with No_Exception_Propagation restriction mode.
5940	(Expand_N_Abort_Statement): Add an unchecked type conversion from
5941	System.Address to System.Tasking.Task_Id when processing the result of
5942	the predefined primitive _disp_get_task_id.
5943	(Expand_N_Asynchronous_Select): Clarify comment.
5944	(Expand_N_Protected_Type_Declaration): Minor code cleanup.
5945	(Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
5946	(Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
5947	(Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
5948	privals and for generated call to Complete_Entry_Body, for better gdb
5949	behavior.
5950	(Copy_Result_Type): Utility to construct a parameter and result profile
5951	for protected functions whose return type is an anonymous access to
5952	subprogram.
5953	(Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
5954	call the above.
5955	(Build_Task_Activation_Call): Insert Activate_Tasks call at proper
5956	point when the local-raise-to-goto transformation has taken place.
5957
59582007-06-06  Javier Miranda  <miranda@adacore.com>
5959	    Nicolas Setton  <setton@adacore.com>
5960
5961	* exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
5962	functionality when the backend is generating code.
5963	Otherwise any serious error
5964	reported by the backend calling the frontend routine Error_Msg
5965	changes the Compilation_Mode to Check_Semantics, disables the
5966	functionality of this routine and causes the generation of
5967	spureous additional errors.
5968
5969	* exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
5970	debugging information now generated by the compiler for fat-pointer
5971	types.
5972	Document the contents of DW_AT_producer in the GNAT Vendor extensions to
5973	DWARF2/3.
5974	Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
5975
59762007-06-06  Thomas Quinot  <quinot@adacore.com>
5977
5978	* exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
5979	(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
5980	PolyORB_Support.Build_Subprogram_Receiving_Stubs):
5981	For a remote call to a function with a classwide return type, apply an
5982	E.4(18) check to the returned value.
5983	(Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
5984	stream attributes of the designated type of an RACW, as they are not
5985	dispatching primitive operations.
5986
59872007-06-06  Geert Bosch  <bosch@adacore.com>
5988
5989	* exp_fixd.adb (Integer_Literal): Add optional argument to construct a
5990	negative literal
5991	(Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
5992	positive
5993	(Do_Divide_Fixed_Universal): Handle case of negative Frac.
5994	(Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
5995	positive
5996	(Do_Multiply_Fixed_Universal): Handle case of negative Frac.
5997
59982007-06-06  Javier Miranda  <miranda@adacore.com>
5999
6000	* exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
6001	attribute compiling package Ada.Tags under No_Run_Time_Mode.
6002
60032007-06-06  Javier Miranda  <miranda@adacore.com>
6004
6005	* exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
6006	deallocation of class-wide interface objects.
6007	(Expand_Dispatching_Constructor_Call): Take into account that if the
6008	result of the dispatching constructor is an interface type, the
6009	function returns a class-wide interface type; otherwise the returned
6010	object would be actual. The frontend previously accepted returning
6011	interface types because Expand_Interface_Actuals silently performed
6012	the management of the returned type "as if" it were a class-wide
6013	interface type.
6014	(Expand_Dispatching_Constructor_Call): Replace call to
6015	Make_DT_Access_Action by direct call to Make_Function_Call.
6016
60172007-06-06  Robert Dewar  <dewar@adacore.com>
6018	    Ed Schonberg  <schonberg@adacore.com>
6019
6020	* exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
6021	compute masking constant, since we now set Esize properly to the
6022	underlying size.
6023	(Create_Packed_Array_Type): Set proper Esize value adjusted as required
6024	to match the alignment.
6025	(Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
6026	packed arrays of 8 bits or less.
6027
6028	* freeze.adb (Freeze_Entity): When freezing the formals of a
6029	subprogram, freeze the designated type of a parameter of an access type
6030	only if it is an access parameter.
6031	Increase size of C convention enumeration object
6032	(Freeze_Entity, array type case): Make sure Esize value is properly
6033	adjusted for the alignment if it is known.
6034	(Freeze_Entity, array type case): When checking bit packed arrays for
6035	the size being incorrect, check RM_Size, not Esize.
6036	(Freeze_Record_Type): Check for bad discriminated record convention
6037	(In_Exp_Body): Return true if the body is generated for a subprogram
6038	renaming, either an attribute renaming or a renaming as body.
6039	(Check_Itype): If the designated type of an anonymous access component
6040	is a non-protected subprogram type, indicate that it is frozen, to
6041	prevent out-of-scope freeze node at some subsequent call.
6042	(Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
6043	only if the subprogram is neither imported nor exported, as well as the
6044	NCA descriptor class if the subprogram is exported.
6045
60462007-06-06  Ed Schonberg  <schonberg@adacore.com>
6047	    Arnaud Charlet  <charlet@adacore.com>
6048	    Robert Dewar  <dewar@adacore.com>
6049	    Gary Dismukes  <dismukes@adacore.com>
6050
6051	* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
6052	default initialization on an imported object, when there is no
6053	initialization call generated for it.
6054	(Expand_Pragma_Assert): Add handling of No_Exception_Propagation
6055	restriction
6056
6057	* snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
6058	Static_Elaboration_Desired.
6059	Remove pragma Thread_Body.
6060	Implement a new pragma No_Body
6061	Removes the Explicit_Overriding pragma
6062	Remove Optional_Overriding pragma
6063	(Prag): Deal with Universal_Aliasing.
6064	(Name_CIL, Name_CIL_Constructor, Convention_CIL,
6065	Pragma_CIL_Constructor): New names.
6066
6067	* sem_cat.adb (Validate_Object_Declaration): An initialization that
6068	uses the equivalent aggregate of a type must be treated as an implicit
6069	initialization.
6070	(Get_Categorization): Check a unit for pragma Preelaborate only if it
6071	has none of the other categories.
6072	(Process_Import_Or_Interface_Pragma): Report an error for an attempt
6073	to apply Import to an object renaming declaration.
6074
6075	* sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
6076	from a C++ class should be declared as limited and that it will be
6077	considererd limited.
6078	(Analyze_Pragma): Warn that a type specified with pragma CPP_Class
6079	should be declared as limited and that it will be considererd limited.
6080	(Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
6081	(Analyze_Pragma, case Export): Diagnose export of enumeration literal
6082	(Analyze_Pragma): Deal with Universal_Aliasing.
6083	(Sig_Flags): Likewise.
6084	(Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
6085	(Overflow_Checks_Unsuppressed): New flag.
6086	(Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6087	(Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
6088	case of JVM or .NET targets, and compiling user code.
6089	Add debugging convenience routine rv
6090
60912007-06-06  Robert Dewar  <dewar@adacore.com>
6092
6093	* exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
6094	are interface type.
6095	(Build_Elementary_Input_Call): For floating-point use right type in the
6096	absence of strange size or stream size clauses.
6097	(Build_Elementary_Write_Call): Same fix
6098	(Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
6099	set to value that does not match base type size.
6100
61012007-06-06  Ed Schonberg  <schonberg@adacore.com>
6102
6103	* exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
6104	object of a limited type can be initialized with a call to a function
6105	that returns in place. If the limited type has unknown discriminants,
6106	and the underlying type is a constrained composite type, build an actual
6107	subtype from the function call, as is done for private types.
6108	(Side_Effect_Free): An expression that is the renaming of an object or
6109	whose prefix is the renaming of a object, is not side-effect free
6110	because it may be assigned through the renaming and its value must be
6111	captured in a temporary.
6112	(Has_Controlled_Coextensions): New routine.
6113	(Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
6114	as is done for other limited types.
6115	(Non_Limited_Designated_Type): new predicate.
6116	(Make_CW_Equivalent_Type): Modified to handle class-wide interface
6117	objects.
6118	Remove all handling of with_type clauses.
6119
6120	* par-ch10.adb: Remove all handling of with_type clauses.
6121
6122	* lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
6123	checksum if the main source could not be parsed.
6124	(Loat_Unit): When processing a child unit, determine properly whether
6125	the parent unit is a renaming when the parent is itself a child unit.
6126	Remove handling of with_type clauses.
6127
6128	* sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
6129	(Set_Is_Static_Coextension): New procedure.
6130	(Has_Local_Raise): New function
6131	(Set_Has_Local_Raise): New procedure
6132	(Renaming_Exception): New field
6133	(Has_Init_Expression): New flag
6134	(Delay_Finalize_Attach): Remove because flag is obsolete.
6135	(Set_Delay_Finalize_Attach): Remove because flag is obsolete.
6136	Remove all handling of with_type clauses.
6137	(Exception_Junk): Can now be set in N_Block_Statement
6138
61392007-06-06  Vincent Celier  <celier@adacore.com>
6140	    Robert Dewar  <dewar@adacore.com>
6141
6142	* frontend.adb (Frontend): Return immediately if the main source could
6143	not be parsed, because of preprocessing errors.
6144
6145	* gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
6146	(Gnat1drv): Exit with errors if the main source could not be parsed,
6147	because of preprocessing errors.
6148	(Check_Rep_Info): New procedure
6149
61502007-06-06  Robert Dewar  <dewar@adacore.com>
6151
6152	* g-hesorg.ads, g-heasor.ads,
6153	g-busorg.ads, g-bubsor.ads: Update documentation
6154	GNAT.Heap/Bubble_Sort_G is now pure
6155
61562007-06-06  Robert Dewar  <dewar@adacore.com>
6157
6158	* g-catiio.ads, g-catiio.adb (Image): Check for null picture string
6159
61602007-06-06  Robert Dewar  <dewar@adacore.com>
6161	    Ed Schonberg  <schonberg@adacore.com>
6162
6163	* g-comlin.ads, g-comlin.adb:
6164	Add new warning for renaming of function return objects
6165
6166	* opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
6167	(Tree_Read): Use size of object instead of type'object_size, since the
6168	latter is incorrect for packed array types.
6169	(Tree_Write): Same fix
6170
6171	* opt.ads: Add new warning for renaming of function return objects
6172	(Generating_Code): New boolean variable used to indicate that the
6173	frontend as finished its work and has called the backend to process
6174	the tree and generate the object file.
6175	(GCC_Version): Is now private
6176	(Static_Dispatch_Tables): New constant declaration.
6177	(Overflow_Checks_Unsuppressed): New flag.
6178	(Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
6179	(List_Closure): New flag for gnatbind (-R)
6180	Zero_Formatting: New flag for gnatbind (-Z)
6181	(Special_Exception_Package_Used): New flag.
6182	(Warn_On_Unrepped_Components): New flag.
6183
6184	* sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
6185	unit is a compilation unit, rather than relying on its scope, so that
6186	Standard can be renamed.
6187	(Analyze_Object_Renaming): Add new warning for renaming of function
6188	return objects.
6189	Also reject attempt to rename function return object in Ada 83 mode.
6190	(Attribute_Renaming): In case of tagged types, add the body of the
6191	generated function to the freezing actions of the type.
6192	(Find_Type): A protected type is visible right after the reserved word
6193	"is" is encountered in its type declaration. Set the entity and type
6194	rather than emitting an error message.
6195	(New_Scope): Properly propagate Discard_Names to inner scopes
6196	(Check_Nested_Access): New procedure.
6197	(Has_Nested_Access, Set_Has_Nested_Access): New procedures.
6198	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6199
6200	* sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
6201	Add new warning for renaming of function return objects
6202	(Check_References): Suppress warnings for objects whose type or
6203	base type has Warnings suppressed.
6204	(Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
6205	(Set_Warning_Switch): Include new -gnatwc in -gnatwa
6206
62072007-06-06  Vincent Celier  <celier@adacore.com>
6208	    Emmanuel Briot  <briot@adacore.com>
6209	    Olivier Hainque  <hainque@adacore.com>
6210
6211	* g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
6212	absolute value of Header.Block_Size when displaying the freed physical
6213	memory in traces.
6214	(Allocate): Compute Storage_Address using Integer_Address, not
6215	Storage_Offset, because the range of Storage_Offset may not be large
6216	enough.
6217	(Configure): New parameter Low_Level_Traces
6218	(Allocate, Deallocation, Free_Physically): Added low-level traces
6219	(Configure): new parameter Errors_To_Stdout.
6220	(Output_File): new subprogram
6221	(Deallocate, Dereference): Send error messages to the proper stream
6222	(Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
6223	documented. Previous code would send it to the current output file
6224	defined in GNAT.IO, which might not be stdout
6225	(Is_Valid): Adjust comment to mention that a positive reply means that
6226	Header_Of may be used to retrieve the allocation header associated with
6227	the subprogram Storage address argument. Return False early if this
6228	address argument is misaligned.
6229
62302007-06-06  Vincent Celier  <celier@adacore.com>
6231
6232	* gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
6233	switch -P
6234	(ASIS_Main): New global variable
6235	(Get_Closure): New procedure
6236	(GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
6237	check, metric or pretty. Call Get_Closure in this case.
6238	(Check_Files): For GNAT LIST, check all sources of all projects when
6239	All_Projects is True.
6240	(GNATCmd): Accept -U for GNAT LIST
6241
62422007-06-06  Vincent Celier  <celier@adacore.com>
6243
6244	* gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
6245	has been specified
6246	Correct error message when invocation of the linker fails
6247	Add explicit size clause for the C imported variables
6248	Object_List_File_Supported and Using_GNU_Linker to emphasize that
6249	we expect char size.
6250	Read target parameters earlier, since this is needed to set
6251	Target_VM properly. Also do not use -static/shared-libgcc for non GCC
6252	targets.
6253
62542007-06-06  Vincent Celier  <celier@adacore.com>
6255
6256	* gnatls.adb:
6257	Add 3 spaces before the default project directory when displaying
6258	the project search path.
6259	Add new command line switch '-l' to display license information.
6260
62612007-06-06  Vasiliy Fofanov  <fofanov@adacore.com>
6262
6263	* gmem.c: Add support for timestamps on memory operations.
6264
6265	* memtrack.adb, gnatmem.adb: Add support for timestamps on memory
6266	operations (not used currently, just foundation for future
6267	enhancements). Add possibility to perform full dump of gmem.out file.
6268	(Print_Back_Traces): Declare accesses to root arrays constants since
6269	they aren't modified.
6270	(Print_Back_Traces): allocate root arrays on the heap rather than stack.
6271
62722007-06-06  Vincent Celier  <celier@adacore.com>
6273
6274	* gnatsym.adb: Update Copyright notice
6275	(Parse_Cmd_Line): Accept new switch -D
6276	(Gnatsym): In Direct policy (switch -D) copy reference file to symbol
6277	 file.
6278
6279	* prj.ads (Policy): New policy Direct
6280	(Yes_No_Unknown): New enumeration type
6281	(Project_Data): New component Libgnarl_Needed
6282
6283	* prj-nmsc.adb (Check_For_Source): When recording a source file make
6284	use the untouched pathname casing.
6285	(Get_Directories): Ensure that the Display_Exec_Directory is using the
6286	proper casing on non case-sensitive platforms like Windows.
6287	(Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
6288	on all platforms, as it is not possible to know which one is allowed
6289	before processing the project files.
6290	(Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
6291	specified when symbol policy is Direct. Check that when there is a
6292	symbol file defined (either by default or with attribute
6293	Library_Symbol_File) it is not the same as the reference symbol file.
6294	(Check_Stand_Alone_Library): Recognize new symbol policy Direct.
6295	(Look_For_Sources): Allow Locally_Removed_Files to be declare in non
6296	extending projects.
6297	(Record_Ada_Source): Record a source that has been locally removed in an
6298	imported project.
6299
6300	* symbols.ads (Policy): New policy Direct
6301
6302	* symbols-vms.adb (Initialize): Take new policy Direct in case
6303	statement
6304
63052007-06-06  Vincent Celier  <celier@adacore.com>
6306
6307	* g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
6308	Correct obvious bug (return Dir; instead of return Directory;).
6309	(Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
6310
63112007-06-06  Thomas Quinot  <quinot@adacore.com>
6312
6313	* g-pehage.adb (Produce): Open output files in Binary mode, so that
6314	they have UNIX line endings (LF only) even on Windows, and thus pass
6315	all GNAT style checks.
6316
63172007-06-06  Emmanuel Briot  <briot@adacore.com>
6318
6319	* g-regpat.adb (Quote): Fix improper quoting of '.'
6320
63212007-06-06  Thomas Quinot  <quinot@adacore.com>
6322
6323	* g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
6324	default, set False on a per-runtime basis.
6325	(Need_Netdb_Buffer): New constant.
6326
6327	* g-socket.ads, g-socket.adb: Import new package
6328	GNAT.Sockets.Thin.Task_Safe_NetDB.
6329	(Raise_Host_Error): Use Host_Error_Message from platform-specific thin
6330	binding to obtain proper message.
6331	(Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
6332	Replace various occurrences of Arry (Arry'First)'Address with the
6333	equivalent Arry'Address (GNAT always follows implementation advice from
6334	13.3(14)).
6335	(Get_Host_By_Address, Get_Host_By_Name,
6336	Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
6337	instead, rely on platform-specific task safe netdb operations provided
6338	by g-socthi.
6339
6340	* g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
6341	parameter Process_Blocking_IO.
6342	(Host_Error_Messages): Add stub body.
6343	(GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
6344	(Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
6345	Safe_Getservbyport): Move functions into new child package
6346	Task_Safe_NetDB.
6347	(Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
6348	Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
6349	(In_Addr): Add alignment clause.
6350
63512007-06-06  Robert Dewar  <dewar@adacore.com>
6352
6353	* g-trasym.ads, g-traceb.ads: Update list of supported targets
6354	Add note about symbolic traceback
6355
63562007-06-06  Pascal Obry  <obry@adacore.com>
6357
6358	* hostparm.ads (Normalized_CWD): Use the host directory separator
6359	instead of the hardcoded forward slash which is not the proper
6360	character on Windows for example.
6361	(Java_VM): Removed.
6362
63632007-06-06  Vincent Celier  <celier@adacore.com>
6364	    Arnaud Charlet  <charlet@adacore.com>
6365
6366	* a-clrefi.adb, a-clrefi.ads: New files
6367
6368	* impunit.adb: Add s-os_lib in the list of user visible units.
6369	(Non_Imp_File_Names_95): Add a-clrefi to this list
6370	Remove obsolete run-time entries.
6371	(Non_Imp_File_Names_05): Add Ada 2005 entries for:
6372	 "a-exetim" -- Ada.Execution_Time
6373	 "a-extiti" -- Ada.Execution_Time.Timers
6374
6375	* mlib-prj.ads, mlib-prj.adb
6376	(Build_Library): Use untouched object dir and library dir. At the
6377	same time makes sure that the checks are done using the canonical
6378	form. Removes hard-coded directory separator and use the proper host
6379	one instead.
6380	(Process_Project): Do not look in object directory to check if libgnarl
6381	is needed for a library, if there is no object directory.
6382	(Build_Library): Scan the ALI files to decide if libgnarl is needed for
6383	linking.
6384	(Build_Library): When invoking gnatbind, use a response file if the
6385	total size of the arguments is too large.
6386
6387	* Makefile.rtl: (g-sttsne): New object file.
6388	Add entry for a-clrefi, s-utf_32, System.Exceptions
6389
6390	* Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
6391	(GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
6392	(GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
6393	Change g-string to s-string, g-os_lib to s-os_lib
6394	Change all g-utf_32 references to s-utf_32
6395
63962007-06-06  Tristan Gingold  <gingold@adacore.com>
6397	    Olivier Hainque  <hainque@adacore.com>
6398
6399	* init.c: Do not adjust IP of an imported VMS exception of ia64.
6400	LIB$STOP is called to raise an exception and the IP of the exception
6401	is the instruction right after the call.
6402	(__gnat_adjust_context_for_raise, AIX): Implement.
6403	(__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
6404	 adjust_context_for_raise before Raise_From_Signal_Hanler.
6405	(__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
6406	siginfo is passed to the handler, necessary to let the zcx propagation
6407	engine unwind past it.
6408
64092007-06-06  Olivier Hainque  <hainque@adacore.com>
6410
6411	* initialize.c (__gnat_initialize for vxworks):  Update documentation
6412	on the ZCX support, using different sets of crtstuff objects than with
6413	GCC 3.4.
6414
64152007-06-06  Robert Dewar  <dewar@adacore.com>
6416
6417	* layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
6418	spec from body
6419	(Layout_Type): Fix recomputation of size from alignment.
6420
64212007-06-06  Ed Schonberg  <schonberg@adacore.com>
6422	    Javier Miranda  <miranda@adacore.com>
6423
6424	* sem_ch12.adb (Analyze_Associations): Diagnose use of an others
6425	association in an instance.
6426	(Copy_Generic_Node): If the node is a string literal, no need to copy
6427	its descendants.
6428	(Is_Generic_Formal): For a formal subprogram, the declaration is the
6429	grandparent of the entity.
6430	(Analyze_Formal_Interface_Type): Transform into a full type declaration,
6431	to simplify handling of formal interfaces that derive from other formal
6432	interfaces.
6433	(Instantiate_Subprogram_Body): The defining unit name of the body of
6434	the instance should be a defining identifier.
6435	(Install_Formal_Packages): make global to the package, for use in
6436	instantiations of child units.
6437	(Analyze_Package_Instantiation): Do not attempt to set information on an
6438	enclosing master of an entry when expansion is disabled.
6439	(Instantiate_Type): If the actual is a tagged synchronized type and the
6440	generic ancestor is an interface, create a generic actual for the
6441	corresponding record.
6442	(Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
6443	declaration, to ensure that the interface list is processed correctly.
6444	(Inline_Instance_Body): If enclosing scope is an instance body, remove
6445	its entities from visibiility as well.
6446	(Pre_Analyze_Actuals): if the actual is an allocator with  constraints
6447	given with a named association, analyze the expression only, not the
6448	discriminant association itself.
6449	(Reset_Entity): If the analysis of a selected component is transformed
6450	into an expanded name in the prefix of a call with parameters, do not
6451	transform the original node into an expanded name, to prevent visibility
6452	errors in the case of nested generics.
6453	(Check_Private_View): For an array type, check whether the index types
6454	may need exchanging.
6455
64562007-06-06  Arnaud Charlet  <charlet@adacore.com>
6457	    Vincent Celier  <celier@adacore.com>
6458
6459	* lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
6460	since both are separated.
6461	Add support for imported CIL packages.
6462	Add further special handling of "value_type" for CIL.
6463	Add special handling of pragma Import for CIL.
6464
6465	* make.ads, make.adb: When switch -eS is used, direct all outputs to
6466	standard output instead of standard error, except errors.
6467	(Absolute_Path): Use untouched casing for the parent directory.
6468	(Add_Library_Search_Dir): Use the untouched directory name.
6469	(Add_Source_Search_Dir): Idem.
6470	(Change_To_Object_Directory): Update output to use proper casing.
6471	(Create_Binder_Mapping_File): Use the untouched filename to set
6472	ALI_Name.
6473	(Gnatmake): Use untouched library and executable directory names.
6474	(Insert_Project_Sources): Use untouched filename for spec and body.
6475	(Is_In_Object_Directory): Use untouched object directory.
6476	(Mark_Directory): Idem.
6477	(Collect_Arguments_And_Compile): Ensure that Full_Source_File always
6478	contains the non-canonical filename in all cases.
6479	(Change_To_Object_Directory): In verbose mode, display the name of the
6480	object directory we're changing to.
6481	(Compile_Sources): Make sure, when a project file is used, to compile
6482	the body of the unit, when there is one, even when only the spec is
6483	recorded in an ALI file.
6484	(Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
6485	spec to the body.
6486	(Report_Compilation_Failed): New procedure
6487	(Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
6488	procedures moved from the spec to the body.
6489	(Extract_Failure): Removed, not used
6490	Replace explicit raises of exception Bind_Failed and Link_Failed with
6491	calls to Make_Failed with the proper message.
6492	Replace explicit raises of exception Compilation_Failed with calls to
6493	procedure Report_Compilation_Failed.
6494	(Initialize): Create mapping files unconditionally when using project
6495	files.
6496
6497	* sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
6498	Pragma_CIL_Constructor): New names.
6499
6500	* targparm.ads, targparm.adb
6501	(Compiler_System_Version): Removed, no longer used.
6502	(Get_Target_Parameters): Relax checks on system.ads validity. Add
6503	handling of two new system flags: JVM and CLI.
6504
65052007-06-06  Jose Ruiz  <ruiz@adacore.com>
6506	    Arnaud Charlet  <charlet@adacore.com>
6507
6508	* Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
6509	time, use the default s-interr body that provides interrupt support
6510	based on signals.
6511	(LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
6512	a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
6513	g-soccon.ads, and s-taprop.adb for the marte run time.
6514	(EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
6515	timers are supported on marte.
6516	(EH_MECHANISM for marte): Do not use ZCX.
6517	(THREADSLIB for marte): Use -lmarte.
6518	Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
6519	Add mlib-tgt-specific.o to gnatmake objects
6520	mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
6521	longer of MLib.Tgt.
6522	(LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
6523	6, either kernel or rtp, use a specialized version of s-osinte.ads.
6524
65252007-06-06  Pascal Obry  <obry@adacore.com>
6526
6527	* mkdir.c (__gnat_mkdir): Add support for UTF-8.
6528
65292007-06-06  Vincent Celier  <celier@adacore.com>
6530
6531	* mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
6532	separator, use instead the proper host directory separator.
6533	(Copy_ALI_Files): Make sure that an already existing ALI file in the
6534	ALI copy dir is writable, before doing the copy.
6535
6536	* mlib-utl.ads, mlib-utl.adb:
6537	(Gcc): If length of command line is too long, put the list of object
6538	files in a response file, if this is supported by the platform.
6539	(Ar): If invocation of the archive builder is allowed to be done in
6540	chunks and building it in one shot would go above an OS dependent
6541	limit on the number of characters on the command line, build the archive
6542	in chunks.
6543
65442007-06-06  Vincent Celier  <celier@adacore.com>
6545
6546	* osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
6547	of specified object file is not equal to base name of source.
6548
65492007-06-06  Javier Miranda  <miranda@adacore.com>
6550	    Hristian Kirtchev  <kirtchev@adacore.com>
6551	    Ed Schonberg  <schonberg@adacore.com>
6552
6553	* sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
6554	the full type declaration.
6555	(Analyze_Component_Declaration): Add local variable E to capture the
6556	initialization expression of the declaration. Replace the occurences of
6557	Expression (N) with E.
6558	(OK_For_Limited_Init_In_05): Allow initialization of class-wide
6559	limited interface object with a function call.
6560	(Array_Type_Declaration): If the declaration lacks subtype marks for
6561	indices, create a simple index list to prevent cascaded errors.
6562	(Is_Null_Extension): Ignore internal components created for secondary
6563	tags when checking whether a record extension is a null extension.
6564	(Check_Abstract_Interfaces): Add missing support for interface subtypes
6565	and generic formals.
6566	(Derived_Type_Declaration): Add missing support for interface subtypes
6567	and generic formals.
6568	(Analyze_Object_Declaration): If an initialization expression is
6569	present, traverse its subtree and mark all allocators as static
6570	coextensions.
6571	(Add_Interface_Tag_Component): When looking for components that may be
6572	secondary tags, ignore pragmas that can appear within a record
6573	declaration.
6574	(Check_Abstract_Overriding): an inherited function that dispatches on
6575	result does not need to be overriden if the controlling type is a null
6576	extension.
6577	(Mentions_T): Handle properly a 'class attribute in an anonymous access
6578	component declaration, when the prefix is an expanded name.
6579	(Inherit_Component): If the derivation is for a private extension,
6580	inherited components remain visible and their ekind should not be set
6581	to Void.
6582	(Find_Type_Of_Object): In the case of an access definition, always set
6583	Is_Local_Anonymous_Access. We were previously not marking the anonymous
6584	access type of a return object as a local anonymous type.
6585	(Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
6586	range with character literal bounds.
6587	(Constrain_Array): Initialize the Packed_Array_Type field to Empty.
6588	(Access_Subprogram_Declaration): Indicate that the type declaration
6589	depends on an incomplete type only if the incomplete type is declared
6590	in an open scope.
6591	(Analyze_Subtype_Declaration): Handle properly subtypes of
6592	synchronized types that are tagged, and that may appear as generic
6593	actuals.
6594	(Access_Subprogram_Declaration): An anonymous access to subprogram can
6595	appear as an access discriminant in a private type declaration.
6596	(Add_Interface_Tag_Components): Complete decoration of the component
6597	containing the tag of a secondary dispatch table and the component
6598	containing the offset to the base of the object (this latter component
6599	is only generated when the parent type has discriminants --as documented
6600	in this routine).
6601	(Inherit_Components): Use the new decoration of the tag components to
6602	improve the condition that avoids inheriting the components associated
6603	with secondary tags of the parent.
6604	(Build_Discriminanted_Subtype): Indicate to the backend that the
6605	size of record types associated with dispatch tables is known at
6606	compile time.
6607	(Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
6608	(Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
6609	to include task, protected, and synchronized interfaces as limited
6610	interfaces.
6611	(Process_Discriminants): Remove the setting of
6612	Is_Local_Anonymous_Access on the type of (anonymous) access
6613	discriminants of nonlimited types.
6614	(Analyze_Interface_Type_Declaration): Complete the decoration of the
6615	class-wide entity it is is already present. This situation occurs if
6616	the limited-view has been previously built.
6617	(Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
6618	field.
6619	(Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
6620	Related_Interface.
6621
66222007-06-06  Ed Schonberg  <schonberg@adacore.com>
6623
6624	* sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
6625	of the type that specify the position of interface tags when the type
6626	inherits discriminated array components from the parent type.
6627	If a component is initialized with a box, check for the presence of a
6628	default expression in its declaration before using its default
6629	initialization procedure.
6630	(Resolve_Record_Aggregate): If a component is box-initialized, and the
6631	component type has a discriminants, create a partial aggregate for it
6632	by copying the discriminants of the component subtype.
6633	Reject attempt to initialize a discriminant with a box.
6634	(Array_Aggr_Subtype): Indicate to the backend that the size of arrays
6635	associated with dispatch tables is known at compile time.
6636	(Get_Value): If an association in a record aggregate has a box
6637	association, and the corresponding record component has a default
6638	expression, always copy the default expression, even when the
6639	association has a single choice, in order to create a proper
6640	association for the expanded aggregate.
6641
66422007-06-06  Ed Schonberg  <schonberg@adacore.com>
6643	    Robert Dewar  <dewar@adacore.com>
6644
6645	* par-ch12.adb (P_Generic_Associations): The source position of an
6646	Others association is that of the others keyword, not that of the token
6647	that follows the box.
6648	(P_Formal_Type_Definition): Handle formal access types that carry a
6649	not null indicator.
6650
6651	* par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
6652	multiple identifier are present, save Scan_State before scanning the
6653	colon, to ensure that separate trees are constructed for each
6654	declaration.
6655	(P_Identifier_Declarations): For object declaration, set new flag
6656	Has_Init_Expression if initialization expression present.
6657	(P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
6658	Improve NOT NULL error messages
6659
66602007-06-06  Robert Dewar  <dewar@adacore.com>
6661
6662	* par-ch4.adb: (P_Name): Recover from literal used as name
6663
66642007-06-06  Vincent Celier  <celier@adacore.com>
6665
6666	* prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
6667	defaulted to False.
6668	In the "not" case, recursive call with Complemented set to True.
6669	Do not allow "or" or "and" operators when Complemented is True.
6670
66712007-06-06  Vincent Celier  <celier@adacore.com>
6672
6673	* prj.adb (Project_Empty): Gives default value for new component
6674	Libgnarl_Needed
6675
6676	* prj-attr.ads: Minor reformatting
6677
6678	* prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
6679	directory using the untouched casing.
6680	(For_All_Source_Dirs): Idem.
6681
6682	* prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
6683	directories specified with switches -aP.
6684	(Add_Search_Project_Directory): New procedure
6685	(Initialize_Project_Path): Put the directories in table
6686	Search_Directories in the project search path.
6687	(Initialize_Project_Path): For VMS, transform into canonical form the
6688	project path.
6689
66902007-06-06  Arnaud Charlet  <charlet@adacore.com>
6691
6692	* restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
6693	true if configurable run-time or No_Run_Time is set.
6694	(Set_Restriction): Avoid setting restriction No_Elaboration_Code when
6695	processing an unit which is not the one being compiled.
6696
66972007-06-06  Arnaud Charlet  <charlet@adacore.com>
6698
6699	* s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
6700	Replace UC by Ada.UC
6701
6702	* s-bitops.adb: Get rid of System.Pure_Exceptions.
6703	Replace UC by Ada.UC
6704
67052007-06-06  Robert Dewar  <dewar@adacore.com>
6706
6707	* scng.adb: (Check_End_Of_Line): Deal with very long lines
6708
67092007-06-06  Robert Dewar  <dewar@adacore.com>
6710
6711	* sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
6712	Remove no longer used nodes.
6713
67142007-06-06  Javier Miranda  <miranda@adacore.com>
6715	    Ed Schonberg  <schonberg@adacore.com>
6716	    Robert Dewar  <dewar@adacore.com>
6717
6718	* sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
6719	on obsolescent withed unit in case of limited-withed units.
6720	(Analyze_Compilation_Unit): Add guard to code that removed an
6721	instantiation from visibility, to prevent compiler aborts when
6722	instantiation is abandoned early on.
6723	(Install_Limited_Withed_Unit): Recognize a limited-with clause on the
6724	current unit being analyzed, and Distinguish local incomplete types
6725	from limited views of types declared elsewhere.
6726	(Build_Limited_Views.Decorate_Tagged_Type): Add documentation
6727	to state that the class-wide entity is shared by the limited-view
6728	and the full-view.
6729	(Analyze_With_Clause): Improve placement of flag for case of
6730	unimplemented unit.
6731	(Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
6732	manner similar to GNAT.Current_Exception. This is a violation of
6733	restriction (No_Exception_Propagation), and also inhibits the
6734	optimization of local raise to goto.
6735	(Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
6736	and if so set Most_Recent_Exception_Used flag in Opt, and also check
6737	for violation of restriction No_Exception_Propagation.
6738
67392007-06-06  Javier Miranda  <miranda@adacore.com>
6740	    Hristian Kirtchev  <kirtchev@adacore.com>
6741	    Gary Dismukes  <dismukes@adacore.com>
6742
6743	* sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
6744	use of entity Exception_Occurrence if it is not available in the
6745	target run-time.
6746
6747	* sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
6748	concurrent types are declared within an Ada 2005 generic, build their
6749	corresponding record types since they are needed for overriding-related
6750	semantic checks.
6751	(Analyze_Protected_Type): Rearrange and simplify code for testing that a
6752	protected type does not implement a task interface or a nonlimited
6753	interface.
6754	(Analyze_Task_Type): Rearrange and simplify code for testing that a task
6755	type does not implement a protected interface or a nonlimited interface.
6756	(Single_Task_Declaration, Single_Protected_Declaration): use original
6757	entity for variable declaration, to ensure that debugging information
6758	is correcty generated.
6759	(Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
6760	routines if the expander is not active.
6761	(Analyze_Task_Body): Mark all handlers to stop optimization of local
6762	raise, since special things happen for task exception handlers.
6763
6764	* sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
6765	concurrent types declared within a generic.
6766	(Check_Dispatching_Operation): Do not emit warning about late interface
6767	operations in the context of an instance.
6768	(Check_Dispatching_Call): Remove restriction against calling a
6769	dispatching operation with a limited controlling result.
6770	(Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
6771	Register_Interface_DT_Entry by calls to Register_Primitive.
6772	(Check_Dispatching_Formals): Handle properly a function with a
6773	controlling access result.
6774
67752007-06-06  Robert Dewar  <dewar@adacore.com>
6776	    Arnaud Charlet  <charlet@adacore.com>
6777
6778	* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
6779	Check for restriction No_Implementation_Attributes if in Ada 95 mode.
6780	(Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
6781	(Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
6782	message when using a VM, since this attribute is not supported.
6783	(Analyze_Record_Representation_Clause): Give unrepped component warnings
6784
6785	* usage.adb: Add new warning for renaming of function return objects
6786	Indicate that -gnatwp and -gnatwP concern front-end inlining
6787	Add line for -gnatyg
6788	Add usage information for -gnatw.c/C
6789
67902007-06-06  Robert Dewar  <dewar@adacore.com>
6791	    Ed Schonberg  <schonberg@adacore.com>
6792
6793	* sem_ch5.adb
6794	(Find_Var): Do not consider function call in test for infinite loop
6795	warning if warnings set off for function entity.
6796	(One_Bound): Do not create a temporary for a loop bound if it is a
6797	character literal.
6798	(Analyze_Assignment): Traverse the right hand side of an assignment and
6799	mark all allocators as static coextensions.
6800	(Analyze_Assignment): Exempt assignments involving a dispatching call
6801	to a function with a controlling access result from the check requiring
6802	the target to be class-wide.
6803
68042007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6805	    Ed Schonberg  <schonberg@adacore.com>
6806	    Robert Dewar  <dewar@adacore.com>
6807	    Javier Miranda  <miranda@adacore.com>
6808
6809	* sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
6810	chain of coextensions when an allocator serves as the root of such a
6811	chain.
6812	(Propagate_Coextensions): Remove the test for the root being an
6813	allocator.
6814	(Resolve_Allocator): Add condition to ensure that all future decoration
6815	occurs on an allocator node. Add processing and cleanup for static
6816	coextensions.
6817	(Valid_Conversion): If the operand type is the limited view of a
6818	class-wide type, use the non-limited view is available to determine
6819	legality of operation.
6820	(Ambiguous_Character): move to spec, for use elsewhere.
6821	(Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
6822	(Resolve_Range): Diagnose properly an ambiguous range whose bounds are
6823	character literals.
6824	(Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
6825	Do_Division_Check flag explicitly.
6826	(Resolve_Actuals): If the actual is of a synchronized type, and the
6827	formal is of the corresponding record type, this is a call to a
6828	primitive operation of the type, that is declared outside of the type;
6829	the actual must be unchecked-converted to the type of the actual
6830	(Resolve_Call): Kill all current values for any subprogram call if
6831	flag Suppress_Value_Tracking_On_Call is set.
6832	(Resolve_Type_Conversion): Generate error message the the operand
6833	or target of interface conversions come from a limited view.
6834	(Check_Infinite_Recursion): Ignore generated calls
6835	(Check_Allocator_Discrim_Accessibility): New procedure for checking
6836	that an expression that constrains an access discriminant in an
6837	allocator does not denote an object with a deeper level than the
6838	allocator's access type.
6839	(Resolve_Allocator): In the case of an allocator initialized by an
6840	aggregate of a discriminated type, check that associations for any
6841	access discriminants satisfy accessibility requirements by calling
6842	Check_Allocator_Discrim_Accessibility.
6843	(Resolve_Equality_Op): Handle comparisons of anonymous access to
6844	subprogram types in the same fashion as other anonymous access types.
6845	(Resolve_Concatenation_Arg): Remove initial character '\' in an error
6846	message that is not a continuation message.
6847	(Resolve_Type_Conversion): Add missing support for conversion to
6848	interface type.
6849	(Resolve_Actuals): Introduce a transient scope around the call if an
6850	actual is a call to a function returning a limited type, because the
6851	resulting value must be finalized after the call.
6852	(Resolve_Actuals): If the call was given in prefix notations, check
6853	whether an implicit 'Access reference or implicit dereference must be
6854	added to make the actual conform to the controlling formal.
6855
68562007-06-06  Robert Dewar  <dewar@adacore.com>
6857	    Javier Miranda  <miranda@adacore.com>
6858
6859	* sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
6860	(Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
6861	overriding of an inherited private subprogram now there is no need to
6862	inherit its dispatching slot and reduce the size of the dispatch table.
6863	Set_All_DT_Position now ensures that the same slot is now assigned to
6864	both entities. This is required to statically build the dispatch table.
6865	(Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
6866	of calling Set_All_DT_Position to re-evaluate the position of the
6867	entries in the dispatch table. Such reevaluation is not desired if
6868	the tagged type is already frozen.
6869
68702007-06-06  Hristian Kirtchev  <kirtchev@adacore.com>
6871	    Gary Dismukes  <dismukes@adacore.com>
6872	    Robert Dewar  <dewar@adacore.com>
6873	    Javier Miranda  <miranda@adacore.com>
6874
6875	* sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
6876	reference acts as an lvalue when the attribute name modifies the prefix
6877	(Is_Coextension_Root): New routine.
6878	(Mark_Static_Coextensions): New routine.
6879	(Type_Access_Level): Revise code for checking the level of the
6880	anonymous access type of a return object.
6881	(Safe_To_Capture_Value): Not safe to capture if Address_Taken
6882	(Matches_Prefixed_View_Profile): Remove the no longer necessary
6883	retrieval of the corresponding controlling record type.
6884	(Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
6885	concurrent types declared within a generic as well as class wide types.
6886	Emit a mode incompatibility error whenever a protected entry or routine
6887	override an interface routine whose first parameter is not of mode
6888	"out", "in out" or access to variable.
6889	(Overrides_Synchronized_Primitive): Rename to
6890	Find_Overridden_Synchronized_Primitive.
6891	(Collect_Interface_Components): New subprogram that collects all the
6892	components of a tagged record containing tags of secondary dispatch
6893	tables.
6894	(Add_Global_Declaration): New procedure
6895	(Abstract_Interface_List): Handle properly the case of a subtype of a
6896	private extension.
6897	(Type_Access_Level): In the case of a type whose parent scope is a
6898	return statement, call Type_Access_Level recursively on the enclosing
6899	function's result type to determine the level of the return object's
6900	type.
6901	(Build_Elaboration_Entity): Build name of elaboration entity from the
6902	scope chain of the entity, rather than the unit name of the file name.
6903	(Check_Nested_Access): New procedure.
6904	(Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
6905	(Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
6906	(Get_Renamed_Entity): Utility routine for performing common operation
6907	of chasing the Renamed_Entity field of an entity.
6908
69092007-06-06  Robert Dewar  <dewar@adacore.com>
6910
6911	* sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
6912	elaboration model
6913	(Check_A_Call): Add check for entry call which was causing blowup
6914
69152007-06-06  Olivier Hainque  <hainque@adacore.com>
6916
6917	* raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
6918	special code on ia64-vms to handle major incompatibilities between the
6919	GCC unwinding ABI and the VMS Condition Handling Facility, both calling
6920	this routine with a very different set of arguments and expectations on
6921	the return value.
6922
69232007-06-06  Thomas Quinot  <quinot@adacore.com>
6924
6925	* socket.c (__gnat_close_signalling_fd): New function.
6926	(__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
6927	__gnat_safe_getservbyname, __gnat_safe_getservbyport):
6928	New supporting functions for task safe Netdb operations.
6929
69302007-06-06  Thomas Quinot  <quinot@adacore.com>
6931	    Olivier Hainque  <hainque@adacore.com>
6932
6933	* a-except-2005.ads, a-except-2005.adb
6934	(Raise_From_Controlled_Operation): New procedure in
6935	(private part of) Ada.Exceptions (standard runtime version). Used to
6936	provide informational exception message when Program_Error is raised as
6937	a result of an Adjust or Finalize operation propagating an exception.
6938	(Rmsg_28): Fix description for E.4(18) check.
6939	(Raise_Current_Excep): Call Debug_Raise_Exception just before
6940	propagation starts, to let debuggers know about the event in a reliable
6941	fashion.
6942	Take the address of E and dereference to make sure it is homed on stack
6943	and prevent the stores from being deleted, necessary for proper
6944	debugger behavior on "break exception" hits.
6945	(Local_Raise): Moved to System.Exceptions
6946
6947	* s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
6948	exception message from the current occurrence and raise Program_Error
6949	has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
6950
69512007-06-06  Jose Ruiz  <ruiz@adacore.com>
6952	    Arnaud Charlet  <charlet@adacore.com>
6953
6954	* s-taprob.adb (Unlock): Change the ceiling priority of the underlying
6955	lock, if needed.
6956
6957	* s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
6958	priority associated to a lock.
6959
6960	* s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
6961	assertion to take into account case of no abort restriction.
6962	(Initialize_Protection_Entries): Add initialization for the field
6963	New_Ceiling associated to the protected object.
6964	(Unlock_Entries): Change the ceiling priority of the underlying lock, if
6965	needed.
6966
6967	* s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
6968	since this function needs to be set consistently with Update_Exception.
6969
6970	* s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
6971	since this function needs to be set consistently with Update_Exception.
6972
6973	* s-taskin.ads: Update comments on
6974	Interrupt_Server_Blocked_On_Event_Flag.
6975	(Unbind_Handler): Fix handling of server_task wakeup
6976	(Server_Task): Set self's state so that Unbind_Handler can take
6977	appropriate actions.
6978	(Common_ATCB): Now use a constant from System.Parameters to determine
6979	the max size of the Task_Image field.
6980
6981	* s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
6982	Initialize_Analyzer function.
6983	([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
6984	take into account case of no abort restriction.
6985	([Vulnerable_]Complete_Master): Modify assertion.
6986
6987	* s-tataat.adb (Finalize): Use the nestable versions of
6988	Defer/Undefer_Abort.
6989
6990	* s-tpobop.adb (Protected_Entry_Call): Relax assertion.
6991
6992	* s-tpobop.ads: Update comments.
6993
6994	* s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
6995	of locking the object manually, to avoid inconsistencies between
6996	Lock/Unlock_Entry assertions.
6997
6998	* s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
6999	terminating
7000	application and System.Parameters.No_Abort is True.
7001	Update comments on Interrupt_Server_Blocked_On_Event_Flag.
7002	(Unbind_Handler): Fix handling of server_task wakeup
7003	(Server_Task): Set self's state so that Unbind_Handler can take
7004	appropriate actions.
7005
70062007-06-06  Thomas Quinot  <quinot@adacore.com>
7007
7008	* s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
7009	declarations instead of an explicit null body, for conciseness.
7010
70112007-06-06  Robert Dewar  <dewar@adacore.com>
7012
7013	* sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
7014	illegal aggregate and the type is still Any_Composite.
7015	(Subtypes_Statically_Match): Fix problem of empty discriminant list
7016
70172007-06-06  Ed Schonberg  <schonberg@adacore.com>
7018
7019	* sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
7020	to prevent subsequent expansion.
7021
70222007-06-06  Robert Dewar  <dewar@adacore.com>
7023
7024	* sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
7025
70262007-06-06  Ed Schonberg  <schonberg@adacore.com>
7027	    Robert Dewar  <dewar@adacore.com>
7028
7029	* sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
7030	exceptions.
7031	(Write_Itype): Handle case of string literal subtype, which
7032	comes up in this context.
7033	(Update_Itype): when debugging expanded code, update sloc of itypes
7034	associated with defining_identifiers and ranges, for gdb use.
7035	(Sprint_Node_Actual): Add static keyword to object or exception
7036	declaration output if Is_Statically_Allocated is True.
7037	(Sprint_End_Label): Set entity of end marker for a subprogram, package,
7038	or task body, so that the tree carries the proper Sloc information for
7039	debugging use.
7040	(Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
7041
70422007-06-06  Arnaud Charlet  <charlet@adacore.com>
7043
7044	* s-secsta.adb (Chunk): Ensure this object has a static size known at
7045	compile time, to avoid dynamic memory allocation
7046	(Elaboration code): Only use dynamic memory allocation when needed.
7047
70482007-06-06  Quentin Ochem  <ochem@adacore.com>
7049
7050	* s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
7051	"Overflow_Guard".
7052	(Stack_Analyzer): Added field "Overflow_Guard"
7053	(Task_Result): Added field "Overflow_Guard".
7054	(Index_Str): New constant.
7055	(Task_Name_Str): New constant.
7056	(Actual_Size_Str): New constant.
7057	(Pattern_Array_Element_Size): New constant.
7058	(Get_Usage_Range): New subprogram.
7059	(Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
7060	Now align the output.
7061	Added comments.
7062	(Initialize): Added value for Overflow_Guard.
7063	(Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
7064	Update the value of the overflow guard according to the actual
7065	beginning of the pattern array.
7066	(Initialize_Analyzer): Added parameter Overflow_Guard.
7067	Take this parameter into accound when computing the max size.
7068	(Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
7069	(Report_Result): Removed extra useless procedure.
7070	Updated call to Output_Result.
7071	Moved full computation of the Task_Result here.
7072
70732007-06-06  Thomas Quinot  <quinot@adacore.com>
7074
7075	* g-soccon-darwin.ads, gen-soccon.c: Add new constant
7076	Thread_Blocking_IO, always True by default, set False on a per-runtime
7077	basis.
7078	Add Windows-specific constants
7079	Add new constant Need_Netdb_Buffer.
7080	Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7081	not, whether to use getXXXbyYYY_r.
7082
7083	* gsocket.h: Add new constant Need_Netdb_Buffer.
7084	Add new macros to indicate whether getXXXbyYYY is thread safe and, if
7085	not, whether to use getXXXbyYYY_r.
7086
70872007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7088
7089	* s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
7090	than their first call.
7091	Add type Dummy_Communication_Block used in the generation of the pre-
7092	defined dispatching primitive _disp_asynchronous_select.
7093	(Storage_Element): Put Pragma Universal_Aliasing on it.
7094
70952007-06-06  Vincent Celier  <celier@adacore.com>
7096
7097	* a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
7098	function.
7099
7100	* a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
7101	letter if it is not followed by a '/' or a '\'.
7102	(Windows): New Boolean function
7103
7104	* a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
7105	Ada 2005.
7106	(Containing_Directory): On Windows, keep at least one '/' or '\' after a
7107	drive letter.
7108	(Containing_Directory): Raise Use_Error when the directory is a root
7109	directory.
7110	(Extension): When returning the result, use a conversion to Result_Type,
7111	not a qualification.
7112
71132007-06-06  Robert Dewar  <dewar@adacore.com>
7114
7115	* stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
7116	(Set_Style_Check_Options): Recognize new -gnatyg style switch
7117
7118	* switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
7119	Warn_On_Non_Local_Exception to False, to turn off warnings for
7120	No_Exception_Propagation in ZFP runtime.
7121	(Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
7122	back-ends.
7123	(Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
7124
71252007-06-06  Vincent Celier  <celier@adacore.com>
7126
7127	* switch-b.adb (Scan_Binder_Switches): Add processing for new
7128	switches -R and -Z
7129
7130	* switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
7131	(Scan_Make_Switches): Recognize new switch -aP
7132
71332007-06-06  Matthew Gingell  <gingell@adacore.com>
7134	    Jose Ruiz  <ruiz@adacore.com>
7135
7136	* s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
7137	VxWorks task descriptor in the Ada run time, call a C subprogram
7138	(__gnat_get_stack_info) that extracts the required information.
7139
7140	* sysdep.c: Back out temporary lynxos workaround.
7141	(__gnat_get_stack_info): Add this procedure that passes to the Ada run
7142	time the stack information associated to the currently executing task.
7143	Only VxWorks systems require this function.
7144
71452007-06-06  Eric Botcazou  <ebotcazou@adacore.com>
7146
7147	* tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
7148	add the stack bias if the offset is computed from a frame address.
7149	(__gnat_backtrace): Adjust for above change.
7150
71512007-06-06  Thomas Quinot  <quinot@adacore.com>
7152
7153	* types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
7154	PE_Non_Transportable_Actual.
7155	(By_Descriptor_Last): New constant.
7156	(By_Copy_Return): Likewise.
7157
71582007-06-06  Vincent Celier  <celier@adacore.com>
7159
7160	* vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
7161	is.
7162
7163	* vms_data.ads: Add entries for -gnatw.x and -gnatw.X
7164	/STYLE_CHECKS=GNAT: Change meaning to -gnatyg
7165	/GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
7166	Add missing comment for /OPTIMIZE=SPACE
7167	Add entry for OPTIMIZE=SPACE
7168	Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
7169	Add documentation for new qualifiers corresponding to -gnatw.c/.C
7170
71712007-06-06  Vincent Celier  <celier@adacore.com>
7172	    Robert Dewar  <dewar@adacore.com>
7173
7174	* xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
7175	-gnatw.C)
7176
7177	* gnat_ugn.texi: Fix ordering of -g switch for gnatmake
7178	Document gnatbind switch -a
7179	(case Constructions): Document that variables declarations are allowed
7180	for previously declared variables.
7181	Fix external lib project example
7182	-gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
7183	Indicate that "#if not X or Y then" is not allowed in input files to
7184	gnatprep.
7185	Document gnatw.x and gnatw.X warning flags
7186	Mention -Winline switch to activate warnings when back-end inlining is
7187	ineffective.
7188	Add gnatcheck rule descriptions
7189	Describe how to use the GNAT driver to call a tool on a closure.
7190	Describe how to run project-wide checks or metrics.
7191	Document gnatbind's -R option
7192	Updated to account for Ada 2005 support
7193
7194	* gnat_rm.texi (Case Construction): Allow variable declarations for
7195	previously declared variables.
7196	(Representation Clauses and Pragmas): Lift restriction on alignment
7197	clauses for record types.
7198	(Ada.Characters.*): Fix typo in reference to A.3.3(27).
7199	Document No_Exception_Propagation restriction
7200	Document No_Body pragma
7201	Updated to account for Ada 2005 support; corrected some typos
7202	(Implementation Defined Pragmas): Document pragma Universal_Aliasing.
7203
7204	* gnat-style.texi: Make it clear that we never use mode IN for
7205	procedures or functions
7206
7207	* ug_words: Add entries for -gnatw.x and -gnatw.X
7208	Add entries for -gnatw.c/.C
7209
72102007-06-06  Pascal Obry  <obry@adacore.com>
7211	    Vincent Celier  <celier@adacore.com>
7212
7213	* makegpr.adb (Add_Archive_Path): Use untouched object and library
7214	dirs and library name.
7215	(Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
7216	comments.
7217	(Build_Library): Idem.
7218	(Compile_Individual_Sources): Idem.
7219	(Compile_Link_With_Gnatmake): Idem.
7220	(Compile_Sources): Idem.
7221	(Get_Imported_Directories): Idem.
7222	(Link_Executables): Idem. Same change for the executable dir.
7223	(Check_Compilation_Needed): C_Source_Path new variable containing
7224	the canonical form of Source_Path to check against the source names
7225	in the dependency file.
7226	(Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
7227	verbose mode, display the name of the object directory we're changing
7228	to.
7229	(Saved_Switches): New name of table X_Switches
7230	(Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
7231	(Usage): New line for switch -aP
7232	(Get_Imported_Directories.Add): Make sure that Add_Arg is True before
7233	testing if a directory should be added to the search path.
7234
72352007-06-06  Javier Miranda  <miranda@adacore.com>
7236
7237	* a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
7238	a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
7239	declaration after freezing point of all its associated tagged types;
7240	otherwise such types are frozen too early.
7241
72422007-06-06  Robert Dewar  <dewar@adacore.com>
7243
7244	* a-reatim.adb: Documentation addition
7245
7246	* g-cgideb.adb: Minor code reorganization
7247
7248	* tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
7249	mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
7250	s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
7251
7252	* debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
7253	function.  Change name New_Scope to Push_Scope
7254	(Get_Debug_Flag_K): Remove unused obsolete function.
7255
7256	* exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
7257	Push_Scope.
7258
7259	* makeusg.adb: Update Copyright notice
7260	Add line for switch -aP
7261
7262	* makeusg.adb: Fix wording of some usage messages
7263
7264	* s-assert.adb (Raise_Assert_Failure): Add call to
7265	Debug_Raise_Assert_Failure.
7266
7267	* s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
7268	(2, Standard'Alignment) for compatibility with AAMP (where alignment
7269	is restricted to 1).
7270
7271	* s-wchjis.adb: Remove use of System.Pure_Exceptions
7272
7273	* tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
7274	node location to No_Location when we're not debugging the expanded
7275	code.
7276
72772007-05-22  Alexandre Oliva  <aoliva@redhat.com>
7278
7279	* misc.c (enumerate_modes): Consider log2_b to always be one.
7280
72812007-05-14  Rafael Ávila de Espíndola  <espindola@google.com>
7282
7283	* misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
7284
72852007-05-02  Pascal Obry  <obry@adacore.com>
7286
7287	* gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
7288	to use Stream_IO.File_Type. This is needed to make use of the UTF-8
7289	encoding support of Stream_IO.
7290	(Write_Unit): Idem.
7291
7292	* adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
7293	filename and corresponding encoding to match the OS requirement.
7294	(__gnat_file_exists): Do not call __gnat_stat() on Windows as this
7295	routine will fail on specific devices like CON: AUX: ...
7296
7297	PR ada/29856: Add missing braces
7298
72992007-04-22  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7300
7301	PR ada/31660
7302	* ada-tree.h (lang_tree_node): Fix typo in chain_next.
7303
73042007-04-21  Jan Hubicka  <jh@suse.cz>
7305
7306	* misc.c (gnat_expand_body): Don't call target for destructors,
7307	avoid redundant check on syntax errors.
7308
73092007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
7310
7311	* ada-tree.h (lang_tree_node): Use GENERIC_NEXT
7312	instead of checking GIMPLE_STMT_P in chain_next.
7313
73142007-04-17  Andreas Krebbel  <krebbel1@de.ibm.com>
7315
7316	PR ada/31576
7317	* system-linux-alpha.ads: Disable constant condition warning for the
7318	Default_Bit_Order variable.
7319	* system-linux-s390.ads: Likewise.
7320	* system-linux-s390x.ads: Likewise.
7321	* system-linux-sparc.ads: Likewise.
7322
73232007-04-06  Javier Miranda  <miranda@adacore.com>
7324	    Matt Heaney  <heaney@adacore.com>
7325	    Robert Dewar  <dewar@adacore.com>
7326
7327	a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
7328	a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
7329	a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
7330	a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
7331	a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
7332	a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
7333	a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
7334	a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
7335	a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
7336	a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
7337	a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
7338	a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
7339	a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
7340	a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
7341	a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
7342	a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
7343	a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
7344	i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
7345	unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
7346	a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
7347	a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
7348	a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
7349	expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
7350	s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
7351	s-taprop-tru64.adb, s-taprop-irix.adb,
7352	s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
7353	s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
7354	s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
7355	s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
7356	s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
7357	a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
7358	a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
7359	g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
7360	s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
7361	s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
7362	s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
7363	s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
7364	s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
7365	s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
7366	a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
7367	a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
7368	a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
7369	a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
7370	a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
7371	a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
7372	access types.
7373	Update documentation.
7374	Minor rewording.
7375
73762007-04-06  Robert Dewar  <dewar@adacore.com>
7377
7378	* system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
7379	system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7380	system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
7381	system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
7382	system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
7383	system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7384	system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7385	system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
7386	system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
7387	system-hpux-ia64.ads, targparm.adb,
7388	targparm.ads (Functions_Return_By_DSP_On_Target): Removed
7389
7390	* system.ads: Move Functions_Return_By_DSP to obsolete section,
7391	kept for bootstrap purposes only.
7392
73932007-04-06  Arnaud Charlet  <charlet@adacore.com>
7394
7395	* s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
7396	s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
7397	s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
7398	(PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
7399
74002007-04-06  Robert Dewar  <dewar@adacore.com>
7401
7402	* a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
7403	(Local_Raise): New dummy procedure called when a raise is converted
7404	to a local goto. Used for debugger to detect that the exception
7405	is raised.
7406
7407	* debug.adb: Document new d.g flag (expand local raise statements to
7408	gotos even if pragma Restriction (No_Exception_Propagation) is not set)
7409
7410	* exp_sel.adb: Use Make_Implicit_Exception_Handler
7411
7412	* exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
7413	suppress warnings for unused handlers.
7414	(Warn_If_No_Propagation):  Use new flag -gnatw.x to suppress
7415	warnings for raise statements not handled locally.
7416	(Get_RT_Exception_Entity): New function
7417	(Get_Local_Call_Entity): New function
7418	(Find_Local_Handler): New function
7419	(Warn_If_No_Propagation): New procedure
7420	(Expand_At_End_Handler): Call Make_Implicit_Handler
7421	(Expand_Exception_Handlers): Major additions to deal with local handlers
7422	(Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
7423	Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
7424	for local raise
7425
7426	* exp_ch11.ads (Get_RT_Exception_Entity): New function
7427	(Get_Local_Call_Entity): New function
7428
7429	* gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
7430	of restrictions that the binder will never suggest adding.
7431
7432	* par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
7433	to No_Elist.
7434
7435	* restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
7436	be with'ed in the presence of pragma Restriction
7437	(No_Exception_Propagation).
7438
7439	* sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
7440
7441	* sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
7442	parameter, then the handler is not a suitable target for a local raise,
7443	and this is a violation of restriction No_Exception_Propagation.
7444	(Analyze_Handled_Statements): Analyze choice parameters in exception
7445	handlers before analyzing statement sequence (needed for proper
7446	detection of local raise statements).
7447	(Analyze_Raise_Statement): Reraise statement is a violation of the
7448	No_Exception_Propagation restriction.
7449
7450	* s-rident.ads: Add new restriction No_Exception_Propagation
7451
7452	* tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
7453	function, like Make_Exception_Handler but sets Local_Raise_Statements
7454	to No_List.
7455	(Add_Unique_Serial_Number): Deal with case where this is called during
7456	processing of configuration pragmas.
7457
74582007-04-06  Thomas Quinot  <quinot@adacore.com>
7459	    Pat Rogers  <rogers@adacore.com>
7460	    Pascal Obry  <obry@adacore.com>
7461
7462	* g-stsifd-sockets.adb: New file.
7463
7464	* g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
7465	g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
7466	g-socthi-vms.adb: Move signalling
7467	fd management to a nested package, so that they can conveniently be
7468	moved to a subunit that is shared across Windows, VMS, and VxWorks
7469	(Ada implementation) or completed with imported bodies from socket.c
7470	(UNIX case).
7471	(Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
7472	subprograms.
7473	(Check_Selector): Use Read_Signalling_Fd to read and discard data from
7474	the signalling file descriptor.
7475	(Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
7476	signalling file descriptor.
7477	(Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
7478	instead of creating a pair of sockets for signalling here.
7479
7480	* g-socthi.adb: Ditto.
7481	Set the runtime process to ignore SIGPIPEs on platforms that support
7482	neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7483
7484	* g-socthi-mingw.adb: Ditto.
7485	(WS_Version): Use Windows 2.2.
7486	Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7487
7488	* g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
7489	Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
7490
7491	* Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
7492	added GNAT byte swapping facility
7493	Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
7494
7495	* g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
7496
7497	* socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
7498	New subprograms.
7499	(__gnat_create_signalling_fds): New subprogram.
7500	Set the runtime process to ignore SIGPIPEs on platforms that support
7501	neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
7502
75032007-04-06  Hristian Kirtchev  <kirtchev@adacore.com>
7504	    Vincent Celier  <celier@adacore.com>
7505
7506	* a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
7507	New version of Ada.Calendar which supports the new upper bound of Ada
7508	time (2399-12-31 86_399.999999999).
7509	The following modifications have been made to the package:
7510	 - New representation of time as count of nanoseconds since the start of
7511	   Ada time (1901-1-1 0.0).
7512	 - Target independent Split and Time_Of routines which service both
7513	   Ada 95 and Ada 2005 code.
7514	 - Target independent interface to the Ada 2005 children of Calendar.
7515	 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
7516	 - Handling of non-leap centenial years.
7517	 - Updated clock function.
7518	 - Updated arithmetic and comparison operators.
7519
7520	* a-caldel.adb (To_Duration): Add call to target independent routine in
7521	Ada.Calendar to handle the conversion of time to duration.
7522
7523	* sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
7524	(UTC Offset).
7525	If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
7526	set off to 0.
7527	(__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
7528	targets do not have a natural time zone, GMT is used as a default.
7529	(__gnat_get_task_options): New.
7530
7531	* a-direct.adb (Modification_Time): Add with and use clauses for
7532	Ada.Calendar and Ada.
7533	Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
7534	since it is no longer needed.
7535	(Duration_To_Time): Removed.
7536	(OS_Time_To_Long_Integer): Removed.
7537	(Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
7538	Formatting Time_Of routines which automatically handle time zones,
7539	buffer periods and leap seconds.
7540
7541	* a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
7542	target independent routines in Ada.Calendar.
7543
7544	* a-calfor.ads, a-calfor.adb:
7545	Code cleanup and addition of validity checks in various routines.
7546	(Day_Of_Week, Split, Time_Of): Add call to target independent routine in
7547	Ada.Calendar.
7548
7549	* a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
7550	independent routine in Ada.Calendar.
7551
75522007-04-06  Olivier Hainque  <hainque@adacore.com>
7553
7554	* adaint.c:
7555	(convert_addresses): Adjust prototype and dummy definition to expect an
7556	 extra file_name argument.
7557
7558	* gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
7559	filling the now expected file_name argument with the appropriate
7560	argv[0] expansion.
7561	(__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
7562	(tracebk): Array of void * instead of char *, corresponding to what
7563	 convert_addresses expects.
7564	(exename): New static global, to hold the executable file name to be
7565	used in all convert_addresses invocations.
7566	(gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
7567	change.
7568	(__gnat_gmem_a2l_initialize): Resolve exename.
7569	(__gnat_convert_addresses): Use exename as the convert_addresses
7570	file_name argument.
7571
7572	* g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
7573	"convert_addresses", now expecting a filename argument. Import the
7574	necessary entities to compute the filename to use and pass it to
7575	convert_addresses.
7576
75772007-04-06  Matt Gingell  <gingell@adacore.com>
7578
7579	* system-aix.ads: Back out previous change.
7580	(Functions_Return_By_DSP): Removed
7581
75822007-04-06  Pascal Obry  <obry@adacore.com>
7583
7584	* s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
7585	or the monotonic used by Ada.Real_Time) to compute the sleep duration
7586	on Windows.
7587
75882007-04-06  Jose Ruiz  <ruiz@adacore.com>
7589
7590	* s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
7591	function. Its value changes in different VxWorks versions, and it is
7592	now handled by the function __gnat_get_task_options.
7593
7594	* s-taprop-vxworks.adb (Create_Task): Call the function
7595	__gnat_get_task_options to get the required options for creating a task.
7596
75972007-04-06  Pascal Obry  <obry@adacore.com>
7598	    Thomas Quinot  <quinot@adacore.com>
7599
7600	* adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
7601	dealing with filename.
7602	(__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
7603	filename from a standard string to a wide-string depending on the
7604	encoding value.
7605	(__gnat_freopen): Idem.
7606	(__gnat_current_time): New function (wrapper for time(3) standard C
7607	function).
7608
7609	* g-os_lib.ads (Current_Time): New function. Returns the current
7610	system time as an OS_Time value.
7611
7612	* s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
7613	(Monotonic_Clock): Same.
7614
76152007-04-06  Quentin Ochem  <ochem@adacore.com>
7616
7617	* ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
7618	not on a natural.
7619	(Scan_ALI): Cancel the xref line if there has been a reading ALI error.
7620
76212007-04-06  Jose Ruiz  <ruiz@adacore.com>
7622
7623	* a-retide.adb: Add elaboration code to ensure that the tasking run
7624	time is initialized when using delay operations even when no task is
7625	created.
7626
76272007-04-06  Javier Miranda  <miranda@adacore.com>
7628
7629	* a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
7630	component Num_Prim_Ops.
7631	(Set_Num_Prim_Ops): Removed.
7632	Remove all the assertions because all the routines of this
7633	package are inline always.
7634	(Get_Offset_Index): Add support to primary dispatch tables.
7635	Move the documentation about the dispatch table to a-tags.ads
7636	(Set_External_Tag): Removed
7637	(Inherit_TSD): Removed.
7638	(Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
7639	moved to a-tags.ads
7640	(Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
7641	Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
7642	of the TSD field "Table" because this field has been renamed to
7643	"Ifaces_Table".
7644	(Inherit_CPP_DT): Removed.
7645	(K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
7646	Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
7647	declarations have been moved to a-tags.ads
7648	(Check_Size): Removed.
7649	(Expanded_Name): Updated to get access to the new field of TSD
7650	containing the address of the expanded name.
7651	(Get_Access_Level/Set_Access_Level): Removed.
7652	(Get_Predefined_Prim_Op_Address): Removed.
7653	(Set_Predefined_Prim_Op_Address): Removed.
7654	(Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
7655	(Get_Remotely_Callable/Set_Remotely_Callable): Removed.
7656	(Set_Expanded_Name): Removed.
7657	(Inherit_DT): Removed.
7658	(Inherit_CPP_DT): Removed.
7659	(Set_RC_Offset): Removed.
7660	(Set_TSD): Removed.
7661	(Base_Address): New function that displaces "this" to point to the base
7662	of the object (that is, to point to the primary tag of the object).
7663
76642007-04-06  Ed Schonberg  <schonberg@adacore.com>
7665	    Javier Miranda  <miranda@adacore.com>
7666
7667	* exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
7668	anonymous access component, do not create a master_id if type already
7669	has one, as may happen if the type is a subcomponent of a packed array
7670	type.
7671	(Build_Init_Procedure, Component_Needs_Simple_Initialization,
7672	Initialize_Tag): Remove code associated with the old CPP pragmas.
7673	CPP_Virtual and CPP_Vtable are no longer supported.
7674	(Build_Offset_To_Top_Internal): Add support for concurrent record types
7675	(Build_Offset_To_Top_Functions): Add support for concurrent record types
7676	(Freeze_Record_Type): Remove call to
7677	Init_Predefined_Interface_Primitives.
7678	(Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
7679	code required to initialize the tags of the secondary dispatch tables.
7680	This leaves the algoritm more clear.
7681	(Init_Secondary_Tags): Add support for concurrent record types
7682	(Make_Predefined_Primitive_Specs): Code cleanup.
7683	(Predefined_Primitive_Bodies): Code cleanup.
7684	(Build_Master_Renaming): New local subprogram.
7685	(Expand_N_Full_Type_Declaration): Build the master_id associated with
7686	anonymous access to task type components.
7687	(Expand_N_Subtype_Indication): The bounds of a range constraint in a
7688	subtype indication are resolved during analysis, and must not be done
7689	here.
7690	(Stream_Operation_OK): Check Restriction_Active before RTE_Available.
7691
76922007-04-06  Geert Bosch  <bosch@adacore.com>
7693	    Ed Schonberg  <schonberg@adacore.com>
7694	    Javier Miranda  <miranda@adacore.com>
7695	    Bob Duff  <duff@adacore.com>
7696
7697	* exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
7698	for conversion of a Float_Type'Truncation to integer.
7699
7700	* exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
7701	check if a node is an attribute that can be handled directly by the
7702	back end.
7703	(Expand_N_Attribute_Reference): Suppress expansion of floating-point
7704	attributes that can be handled directly by the back end.
7705	(Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
7706	use new predicate Is_Access_Protected_Subprogram_Type.
7707	(Expand_N_Attribute_Reference, case 'Write): The reference is legal for
7708	and Unchecked_Union if it is generated as part of the default  Output
7709	procedure for a type with default discriminants.
7710	(Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
7711	if we are compiling under restriction No_Dispatching_Calls.
7712	(Constrained): Use Underlying_Type, in case the type is private without
7713	discriminants, but the full type has discriminants.
7714	(Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
7715	call to Build_Get_Access_Level.
7716	(Expand_N_Attribute_Reference): The use of 'Address with class-wide
7717	interface objects requires a call to the run-time subprogram that
7718	returns the base address of the object.
7719	(Valid_Conversion): Improve error message on illegal attempt to store
7720	an anonymous access to subprogram value into a record component.
7721
7722	* sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
7723	null".
7724	(Simplify_Type_Conversion): New procedure that performs simplification
7725	of Int_Type (Float_Type'Truncation (X)).
7726	(Resolve_Type_Conversion): Call above procedure after resolving operand
7727	and before performing checks. This replaces the existing ineffective
7728	code in Exp_Ch4.
7729	(Set_String_Literal_Subtype): When creating the internal static lower
7730	bound subtype for a string literal, use a newly created copy of the
7731	subtree representing the lower bound.
7732	(Resolve_Call): Exclude build-in-place function calls from transient
7733	scope treatment. Update comments to describe this exception.
7734	(Resolve_Equality_Op): In case of dispatching call check violation of
7735	restriction No_Dispatching_Calls.
7736	(Resolve_Call): If the call returns an array, the context imposes the
7737	component type of the array, and the function has one non-defaulted
7738	parameter, rewrite the call as the indexing of a call with a single
7739	parameter, to handle an Ada 2005 syntactic ambiguity for calls written
7740	in prefix form.
7741	(Resolve_Actuals): If an actual is an allocator for an access parameter,
7742	the master of the created object is the innermost enclosing statement.
7743	(Remove_Conversions): For a binary operator, check if type of second
7744	formal is numeric, to check if an abstract interpretation is present
7745	in the case of exponentiation as well.
7746
77472007-04-06  Ed Schonberg  <schonberg@adacore.com>
7748	    Bob Duff  <duff@adacore.com>
7749
7750	* atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
7751	copying a parameter list in a call, set properly the First_Named_Formal
7752	and Next_Named_Formal fields in the new list and in the enclosing call.
7753	(Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
7754	names, to ease typing in the debugger. Improve comments.
7755	(Watch_Node): New variable, intended to be set in the debugger.
7756	(New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
7757	called when the watched node is created.
7758	(New_Node_Debugging_Output): Combined version of local procedures
7759	New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
7760	with a parameter so that conditional breakpoints like "if Node = 12345"
7761	work.
7762	(New_Node, New_Entity): Call the global New_Node_Debugging_Output.
7763	Add Elist1 function
7764
77652007-04-06  Thomas Quinot  <quinot@adacore.com>
7766	    Ed Schonberg  <schonberg@adacore.com>
7767	    Gary Dismukes  <dismukes@adacore.com>
7768
7769	* checks.ads, checks.adb (Selected_Range_Checks): No range check is
7770	required for a conversion between two access-to-unconstrained-array
7771	types.
7772	(Expr_Known_Valid): Validity checks do not apply to discriminants, but
7773	to discriminant constraints on discriminant objects. This rule must
7774	apply as well to discriminants of protected types in private components.
7775	(Null_Exclusion_Static_Checks): If No_Initialization is set on an
7776	object of a null-excluding access type then don't require the
7777	the object declaration to have an expression and don't emit a
7778	run-time check.
7779
77802007-04-06  Arnaud Charlet  <charlet@adacore.com>
7781	    Eric Botcazou  <botcazou@adacore.com>
7782
7783	* gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
7784	and made constant.
7785
7786	* comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
7787	Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
7788	carry any.
7789
7790	* fe.h (Compiler_Abort): Add third parameter.
7791
7792	* misc.c (internal_error_function): Build third argument from current
7793	input location and pass it to Compiler_Abort.
7794
77952007-04-06  Gary Dismukes  <dismukes@adacore.com>
7796
7797	* cstand.adb (Create_Standard): When the target's storage unit size is
7798	greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
7799	Standard_String.
7800
78012007-04-06  Nicolas Roche  <roche@adacore.com>
7802
7803	* cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
7804	absolute path can have the following form: device:/a/b. In this case
7805	'/' should be inserted between the path and the filename.
7806
78072007-04-06  Olivier Hainque  <hainque@adacore.com>
7808	    Eric Botcazou  <botcazou@adacore.com>
7809
7810	* decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
7811	VAR_DECL to a CONST_DECL we make for a public constant when we know the
7812	corresponding definition has created the so made visible variable.
7813	Handle anonymous access to protected subprogram.
7814	(gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
7815	object with an address clause volatile.  Re-enable original fix.
7816	<E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
7817	too.
7818	(gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
7819	associated with either the Equivalent or Root type, instead of the
7820	naked type node.
7821	(gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
7822	subtree for every field of a global record type.
7823	(gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
7824	discriminants, invoke again variable_size on its newly computed sizes.
7825
78262007-04-06  Robert Dewar  <dewar@adacore.com>
7827	    Thomas Quinot  <quinot@adacore.com>
7828	    Ed Schonberg  <schonberg@adacore.com>
7829	    Bob Duff  <duff@adacore.com>
7830
7831	* einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
7832	(Next_Component_Or_Discriminant): New function and procedure
7833	(First_Index, First_Literal, Master_Id,
7834	Set_First_Index, Set_First_Literal, Set_Master_Id):
7835	Add missing Ekind assertions.
7836	(Is_Access_Protected_Subprogram_Type): New predicate.
7837	(Has_RACW): New entity flag, set on package entities to indicate that
7838	the package contains the declaration of a remote accecss-to-classwide
7839	type.
7840	(E_Return_Statement): This node type has the Finalization_Chain_Entity
7841	attribute, in case the result type has controlled parts.
7842	(Requires_Overriding): Add this new flag, because "requires
7843	overriding" is subtly different from "is abstract" (see AI-228).
7844	(Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
7845	Is_Abstract_Type. Make sure these are called only when appropriate.
7846	(Has_Pragma_Unreferenced_Objects): New flag
7847
7848	* exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
7849	class-wide, the tag of the right-hand side must be an exact match, not
7850	an ancestor of that of the object on left-hand side.
7851	(Move_Activation_Chain): New procedure to create the call to
7852	System.Tasking.Stages.Move_Activation_Chain.
7853	(Expand_N_Extended_Return_Statement): Generate code to call
7854	System.Finalization_Implementation.Move_Final_List at the end of a
7855	return statement if the function's result type has controlled parts.
7856	Move asserts to Build_In_Place_Formal.
7857	(Move_Final_List): New function to create the call statement.
7858	(Expand_N_Assignment_Statement): In case of assignment to a class-wide
7859	tagged type, replace generation of call to the run-time subprogram
7860	CW_Membership by call to Build_CW_Membership.
7861	(Expand_N_Return_Statement): Replace generation of call to the run-time
7862	subprogram Get_Access_Level by call to Build_Get_Access_Level.
7863	(Expand_N_Simple_Function_Return): Replace generation of call to the
7864	run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
7865
7866	* exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
7867	Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
7868	access to protected operations.
7869	(Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
7870	master and chain actual parameters to a build-in-place function call
7871	involving tasks.
7872	(BIP_Formal_Suffix): Add new enumeration literals to complete the case
7873	statement.
7874	(Make_Build_In_Place_Call_In_Allocator,
7875	Make_Build_In_Place_Call_In_Anonymous_Context,
7876	Make_Build_In_Place_Call_In_Assignment,
7877	Make_Build_In_Place_Call_In_Object_Declaration): Call
7878	Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
7879	(Expand_Inlined_Call): If the subprogram is a null procedure, or a
7880	stubbed procedure with a null body, replace the call with a null
7881	statement without using the full inlining machinery, for efficiency
7882	and to avoid invalid values in source file table entries.
7883
7884	* exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
7885	renamings of calls to build-in-place functions.
7886
7887	* rtsfind.adb (RTE_Record_Component_Available): New subprogram that
7888	provides the functionality of RTE_Available to record components.
7889	(RTU_Entity): The function Entity has been renamed to RTU_Entity
7890	to avoid undesired overloading.
7891	(Entity): New subprogram that returns the entity for the referened
7892	unit. If this unit has not been loaded, it returns Empty.
7893	(RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
7894	Remove no longer used entities.
7895	(RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
7896	(RE_Type_Specific_Data): New entity.
7897	(RE_Move_Any_Value): New entity.
7898	(RE_TA_A, RE_Get_Any_Type): New entities.
7899	(RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
7900	 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
7901	 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
7902	(Entity): New subprogram that returns the entity for the referened
7903	unit. If this unit has not been loaded, it returns Empty.
7904	(RTE): Addition of a new formal that extends the search to the scopes
7905	of the record types found in the chain of the package.
7906
7907	* sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
7908	"abstract subprograms must be visible" message, whether or not the type
7909	is an interface; that is, remove the special case for interface types.
7910	(Analyze_Function_Return): Remove error message "return of task objects
7911	is not yet implemented" because this is now implemented.
7912	(Create_Extra_Formals): Add the extra master and activation chain
7913	formals in case the result type has tasks.
7914	Remove error message "return of limited controlled objects is not yet
7915	implemented".
7916	(Create_Extra_Formals): Add the extra caller's finalization list formal
7917	in case the result type has controlled parts.
7918	(Process_Formals): In case of access formal types there is no need
7919	to continue with the analysis of the formals if we already notified
7920	errors.
7921	(Check_Overriding_Indicator): Add code to check overriding of predefined
7922	operators.
7923	(Create_Extra_Formals): Prevent creation of useless Extra_Constrained
7924	flags for formals that do not require them,.
7925	(Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
7926	hidden entity is use visible or directly visible.
7927	(Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
7928	Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
7929	Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
7930	New_Overloaded_Entity): Split Is_Abstract flag into
7931	Is_Abstract_Subprogram and Is_Abstract_Type.
7932
7933	* s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
7934	a return statement's finalization list to the caller's list, used for
7935	build-in-place functions with result type with controlled parts.
7936	Remove no longer used entities.
7937
7938	* s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
7939	longer needed, because the full type is now limited, and therefore a
7940	pass-by-reference type.
7941	(Foreign_Task_Level): New constant.
7942
7943	* s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
7944	move tasks from the activation chain belonging to a return statement to
7945	the one passed in by the caller, and update the master to the one
7946	passed in by the caller.
7947	(Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
7948	of unactivated tasks, so we don't kill the ones that are being returned
7949	by a build-in-place function.
7950	(Create_Task): Ignore AI-280 for foreign threads.
7951
79522007-04-06  Ed Schonberg  <schonberg@adacore.com>
7953	    Robert Dewar  <dewar@adacore.com>
7954	    Bob Duff  <duff@adacore.com>
7955	    Gary Dismukes  <dismukes@adacore.com>
7956
7957	* errout.adb (Unwind_Internal_Type): Use predicate
7958	Is_Access__Protected_Subprogram_Type.
7959
7960	* freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
7961	(Freeze_Entity, packed array case): Do not override explicitly set
7962	alignment and size clauses.
7963	(Freeze_Entity):  An entity declared in an outer scope can be frozen if
7964	the enclosing subprogram is a child unit body that acts as a spec.
7965	(Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
7966	(Freeze_Record_Type): New Ada 2005 processing for reverse bit order
7967	Remove all code for DSP option
7968
7969	* layout.adb (Layout_Record_Type): Use First/
7970	Next_Component_Or_Discriminant
7971	(Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
7972	to handle properly the anonymous access case.
7973
7974	* sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
7975	for all access attributes, because overload resolution should work the
7976	same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
7977	causes the error message for the ambiguous "X'Access = Y'Access" and
7978	"X'Unrestricted_Access = Y'Access" and so forth to match.
7979	(Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
7980	now that anonymous access to protected operations have their own kind.
7981	(Resolve_Attribute): In case of dispatching call check the violation of
7982	restriction No_Dispatching_Calls.
7983	(Check_Array_Type): Check new -gnatyA array index style option
7984
7985	* sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
7986	attempt to derive from a synchronized tagged type.
7987	(Analyze_Type_Declaration): If there is a incomplete tagged view of the
7988	type, inherit the class-wide type already created, because it may
7989	already have been used in a self-referential anonymous access component.
7990	(Mentions_T): Recognize self-referential anonymous access components
7991	that use (a subtype of) the class-wide type of the enclosing type.
7992	(Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
7993	Derived_Type for Prev formal on call to
7994	Check_Anonymous_Access_Components rather than Empty.
7995	(Make_Incomplete_Type_Declaration): Add test for case where the type has
7996	a record extension in deciding whether to create a class-wide type,
7997	rather than just checking Tagged_Present.
7998	(Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
7999	to stand-alone object declarations as well as component declarations.
8000	(Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
8001	prevent accidental overwriting when enclosing package appears in
8002	a limited_with_clause.
8003	(Array_Type_Declaration): If the component type is an anonymous access,
8004	the associated_node for the itype is the type declaration itself.
8005	(Add_Interface_Tag_Components): Modified to support concurrent
8006	types with abstract interfaces.
8007	(Check_Abstract_Interfaces): New subprogram that verifies the ARM
8008	rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
8009	(Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
8010	to complete the decoration of synchronized interface types. Add also
8011	a call to Check_Abstract_Interfaces to verify the ARM rules.
8012	(Derive_Interface_Subprograms): Modified to support concurrent types
8013	with abstract interfaces.
8014	(Analyze_Subtype_Indication): Resolve the range with the given subtype
8015	mark, rather than delaying the full resolution depending on context.
8016	(Analyze_Component_Declaration,Analyze_Interface_Declaration,
8017	Analyze_Object_Declaration,Analyze_Subtype_Declaration,
8018	Array_Type_Declaration,Build_Derived_Record_Type,
8019	Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
8020	Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
8021	Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
8022	Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8023	called only when appropriate.
8024	(Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
8025	to private type.
8026	(Analyze_Subtype_Declaration): For an access subtype declaration, create
8027	an itype reference for the anonymous designated subtype, to prevent
8028	scope anonmalies in gigi.
8029	(Build_Itype_Reference): New utility, to simplify construction of such
8030	references.
8031
80322007-04-06  Vincent Celier  <celier@adacore.com>
8033
8034	* errutil.adb (Initialize): Initialize warnings table, if all warnings
8035	are suppressed, supply an initial dummy entry covering all possible
8036	source locations.
8037
8038	* make.adb (Scan_Make_Arg): Reject options that should start with "--"
8039	and start with only one, such as "-RTS=none".
8040	(Collect_Arguments): Do not check for sources outside of projects.
8041	Do not collect arguments if project is externally built.
8042	(Compile_Sources): Do nothing, not even check if the source is up to
8043	date, if its project is externally built.
8044	(Compile): When compiling a predefined source, add -gnatpg
8045	as the second switch, after -c.
8046	(Compile_Sources): Allow compilation of Annex J renames without -a
8047	(Is_In_Object_Directory): Check if the ALI file is in the object
8048	even if there is no project extension.
8049	(Create_Binder_Mapping_File): Only put a unit in the mapping file for
8050	gnatbind if the ALI file effectively exists.
8051	(Initialize): Add the directory where gnatmake is invoked in front of
8052	the path if it is invoked from a bin directory, even without directory
8053	information, so that the correct GNAT tools will be used when spawned
8054	without directory information.
8055
8056	* makeusg.adb: Change switch -S to -eS
8057	Add lines for new switches -we, -wn and -ws
8058	Add line for new switch -p
8059
8060	* prj-proc.adb (Process): Set Success to False when Warning_Mode is
8061	Treat_As_Error and there are warnings.
8062
8063	* switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
8064	-gnatww Change gnatmake switch -S to -eS
8065	(Scan_Make_Switches): Code reorganisation. Process separately multi
8066	character switches and single character switches.
8067	(Scan_Make_Switches): New Boolean out parameter Success. Set Success to
8068	False when switch is not recognized by gnatmake.
8069	(Scan_Make_Switches): Set Setup_Projects True when -p or
8070	--create-missing-dirs is specified.
8071
8072	* fname.adb (Is_Predefined_File_Name): Return True for annex J
8073	renamings Calendar, Machine_Code, Unchecked_Conversion and
8074	Unchecked_Deallocation only when Renamings_Included is True.
8075
8076	* par.adb: Allow library units Calendar, Machine_Code,
8077	Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
8078	when -gnatg is not specified.
8079	(P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8080	there is no need to generate always a record_definition_node in case
8081	of synchronized interface types.
8082	(SIS_Entry_Active): Initialize global variable to False
8083	(P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
8084	indicate cases where AI-447 says "not null" is legal.
8085
8086	* makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
8087
8088	* makegpr.adb (Check_Compilation_Needed): Take into account dependency
8089	files with with several lines starting with the object fileb name.
8090	(Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
8091	is specified.
8092	(Initialize): Add the directory where gprmake is invoked in front of the
8093	path, if it is invoked from a bin directory or with directory
8094	information, so that the correct GNAT tools will be used when invoked
8095	directly.
8096	(Check_Compilation_Needed): Process correctly backslashes on Windows.
8097
8098	* vms_data.ads: Update switches/qualifiers
8099
81002007-04-06  Ed Schonberg  <schonberg@adacore.com>
8101	    Thomas Quinot  <quinot@adacore.com>
8102
8103	* exp_aggr.adb:
8104	If the array component is a discriminated record, the array aggregate
8105	is non-static even if the component is given by an aggregate with
8106	static components.
8107	(Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
8108	(Convert_Aggr_In_Allocator): If the allocator is for an access
8109	discriminant and the type is controlled. do not place on a finalization
8110	list at this point. The proper list will be determined from the
8111	enclosing object.
8112	(Build_Record_Aggr_Code): If aggregate has box-initialized components,
8113	initialize record controller if needed, before the components, to ensure
8114	that they are properly finalized.
8115	(Build_Record_Aggr_Code): For the case of an array component that has a
8116	corresponding array aggregate in the record aggregate, perform sliding
8117	if required.
8118
81192007-04-06  Javier Miranda  <miranda@adacore.com>
8120	    Gary Dismukes  <dismukes@adacore.com>
8121	    Ed Schonberg  <schonberg@adacore.com>
8122
8123	* exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
8124	run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
8125
8126	* exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
8127	accessibility on class-wide allocators if the allocator occurs at the
8128	same scope level as the allocator's type. The check is guaranteed to
8129	succeed in that case, even when the expression originates from a
8130	parameter of the containing subprogram.
8131	(Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
8132	under No_Dispatching_Calls restriction. During the semantic analysis
8133	we already notified such violation.
8134	(Tagged_Membership): Constant folding. There is no need to check
8135	the tag at run-time if the type of the right operand is non
8136	class-wide abstract.
8137	Replace call to Is_Ancestor by call to Is_Parent
8138	to support concurrent types with interface types.
8139	(Expand_N_Allocator): Add an assertion associated with the generation
8140	of the master_id.
8141	(Expand_N_Slice): Do not enable range check to nodes associated
8142	with the frontend expansion of the dispatch table.
8143	(Is_Local_Access_Discriminant): Subsidiary function to
8144	Expand_N_Allocator.
8145	(Tagged_Membership): Replace generation of call to the run-time
8146	subprogram CW_Membership by call to Build_CW_Membership.
8147	(Expand_Allocator_Expression): Replace generation of call to the
8148	run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
8149
8150	* exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
8151	initialize most the TSD components by means of an aggregate.
8152	Modify the declaration of the object containing the TSD
8153	because we now expand code that has a higher level of abstraction.
8154	The TSD has a discriminant containing the Inheritance Depth Level,
8155	value that is used in the membership test but also to fix the size
8156	of the table of ancestors.
8157	(Expand_Interface_Conversion): Insert function body at the closest place
8158	to the conversion expression, to prevent access-before-elaboration
8159	errors in the backend.
8160	Code improved to reduce the size of the dispatch table if
8161	compiling under restriction No_Dispatching_Calls plus code cleanup.
8162	Code reorganization plus removal of calls to Set_Num_Prim_Ops
8163	(Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
8164	(Expand_Dispatching_Call): Minor code reorganization plus addition of
8165	code to return immediately if compiling under No_Dispatching_Calls
8166	restriction.
8167	(Set_All_DT_Position): Remove code associated with the old CPP pragmas.
8168	CPP_Virtual and CPP_Vtable are no longer supported.
8169	(Expand_Interface_Conversion): Add missing support for interface type
8170	derivations.
8171	(Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
8172	Is_Parent to support concurrent types with interfaces.
8173	(Init_Predefined_Interface_Primitives): Removed.
8174	(Make_Secondary_DT): Modified to support concurrent record types.
8175	(Set_All_DT_Position): Modified to support concurrent record types.
8176	(Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8177	with Get_External_Tag, Inherit_TSD, Set_External_Tag.
8178	(Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
8179	with CW_Membership.
8180	(Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
8181	with Get_Access_Level, Get_Predefined_Prim_Op_Address,
8182	Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
8183	Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
8184	Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
8185	(Expand_Dispatching_Call): Replace generation of call to the run-time
8186	subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
8187	calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
8188	Address.
8189	(Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
8190	the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
8191	Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
8192	Build_Set_Prim_Op_Address.
8193	(Get_Remotely_Callable): Subprogram removed.
8194	(Init_Predefined_Interface_Primitives): Replace generation of call to
8195	the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
8196	Prims.
8197
8198	* sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
8199	First (Parameter_Associations ()) with the call to First_Actual that
8200	returns an actual parameter expression for both named and positional
8201	associations.
8202
8203	* sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
8204	check violation of restriction No_Dispatching_Calls.
8205	(Check_Controlling_Type): A formal of a tagged incomplete type is a
8206	controlling argument.
8207
8208	* exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
8209	First/Next_Component_Or_Discriminant
8210	(Insert_Actions): Add entries for new N_Push and N_Pop nodes
8211	(Find_Implemented_Interface): Removed. All the calls to this subprogram
8212	specify Any_Limited_Interface, and this functionality is already
8213	provided by the function Has_Abstract_Interfaces.
8214	(Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
8215	support concurrent types implementing interfaces.
8216	(Find_Implemented_Interface): Removed. All the calls to this subprogram
8217	specify kind Any_Limited_Interface, and this functionality is already
8218	provided by the function Has_Abstract_Interfaces.
8219	(Remove_Side_Effects): replace Controlled_Type by
8220	CW_Or_Controlled_Type whenever the issue is related to
8221	using or not the secondary stack.
8222
8223	* par-ch12.adb (P_Formal_Type_Definition): Update calls to
8224	P_Interface_Type_Definition to fulfill the new interface (the formal
8225	Is_Synchronized is no longer required).
8226
8227	* Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
8228	Update dependencies.
8229
8230	* exp_atag.ads, exp_atag.adb: New file
8231
82322007-04-06  Ed Schonberg  <schonberg@adacore.com>
8233	    Bob Duff  <duff@adacore.com>
8234	    Cyrille Comar  <comar@adacore.com>
8235
8236	* exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
8237	anonymous, use finalization list of enclosing dynamic scope.
8238	(Expand_N_Package_Declaration): For a library package declaration
8239	without a corresponding body, generate RACW subprogram bodies in the
8240	spec (just as we do for the task activation call).
8241	(Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
8242	Is_Abstract_Type. Make sure these are called only when appropriate.
8243	Remove all code for DSP option
8244	(CW_Or_Controlled_Type): new subprogram.
8245
82462007-04-06  Eric Botcazou  <botcazou@adacore.com>
8247	    Ed Schonberg  <schonberg@adacore.com>
8248	    Gary Dismukes  <dismukes@adacore.com>
8249
8250	* exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
8251	parameter. If it is set to true, return a result capped according to
8252	the global upper bound for the index of an entry family.
8253	(Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
8254	(Build_Find_Body_Index): Adjust for above change.
8255	(Entry_Index_Expression): Likewise.
8256	(Is_Potentially_Large_Family): New function extracted from...
8257	(Collect_Entry_Families): ...here. Call it to detect whether the family
8258	is potentially large.
8259	(Build_Entry_Count_Expression): If the family is potentially large, call
8260	Family_Size with 'Cap' set to true.
8261	(Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
8262	a protected version of an operation declared in the private part of
8263	a protected object, because they may be invoked through a callback.
8264	(Set_Privals): If the type of a private component is an anonymous access
8265	type, do not create a new itype for each protected body.
8266	If the body of a protected operation creates
8267	controlled types (including allocators for class-widetypes), the
8268	body of the corresponding protected subprogram must include a
8269	finalization list.
8270	(Build_Activation_Chain_Entity): Build the chain entity for extended
8271	return statements.
8272	(Type_Conformant_Parameters): Use common predicate Conforming_Types
8273	to determine whether operation overrides an inherited primitive.
8274	(Build_Wrapper_Spec): Add code to examine the parents while looking
8275	for a possible overriding candidate.
8276	(Build_Simple_Entry_Call): Set No_Initialization on the object used to
8277	hold an actual parameter value since its initialization is separated
8278	from the the declaration. Prevents errors on null-excluding access
8279	formals.
8280
82812007-04-06  Thomas Quinot  <quinot@adacore.com>
8282	    Pablo Oliveira  <oliveira@adacore.com>
8283
8284	* exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
8285	Do an Unchecked_Conversion to handle the passage from the Underlying
8286	Type to the Base Type when calling Build_To_Any_Call and
8287	Build_From_Any_Call.
8288	(Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
8289	E_Constant, depending upon Variable formal.
8290	(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8291	PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
8292	parameter that requires an extra constrained parameter, declare
8293	temporary for actual as a variable, not a constant.
8294	(Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
8295	the unit being compiled is the one that contains the stub type.
8296	Change primitive operation name for the RACW associated with a RAS
8297	from Call to _Call so it cannot clash with any legal identifier.
8298	(PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
8299	Is_RAS.
8300	(Append_RACW_Bodies): New subprogram.
8301	(Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
8302	Add_Receiving_Stubs_To_Declarations functions.
8303	When expanding a package body, this list correspond to the
8304	statements in the HSS at the end of the pacakge.
8305	When expanding a package spec, this list correspond to the
8306	spec declarations.
8307	(Add_Receiving_Stubs_To_Declarations): Append the function
8308	registering the receiving stubs at the end of the 'Stmts' list.
8309	(RCI_Package_Locator): Pass the new Version generic formal when
8310	instantiating a RCI_Locator package.
8311	(Build_From_Any_Function): To compute the High bound for an
8312	unconstrained array actual, we add the Low bound with the length.
8313	Thus we must convert the low bound and the length to an appropriate
8314	type before doing the sum.
8315	(Build_Subprogram_Receiving_Stubs, PolyORB):
8316	 * Retrieve the extra formals parameters at the
8317	   end of the parameter stream.
8318	 * Use Move_Any_Value to write back out parameters
8319	   after executing the request as it is more efficient
8320	   than Copy_Any_Value.
8321	 * Build the any containing Extra Formals with the
8322	   appropriate typecode.
8323	(PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
8324	empty Component_List.
8325	(Build_Actual_Object_Declaration): New subprogram. Build and insert into
8326	the tree the declaration for an object that serves as actual parameter
8327	in server-side stubs.
8328	(GARLIC_Support.Build_Subprogram_Receiving_Stubs,
8329	PolyORB_Support.Build_Subprogram_Receiving_Stubs):
8330	Use Build_Actual_Object_Declaration to prepare the actuals.
8331	(Add_Parameter_To_NVList): Set the parameter mode to In for
8332	Extra Constrained Parameters.
8333	(Build_General_Calling_Stubs): Set the parameter type to boolean for
8334	Extra Constrained parameters.
8335	(Build_To_Any_Function, Build_From_Any_Function,
8336	Built_TypeCode_Function): When Typ is implicit, call the correct
8337	function with the first not implicit parent type.
8338	(TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
8339	(FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
8340	typecode from the Etype. Therefore we retrieve the correct typecode
8341	with a call to Get_Any_Type.
8342	(Copy_Specification): Do controlling formal type substitution based on
8343	Is_Controlling_Formal flag, instead of caller-provided object type.
8344	(Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
8345	a RACW primitive operation, we might get a subprogram declaration for an
8346	ancestor of the RACW designated type (not for the designated type
8347	itself), in the case where this operation is inherited. In this case we
8348	have no easy means of determining the original tagged type for which
8349	the primitive was declared, so instead we now rely on
8350	Copy_Specification to use the Is_Controlling_Formal flag to determine
8351	which formals require type substitution.
8352
83532007-04-06  Robert Dewar  <dewar@adacore.com>
8354	    Ed Schonberg  <schonberg@adacore.com>
8355
8356	* exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
8357	GNAT.Current_Exception are not allowed if pragma Restrictions
8358	(No_Exception_Propagation) is set and in any case make the associated
8359	handler unsuitable as a target for a local raise statement.
8360	(Expand_Dispatching_Constructor_Call): Replace generation of call to the
8361	run-time subprogram CW_Membership by call to Build_CW_Membership.
8362	(Expand_Dispatching_Constructor_Call): If the dispatching tag is given
8363	by a function call, a temporary must be created before expanding the
8364	Constructor_Call itself, to prevent out-of-order elaboration in the
8365	back-end when stack checking is enabled..
8366
83672007-04-06  Ed Schonberg  <schonberg@adacore.com>
8368
8369	* exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
8370	result are the bounds of the left operand, not the right.
8371
83722007-04-06  Ed Schonberg  <schonberg@adacore.com>
8373
8374	* exp_strm.adb
8375	(Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
8376	 discriminant defaults.
8377	(Build_Record_Or_Elementary_Output_Procedure): Ditto.
8378	(Make_Component_List_Attributes): Ditto.
8379
83802007-04-06  Ed Schonberg  <schonberg@adacore.com>
8381	    Bob Duff  <duff@adacore.com>
8382
8383	* sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
8384	an association with a box as providing a value even though the
8385	initialization procedure for the type is not available.
8386	(Resolve_Record_Aggregate): Check that a choice of an association with a
8387	box corresponds to a component of the type.
8388	(Resolve_Record_Aggregate): Split Is_Abstract flag into
8389	Is_Abstract_Subprogram and Is_Abstract_Type.
8390
8391	* exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
8392	assert.
8393
8394	* inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
8395	Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
8396	called only when appropriate.
8397
83982007-04-06  Olivier Hainque  <hainque@adacore.com>
8399
8400	* g-alleve.ads (Low Level Vector type definitions): Map each to the
8401	associated vector view instead of all to the unsigned char view.
8402
8403	* g-altcon.adb (Generic_Conversions): New internal generic package,
8404	offering facilities for all the Vector/View conversion routines
8405	implemented by this unit.
8406	(To_View/To_Vector - all versions): Reimplemented in a systematic
8407	manner, using the internal Generic_Conversions facilities.
8408
84092007-04-06  Pascal Obry  <obry@adacore.com>
8410
8411	* g-arrspl.adb (Free) [Element_Access]: New routine to free the source
8412	string.
8413	(Create): Free the source string before storing the new one.
8414
84152007-04-06  Vincent Celier  <celier@adacore.com>
8416
8417	* g-debpoo.adb (Validity): New package with a complete new
8418	implementation of subprograms Is_Valid and Set_Valid.
8419	(Is_Valid): Move to local package Validity
8420	(Set_Valid): Move to local package Validity
8421
84222007-04-06  Arnaud Charlet  <charlet@adacore.com>
8423	    Pablo Oliveira  <oliveira@adacore.com>
8424
8425	* g-expect.adb (Get_Command_Output): When expanding the output buffer
8426	we must ensure that there is enough place for the new data we are going
8427	to copy in.
8428
84292007-04-06  Thomas Quinot  <quinot@adacore.com>
8430
8431	* g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
8432	computation.
8433
84342007-04-06  Jose Ruiz  <ruiz@adacore.com>
8435	    Vincent Celier  <celier@adacore.com>
8436
8437	* gnatcmd.adb (B_Start): Add prefix of binder generated file.
8438	(Stack_String): Add this String that contains the name of the Stack
8439	package in the project file.
8440	(Packages_To_Check_By_Stack): Add this list that contains the packages
8441	to be checked by gnatstack, which are the naming and the stack packages.
8442	(Check_Files): If no .ci files were specified for gnatstack we add all
8443	the .ci files belonging to the projects, including binder generated
8444	files.
8445	(Non_VMS_Usage): Document that gnatstack accept project file switches.
8446	(GNATCmd): Update the B_Start variable if we are in a VMS environment.
8447	Add gnatstack to the list of commands that use project file related
8448	switches, and get the single attribute Switches from the stack package
8449	in a project file when calling gnatstack. Parse the -U flag for
8450	processing files belonging to all projects in the project tree.
8451	Remove all processing for command Setup
8452
8453	* prj-attr.adb: Add new package Stack with single attribute Switches
8454
8455	* vms_conv.ads (Command_Type): Add command Stack.
8456	Move to body declarations that are only used in the body: types Item_Id,
8457	Translation_Type, Item_Ptr, Item and its subtypes.
8458
8459	* vms_conv.adb: (Initialize): Add data for new command Stack.
8460	Add declarations moved from the spec: types Item_Id, Translation_Type,
8461	Item_Ptr, Item and its subtypes.
8462	(Cargs_Buffer): New table
8463	(Cargs): New Boolean global variable
8464	(Process_Buffer): New procedure to create arguments
8465	(Place): Put character in table Buffer or Cargs_Buffer depending on the
8466	 value of Cargs.
8467	(Process_Argument): Set Cargs when processing qualifiers for GNAT
8468	COMPILE
8469	(VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
8470	empty, for table Cargs_Buffer.
8471	(Initialize): Remove component Setup in Command_List
8472
84732007-04-06  Vincent Celier  <celier@adacore.com>
8474
8475	* gprep.adb (Process_Files.Process_One_File): Use full file name when
8476	issuing pragma Source_Reference.
8477
84782007-04-06  Emmanuel Briot  <briot@adacore.com>
8479
8480	* g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
8481	[[:xdigit:]] character class.
8482	Also raise an exception when an invalid character class is used.
8483
84842007-04-06  Pascal Obry  <obry@adacore.com>
8485
8486	* i-cstrea.ads: (fopen): Add encoding parameter.
8487	(freopen): Idem.
8488	Change reference from a-sysdep.c to sysdep.c in comment.
8489	Update copyright notice.
8490	This set of patch add support for the encoding form parameter.
8491
8492	* mingw32.h (S2WSU): New macro to convert from a string to a
8493	wide-string using the UTF-8 encoding. The S2WS macro supports now only
8494	standard 8bits encoding.
8495	(WS2SU): As above but converting from wide-sring to string.
8496	This is needed as it is necessary to have access to both versions in the
8497	runtime for the form parameter encoding support.
8498	This set of patch add support for the encoding form parameter.
8499	(S2WS): Improve implementation to handle cases where the filename is not
8500	UTF-8 encoded. In this case we default to using the current code page
8501	for the conversion.
8502
8503	* s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
8504	type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
8505	the constants defined in adaint.h.
8506	(fopen): Add encoding parameter.
8507	(freopen): Idem.
8508
8509	* s-ficobl.ads (AFCB): Add Encoding field to record the filename
8510	encoding. This is needed for the Reset routine (freopen low level-call).
8511
8512	* s-fileio.adb (Open): Decode encoding form parameter and set the
8513	corresponding encoding value into AFCB structure.
8514	(Reset): Pass the encoding value to freopen.
8515	(Close): Move the call to Lock_Task to the beginning of the procedure.
8516
85172007-04-06  Geert Bosch  <bosch@adacore.com>
8518	    Robert Dewar  <dewar@adacore.com>
8519
8520	* i-fortra.ads: Add Double_Complex type.
8521
8522	* impunit.adb: (Is_Known_Unit): New function
8523	Add Gnat.Byte_Swapping
8524	Add GNAT.SHA1
8525	Add new Ada 2005 units
8526	Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
8527	Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
8528	Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
8529	Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
8530
8531	* impunit.ads (Is_Known_Unit): New function
8532
8533	* a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
8534	a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
8535	a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
8536	g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
8537	s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
8538	s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
8539	New files.
8540
8541	* Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
8542
8543	* a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
8544
85452007-04-06  Eric Botcazou  <botcazou@adacore.com>
8546	    Arnaud Charlet  <charlet@adacore.com>
8547
8548	* init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
8549	__gnat_adjust_context_for_raise.
8550	(__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
8551	implementation of floating point operations as native x86 targets.
8552	So the FPU should be initialized in the same way using finit. Fix
8553	floating point operations accuracy issues.
8554	(__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
8555	member in struct sigaction, so as to avoid warning for incompatible
8556	pointer types.
8557
85582007-04-06 Serguei Rybin  <rybin@adacore.com>
8559
8560	* lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
8561	switches from previously loaded tree
8562
85632007-04-06  Thomas Quinot  <quinot@adacore.com>
8564
8565	* lib-writ.adb (Write_With_Lines): Factor duplicated code between the
8566	cases where a given dependency has a body or not.
8567	(Write_With_File_Names): New subprogram, common code for the two cases
8568	above.
8569
85702007-04-06  Ed Schonberg  <schonberg@adacore.com>
8571	    Javier Miranda  <miranda@adacore.com>
8572
8573	* lib-xref.ads, lib-xref.adb:
8574	Modify the loop that collects type references, to include interface
8575	types that the type implements. List each of these interfaces when
8576	building the entry for the type.
8577	(Generate_Definition): Initialize component Def and Typ of new entry
8578	in table Xrefs, to avoid to have these components unitialized.
8579	(Output_References): Split Is_Abstract flag into
8580	Is_Abstract_Subprogram and Is_Abstract_Type.
8581	(Generate_Reference): Add barrier to do not generate the warning
8582	associated with Ada 2005 entities with entities generated by the
8583	expander.
8584
85852007-04-06  Robert Dewar  <dewar@adacore.com>
8586	    Arnaud Charlet  <charlet@adacore.com>
8587	    Vincent Celier  <celier@adacore.com>
8588
8589	* gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
8590	Update 'Exception Handling Control' chapter which was outdated.
8591	Minor fix to documentation of -gnatwq
8592	Remove section "Adapting the Run Time to a New C++ Compiler" because
8593	it is now obsolete.
8594	Add passage on need of -nostart-files in some non-ada-main cases.
8595	Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
8596	Update documentation about Interfacing with C++
8597	Add documentation for new gnatmake switch -p
8598	Add missing protocol part in URLs.
8599	Document -gnatyA
8600	Document pragma Compile_Time_Error
8601	Add documentation for Object_Size indicating that stand alone
8602	objects can have a larger size in some cases.
8603	Add node for GNAT.Byte_Swapping, GNAT.SHA1
8604	Update reference to the Ravenscar profile.
8605	Document pragma Unreferenced_Objects
8606
8607	* gnat-style.texi: Fix typo
8608
86092007-04-06  Vincent Celier  <celier@adacore.com>
8610
8611	* mlib.adb (Building_Library): Only output "building a library..." in
8612	verbose mode
8613
8614	* mlib-prj.adb (Build_Library): Only output lists of object and ALI
8615	files in verbose mode.
8616
8617	* mlib-utl.adb (Ar): Only output the first object files when not in
8618	verbose mode.
8619	(Gcc): Do not display all the object files if not in verbose mode, only
8620	the first one.
8621
86222007-04-06  Robert Dewar  <dewar@adacore.com>
8623
8624	* namet.ads, namet.adb (wn): Improve this debugging routine. Calling
8625	it no longer destroys the contents of Name_Buffer or Name_Len and
8626	non-standard and invalid names are handled better.
8627	(Get_Decoded_Name_String): Improve performance by using
8628	Name_Has_No_Encodings flag in the name table.
8629	(Is_Valid_Name): New function to determine whether a Name_Id is valid.
8630	Used for debugging printouts.
8631
86322007-04-06  Robert Dewar  <dewar@adacore.com>
8633	    Javier Miranda  <miranda@adacore.com>
8634	    Bob Duff  <duff@adacore.com>
8635
8636	* par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
8637	(P_Interface_Type_Definition): Remove the formal Is_Synchronized because
8638	there is no need to generate always a record_definition_node in case
8639	of synchronized interface types.
8640	(P_Type_Declaration): Update calls to P_Interface_Type_Definition.
8641	(P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
8642	illegal in Ada 95, in cases where it is legal. Change the warnings to
8643	errors in other cases. Don't give the error unless the "not null"
8644	parses properly. Correct the source position at which the error occurs.
8645	(P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
8646	P_Null_Exclusion, to suppress "not null" warnings.
8647	(P_Identifier_Declarations): Code cleanup. Removed unrequired label and
8648	associated goto statements.
8649
8650	* par-endh.adb (Pop_End_Context): Allow more flexibility in placement
8651	of END RECORD
8652
8653	* scans.ads (Type_Token_Location): New flag
8654
8655	* par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
8656	(P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
8657	P_Null_Exclusion, to suppress "not null" warnings.
8658
86592007-04-06  Robert Dewar  <dewar@adacore.com>
8660	    Javier Miranda  <miranda@adacore.com>
8661	    Bob Duff  <duff@adacore.com>
8662	    Vincent Celier  <celier@adacore.com>
8663
8664	* par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
8665	(Extensions_Allowed): No longer sets Ada_Version
8666	Entry for pragma Unreferenced_Objects
8667
8668	* sem_prag.adb (Analyze_Pragma, case Priority): Force with of
8669	system.tasking if pragma priority used in a procedure
8670	(Analyze_Pragma, case Warning): Handle dot warning switches
8671	(Process_Compile_Time_Warning_Or_Error): New procedure
8672	(Analyze_Pragma): Add processing for Compile_Time_Error
8673	Add support for extra arguments External_Name and Link_Name.
8674	Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
8675	(Process_Import_Or_Interface): Add support for the use of pragma Import
8676	with tagged types.
8677	(Extensions_Allowed): No longer affects Ada_Version
8678	(Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
8679	Is_Abstract_Type. Make sure these are called only when appropriate.
8680	Add processing for pragma Unreferenced_Objects
8681
8682	* snames.h, snames.ads, snames.adb: Add entry for pragma
8683	Compile_Time_Error
8684	Add new standard name Minimum_Binder_Options for new gprmake
8685	Add new standard names for gprmake: Archive_Suffix,
8686	Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
8687	Library_Support, Library_Version_Options,
8688	Shared_Library_Minimum_Options,
8689	Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
8690	Change Name_Call to Name_uCall so that it cannot clash with a legal
8691	subprogram name.
8692	Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
8693	Append C_Plus_Plus to convention identifiers as synonym for CPP
8694	Add new standard names Stack and Builder_Switches
8695	Add new standard names: Compiler_Minimum_Options, Global_Config_File,
8696	Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
8697	Run_Path_Option, Toolchain_Version.
8698	Entry for pragma Unreferenced_Objects
8699
8700	* switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
8701	switches, without repetition of "eD". Make sure that last character of
8702	-gnatep= switch is not taken as -gnat switch character.
8703	Complete rewrite of circuit for handling saving compilation options
8704	Occasioned by need to support dot switchs for -gnatw, but cleans up
8705	things in general.
8706	-gnatX does not affect Ada_Version
8707	Include -gnatyA in -gnatg style switches
8708
8709	* sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
8710	warnings on return objects.
8711	(Warn_On_Useless_Assignment): Exclude warnings on return objects
8712	(Set_Dot_Warning_Switch): New procedure
8713	(Check_References): Add missing case of test for
8714	Has_Pragma_Unreferenced_Objects
8715	(Output_Unreferenced_Messages): Implement effect of new pragma
8716	Unreferenced_Objects, remove special casing of limited controlled
8717	variables.
8718
87192007-04-06  Vincent Celier  <celier@adacore.com>
8720
8721	* prj-ext.adb (Initialize_Project_Path): New procedure that initialize
8722	the default project path, initially done during elaboration of the
8723	package.
8724	If the prefix returned by Sdefault is null, get the prefix from a call
8725	to Executable_Prefix_Path.
8726	(Project_Path): Call Initialize_Project_Path if Current_Project_Path is
8727	null.
8728
8729	* prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
8730	canonical directory name to open the directory from which files are
8731	retrieved.
8732	(Record_Other_Sources): Idem.
8733	(Locate_Directory): Add the possibility to create automatically missing
8734	directories when Setup_Projects is True.
8735	Call Locate_Directory so that the directory will be created when
8736	Setup_Projects is True, for object dir, library dir, library ALI dir,
8737	library source copy dir and exec dir.
8738
8739	* prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
8740	versions of GNAT.
8741
87422007-04-06  Robert Dewar  <dewar@adacore.com>
8743
8744	* sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
8745	Use First/Next_Component_Or_Discriminant
8746	(Analyze_Record_Representation_Clause):
8747	Use First/Next_Component_Or_Discriminant
8748	(Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
8749	(Analyze_Attribute_Definition_Clause, case Value_Size): Reject
8750	definition if type is unconstrained.
8751	(Adjust_Record_For_Reverse_Bit_Order): New procedure
8752	(Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
8753	Is_Abstract_Subprogram and Is_Abstract_Type.
8754	(Adjust_Record_For_Reverse_Bit_Order): New procedure
8755
8756	* repinfo.adb (List_Record_Info): Use First/
8757	Next_Component_Or_Discriminant.
8758
8759	* style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
8760	New procedure.
8761
8762	* stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
8763	Include -gnatyA in default switches
8764
8765	* opt.ads: (Warn_On_Non_Local_Exception): New flag
8766	(Warn_On_Reverse_Bit_Order): New flag
8767	(Extensions_Allowed): Update the documentation.
8768	(Warn_On_Questionable_Missing_Parens): Now on by default
8769
8770	* usage.adb: Add documentation of -gnatw.x/X switches
8771	Document new -gnatyA style switch
8772	-gnatq warnings are on by default
8773
87742007-04-06  Ed Falis  <falis@adacore.com>
8775
8776	* s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
8777	full word is no longer compared twice.
8778
87792007-04-06  Ed Schonberg  <schonberg@adacore.com>
8780
8781	* sem_ch10.adb (Install_Limited_Context_Clauses.
8782	Expand_Limited_With_Clause): Use a new copy of selector name in the
8783	call to Make_With_Clause. This fixes the tree structure for ASIS
8784	purposes. Nothing is changed in the compiler behaviour.
8785	(Process_Body_Clauses): Handle properly use clauses whose prefix is
8786	a package renaming.
8787	(Install_Limited_With_Clauses): Do not install non-limited view when it
8788	is still incomplete.
8789
87902007-04-06  Ed Schonberg  <schonberg@adacore.com>
8791	    Gary Dismukes  <dismukes@adacore.com>
8792
8793	* sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
8794	when capturing size information, instead of base type, which for a
8795	formal array type will be the unconstrained type.
8796	(Analyze_Formal_Object_Declaration): Add check for illegal default
8797	expressions for a formal in object of a limited type.
8798	(Instantiate_Object): Ditto.
8799	(Check_Formal_Package_Instance): Skip entities that are formal objects,
8800	because they were defaulted in the formal package and no check applies
8801	to them.
8802	(Check_Formal_Package_Instance): Extend conformance check to other
8803	discrete types beyond Integer.
8804	(Process_Default): Copy directly the unmatched formal. A generic copy
8805	has already been performed in Analyze_Formal_Package.
8806	(Analyze_Associations): If a formal subprogram has no match, check for
8807	partial parametrization before looking for a default, to prevent
8808	spurious errors.
8809	(Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
8810	not set the instantiation environment before analyzing the actuals.
8811	Fixes regression on 8515-003 with implementation of AI-133.
8812	Set_Instance_Env checks whether the generic unit is a predefined
8813	unit, in which case the instance must be analyzed with the latest Ada
8814	mode. This setting must take place after analysis of the actuals,
8815	because the actuals must be analyzed and frozen in the Ada mode extant
8816	outside of the current instantiation.
8817	(Save_Env, Restore_Env): Preserve and restore the configuration
8818	parameters so that predefined units can be compiled in the proper Ada
8819	mode.
8820	(Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
8821	Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
8822	and Is_Abstract_Type.
8823	(Analyze_Formal_Package): For better error recovery, Add exception
8824	handler to catch Instantion_Error, which can be raised in
8825	Analyze_Associations
8826
88272007-04-06  Ed Schonberg  <schonberg@adacore.com>
8828	    Bob Duff  <duff@adacore.com>
8829	    Gary Dismukes  <dismukes@adacore.com>
8830
8831	* sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
8832	prefix type is a discriminated subtype of the type of the formal.
8833	(Analyze_Allocator): Collect all coextensions regardless of the context.
8834	Whether they can be allocated statically is determined in exp_ch4.
8835	(Analyze_Selected_Component): If the prefix is a limited view and the
8836	non-limited view is available, use the non-limited one.
8837	(Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
8838	therefore illegal), suggest a qualified expression rather than a type
8839	conversion, because a type conversion would be illegal in this context.
8840	(Anayze_Allocator): Trace recursively all nested allocators so that all
8841	coextensions are on the corresponding list for the root. Do no mark
8842	coextensions if the root allocator is within a declaration for a stack-
8843	allocated object, because the access discriminants will be allocated on
8844	the stack as well.
8845	(Analyze_Call): Remove restriction on calls to limited functions for the
8846	cases of generic actuals for formal objects, defaults for formal objects
8847	and defaults for record components.
8848	(Analyze_Allocator): Before analysis, chain coextensions on the proper
8849	element list. Their expansion is delayed until the enclosing allocator
8850	is processed and its finalization list constructed.
8851	(Try_Primitive_Operation): If the prefix is a concurrent type, looks
8852	for an operation with the given name among the primitive operations of
8853	the corresponding record type.
8854	(Analyze_Selected_Component): If the prefix is a task type that
8855	implements an interface, and there is no entry with the given name,
8856	check whether there is another primitive operation (e.g. a function)
8857	with that name.
8858	(Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
8859	properly the indexing of a function call written in prefix form, where
8860	the function returns an array type, and all parameters of the function
8861	except the first have defaults.
8862	(Analyze_Equality_Op): If this is a call to an implicit inequality, keep
8863	the original operands, rather than relocating them, for efficiency and
8864	to work properly when an operand is overloaded.
8865	(Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
8866	Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
8867	(Analyze_Selected_Component): If the prefix is a private extension, only
8868	scan the visible components, not those of the full view.
8869	(Try_Primitive_Operation): If the operation is a procedure, collect all
8870	possible interpretations, as for a function, because in the presence of
8871	classwide parameters several primitive operations of the type can match
8872	the given arguments.
8873
88742007-04-06  Ed Schonberg  <schonberg@adacore.com>
8875	    Robert Dewar  <dewar@adacore.com>
8876
8877	* sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
8878	tag-indeterminate call to an abstract function, when the left-hand side
8879	is not classwide.
8880	(Analyze_Loop_Statement): Improve detection of infinite loops
8881
88822007-04-06  Ed Schonberg  <schonberg@adacore.com>
8883	    Thomas Quinot  <quinot@adacore.com>
8884
8885	* sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
8886	out of Analyze_Package_Declaration, because processing must be applied
8887	to package bodies as well, for deferred constants completed by pragmas.
8888	(Analyze_Package_Declaration): When the package declaration being
8889	analyzed does not require an explicit body, call Check_Completion.
8890	(May_Need_Implicit_Body): An implicit body is required when a package
8891	spec contains the declaration of a remote access-to-classwide type.
8892	(Analyze_Package_Body): If the package contains RACWs, append the
8893	pending subprogram bodies generated by exp_dist at the end of the body.
8894	(New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
8895	Is_Abstract_Subprogram and Is_Abstract_Type.
8896	(Preserve_Full_Attributes): The full entity list is not an attribute
8897	that must be preserved from full to partial view.
8898
8899	* sem_dist.adb (Add_RAS_Dereference_TSS):
8900	Change primitive name to _Call so it cannot clash with any legal
8901	identifier, and be special-cased in Check_Completion.
8902	Mark the full view of the designated type for the RACW associated with
8903	a RAS as Comes_From_Source to get proper view switching when installing
8904	private declarations.
8905	Provite a placeholder nested package body along with the nested spec
8906	to have a place for Append_RACW_Bodies to generate the calling stubs
8907	and stream attributes.
8908
89092007-04-06  Ed Schonberg  <schonberg@adacore.com>
8910	    Robert Dewar  <dewar@adacore.com>
8911
8912	* sem_ch8.adb (Has_Components): If the argument is an incomplete type
8913	that is a limited view, check the non-limited view if available.
8914	(Undefined): Refine error message for missing with of Text_IO
8915	(Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
8916	to distinguish real missing with cases.
8917	Fix format of all missing with messages
8918	(Analyze_Subprogram_Renaming): Emit proper error message on illegal
8919	renaming as body when renamed entity is abstract.
8920
89212007-04-06  Ed Schonberg  <schonberg@adacore.com>
8922	    Javier Miranda  <miranda@adacore.com>
8923
8924	* sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
8925	predicate recursive, to handle complex expressions on literals whose
8926	spurious ambiguity comes from the abstract interpretation of some
8927	subexpression.
8928	(Interface_Present_In_Ancestor): Add support to concurrent record
8929	types.
8930	(Add_One_Interp,Disambiguate): Split Is_Abstract flag into
8931	Is_Abstract_Subprogram and Is_Abstract_Type.
8932
89332007-04-06  Ed Schonberg  <schonberg@adacore.com>
8934	    Javier Miranda  <miranda@adacore.com>
8935
8936	* sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
8937	dereference of a local object R created as a reference to another
8938	object O, use the access level of O.
8939	(Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
8940	rather than local Same_Formal_Type, to check whether protected operation
8941	overrides an inherited one.
8942	(Same_Formal_Type): New predicate, used when matching signatures of
8943	overriding synchronized operations, to handle the case when a formal
8944	has a type that is a generic actual.
8945	(Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
8946	predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
8947	(Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
8948	syntactic ambiguities involving indexing of function calls that return
8949	arrays.
8950	(Abstract_Interface_List): New subprogram that returns the list of
8951	abstract interfaces associated with a concurrent type or a
8952	concurrent record type.
8953	(Interface_Present_In_Parent): New subprogram used to check if a
8954	given type or some of its parents implement a given interface.
8955	(Collect_Abstract_Interfaces): Add support for concurrent types
8956	with interface types.
8957	(Has_Abstract_Interfaces): Add support for concurrent types with
8958	interface types.
8959	(Is_Parent): New subprogram that determines whether E1 is a parent
8960	of E2. For a concurrent type its parent is the first element of its
8961	list of interface types; for other types this function provides the
8962	same result than Is_Ancestor.
8963	(Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
8964	(Collect_Synchronized_Interfaces): Removed because the subprogram
8965	Collect_Abstract_Interfaces provides this functionality.
8966	(Collect_Abstract_Interfaces): Minor update to give support to
8967	concurrent types and thus avoid undesired code duplication.
8968	(Get_Subprogram_Entity): Handle entry calls.
8969	(May_Be_Lvalue): Include actuals that appear as in-out parameters in
8970	entry calls.
8971	(Enter_Name): Do not give -gnatwh hiding warning for record component
8972	entities, they never result in hiding.
8973
89742007-04-06  Ed Schonberg  <schonberg@adacore.com>
8975	    Robert Dewar  <dewar@adacore.com>
8976
8977	* sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
8978	to chain nested components that are allocators for access discriminants
8979	of the enclosing object.
8980	Add N_Push and N_Pop nodes
8981	New field Exception_Label added
8982	(Local_Raise_Statements): New field in N_Exception_Handler_Node
8983	(Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
8984	(Is_Coextension): New flag for allocators, to mark allocators that
8985	correspond to access discriminants of dynamically allocated objects.
8986	(N_Block_Statement): Document the fact that the corresponding entity
8987	can be an E_Return_Statement.
8988	(Is_Coextension): New flag for allocators.
8989	Remove all code for DSP option
8990
8991	* sprint.ads, sprint.adb: Display basic information for class_wide
8992	subtypes. Add handling of N_Push and N_Pop nodes
8993
89942007-04-06  Arnaud Charlet  <charlet@adacore.com>
8995
8996	* s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
8997	before propagating exception.
8998
89992007-04-06  Olivier Hainque  <hainque@adacore.com>
9000
9001	* tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
9002	an address always within the call instruction from a return address.
9003
90042007-04-06  Olivier Hainque  <hainque@adacore.com>
9005	    Eric Botcazou  <botcazou@adacore.com>
9006
9007	* trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
9008	expression with a COMPOUND_EXPR including the call instead of emitting
9009	the call directly here.
9010	(gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
9011	high bound is constant and the slice is empty.  Tidy.
9012	(tree_transform, case N_Op_Not): Handle properly the case where the
9013	operation applies to a private type whose full view is a modular type.
9014	(Case_Statement_To_gnu): If an alternative is an E_Constant with an
9015	Address_Clause, use the associated Expression as the GNAT tree
9016	representing the choice value to ensure the corresponding GCC tree is
9017	of the proper kind.
9018	(maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
9019	instead of just the operands, as the base GCC stabilize_reference does.
9020	<CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
9021	requested; otherwise fail.
9022	(addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
9023
90242007-04-06  Thomas Quinot  <quinot@adacore.com>
9025
9026	* uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
9027	implementation of UI_Div.
9028	(UI_Div): Reimplement as a call to UI_Div_Rem.
9029	(UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
9030	remainder, avoiding the cost of a multiplication and a subtraction.
9031	(UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
9032	provides both quotient and remainder in a single computation.
9033	(UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
9034	functions for uint.
9035	(UI_Modular_Inverse): Add a note that the behaviour of this subprogram
9036	is undefined if the given n is not inversible.
9037
90382007-04-06  Olivier Hainque  <hainque@adacore.com>
9039
9040	* utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
9041	BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
9042	opcodes.
9043
90442007-04-06  Eric Botcazou  <botcazou@adacore.com>
9045	    Olivier Hainque  <hainque@adacore.com>
9046
9047	* utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
9048	when updating the contents of the old pointer to an unconstrained array.
9049	(end_subprog_body): Set error_gnat_node to Empty.
9050	(write_record_type_debug_info): Do not be unduly sparing with our bytes.
9051	(unchecked_convert): For subtype to base type conversions, require that
9052	the source be a subtype if it is an integer type.
9053	(builtin_decls): New global, vector of available builtin functions.
9054	(gnat_pushdecl): Add global builtin function declaration nodes to the
9055	builtin_decls list.
9056	(gnat_install_builtins): Adjust comments.
9057	(builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
9058	calling gnat_pushdecl, so that it knows when it handed a builtin
9059	function declaration node.
9060	(builtin_decl_for): Search the builtin_decls list.
9061
90622007-04-06  Eric Botcazou  <botcazou@adacore.com>
9063
9064	* s-stchop-vxworks.adb:
9065	(Stack_Check): Raise Storage_Error if the argument has wrapped around.
9066
90672007-04-06  Robert Dewar  <dewar@adacore.com>
9068	    Arnaud Charlet  <charlet@adacore.com>
9069
9070	* a-diroro.ads: Inserted the pragma Unimplemented_Unit
9071
9072	* bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
9073	of files
9074	Add mention of -Sev (set initialize_scalars option from environment
9075	variable at run time) in gnatbind usage message.
9076
9077	* elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
9078
9079	* fname-uf.ads: Minor comment fix
9080
9081	* osint.ads: Change pragma Elaborate to Elaborate_All
9082
9083	* par-load.adb: Add documentation.
9084
9085	* sem_cat.ads, sem_cat.adb: Minor code reorganization
9086
9087	* s-parint.ads (RCI_Locator) : Add 'Version' generic formal
9088
9089	* s-secsta.ads: Extra comments
9090
9091	* s-soflin.ads: Minor comment fixes
9092
9093	* s-stratt.ads (Block_Stream_Ops_OK): Removed.
9094
9095	* s-wchcon.ads: Minor comment addition
9096
9097	* treepr.adb: Minor change in message
9098	(Print_Name,Print_Node): Make these debug printouts more robust: print
9099	"no such..." instead of crashing on bad input.
9100
91012007-03-30  Rafael Ávila de Espíndola  <espindola@google.com>
9102
9103	* trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
9104	instead of gnat_signed_or_unsigned_type.
9105	* utils.c (gnat_signed_or_unsigned_type): Remove.
9106	* misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
9107	* gigi.h (gnat_signed_or_unsigned_type): Remove
9108
91092007-03-09  Roger Sayle  <roger@eyesopen.com>
9110
9111	* cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
9112	fold with the result of buildN.
9113	* decl.c (gnat_to_gnu_entity): Likewise.
9114	* trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
9115	* utils.c (finish_record_type, merge_sizes, max_size, convert):
9116	Likewise.
9117	* utils2.c (gnat_truthvalue_conversion, compare_arrays,
9118	nonbinary_modular_operation, build_binary_op, build_unary_op,
9119	build_cond_expr): Likewise.
9120
9121	* utils.c (convert): Use fold_build1 when casting values to void.
9122	* utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
9123	fold_convert instead of convert when appropriate.
9124
91252007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
9126
9127	* Make-lang.in: Add install-pdf target as copied from
9128	automake v1.10 rules.
9129
91302007-02-28  Andreas Schwab  <schwab@suse.de>
9131
9132	* Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
9133	$(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
9134	(doc/gnat-style.info): Likewise.
9135
91362007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
9137
9138	* gnat-style.texi: Standardize title page.
9139	* gnat_rm.texi: Likewise.
9140	* gnat_ugn.texi: Likewise.
9141
91422007-02-25  Mark Mitchell  <mark@codesourcery.com>
9143
9144	* decl.c (annotate_value): Adjust for refactoring of tree_map
9145	hierarchy.
9146
91472007-02-24  Mark Mitchell  <mark@codesourcery.com>
9148
9149	* decl.c (annotate_value): Adjust for refactoring of tree_map
9150	hierarchy.
9151
91522007-02-21  Ed Schonberg  <schonberg@adacore.com>
9153
9154	PR ada/18819
9155	* sem_ch3.adb (Create_Constrained_Components): for a subtype of an
9156	untagged derived type, add hidden components to keep discriminant
9157	layout consistent, when a given discriminant of the derived type
9158	constraints several discriminants of the parent type.
9159
91602007-02-16  Eric Botcazou  <ebotcazou@adacore.com>
9161	    Sandra Loosemore  <sandra@codesourcery.com>
9162
9163	* trans.c (call_to_gnu):  Use build_call_list instead of build3 to
9164	build the call expression.
9165	(gnat_stabilize_reference_1): Handle tcc_vl_exp.
9166	* utils.c (max_size) <tcc_exceptional>: Delete.
9167	<tcc_vl_exp>: New case.
9168	<tcc_expression>: Delete CALL_EXPR subcase.
9169	(build_global_cdtor): Use build_call_nary instead of build3.
9170	* utils2.c (build_call_1_expr): Likewise.
9171	(build_call_2_expr): Likewise.
9172	(build_call_0_expr): Likewise.
9173	(build_call_alloc_dealloc): Likewise.
9174
91752007-02-07  Andreas Krebbel  <krebbel1@de.ibm.com>
9176
9177	* raise-gcc.c (get_region_description_for, get_call_site_action_for,
9178	get_action_description_for): Replace _Unwind_Word with _uleb128_t
9179	and _Unwind_SWord with _sleb128_t.
9180
91812007-02-06  Paolo Bonzini  <bonzini@gnu.org>
9182
9183	* Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
9184	* decl.c: Include gt-ada-decl.h.
9185	(annotate_value_cache): New.
9186	(annotate_value): Use it instead of TREE_COMPLEXITY.
9187
91882007-02-03  Kazu Hirata  <kazu@codesourcery.com>
9189
9190	* misc.c, utils2.c: Fix comment typos.
9191
91922007-01-24  Roger Sayle  <roger@eyesopen.com>
9193
9194	* decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
9195	TREE_CONSTANT_OVERFLOW.
9196	(allocatable_size_p, annotate_value): Likewise.
9197	* trans.c (gnat_to_gnu): Likewise.
9198	* utils.c (unchecked_convert): Likewise.
9199	* utils2.c (build_simple_component_ref): Likewise.
9200
92012007-01-23  Richard Guenther  <rguenther@suse.de>
9202
9203	PR bootstrap/30541
9204	* Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
9205	(gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
9206	(gnatboot3): Likewise.
9207	(GNATBIND): Do not define.
9208	* Makefile.in (GNATBIND): Do not define.
9209
92102007-01-08  Richard Guenther  <rguenther@suse.de>
9211
9212	* cuintp.c (build_cst_from_int): Use built_int_cst_type.
9213	* trans.c (gnat_to_gnu): Likewise.
9214
9215
9216
9217Copyright (C) 2007 Free Software Foundation, Inc.
9218
9219Copying and distribution of this file, with or without modification,
9220are permitted in any medium without royalty provided the copyright
9221notice and this notice are preserved.
9222