OSDN Git Service

2005-07-08 Daniel Berlin <dberlin@dberlin.org>
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
2         
3         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
4         removed.
5
6 2005-07-07  Pascal Obry  <obry@adacore.com>
7
8         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
9         returned type on Windows.
10
11         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
12         routine.
13
14         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
15         exception in this case.
16         Simplify the code as "Image (Image'Range)" = "Image".
17
18 2005-07-07  Vincent Celier  <celier@adacore.com>
19
20         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
21         the destructor/constructor attributes for <lib>final/<lib>init.
22
23         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
24
25 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
26
27         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
28         type if the parameter is not passed by copy but reference by default.
29
30 2005-07-07  Javier Miranda  <miranda@adacore.com>
31
32         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
33         Reimplementation of the support for abstract interface types in order
34         to leave the code more clear and easy to maintain.
35
36         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
37         abstract interface types in order to leave the code clearer and easier
38         to maintain.
39
40         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
41         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
42         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
43         appropriate entry of the secondary dispatch table.
44         (Make_DT): Add code to inherit the secondary dispatch tables of
45         the ancestors.
46
47         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
48         implementing both functionalities by means of a common routine, each
49         routine has its own code.
50
51 2005-07-07  Javier Miranda  <miranda@adacore.com>
52
53         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
54
55         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
56         types:
57         --
58           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
59         --
60
61         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
62         use of tag incomplete types.
63
64         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
65         give support to tagged incomplete types.
66
67         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
68         expression is a discriminant reference and its type is private, as can
69         happen within a stream operation for a mutable record, use the full
70         view of the type to resolve the case alternatives.
71         (Analyze_Assignment): Check wrong dereference of incomplete types.
72
73         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
74         types.
75
76         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
77         incomplete types.
78
79         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
80         N_Incomplete_Type_Declaration nodes.
81
82         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
83         Tag_Present to give support to tagged incomplete types:
84         --
85           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
86         --
87
88 2005-07-07  Olivier Hainque  <hainque@adacore.com>
89
90         PR ada/22301
91
92         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
93         definitions for the Unwind wrappers in the compiler case.
94
95 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
96             Javier Miranda  <miranda@adacore.com>
97
98         * par-load.adb (Load): If a child unit is loaded through a limited_with
99         clause, each parent must be loaded as a limited unit as well.
100
101         * sem_ch10.adb (Previous_Withed_Unit): Better name for
102         Check_Withed_Unit. Return true if there is a previous with_clause for
103         this unit, whether limited or not.
104         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
105         the current unit.
106         (Is_Visible_Through_Renamings): New local subprogram of install_limited
107         _withed_unit that checks if some package installed through normal with
108         clauses has a renaming declaration of package whose limited-view is
109         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
110         of the current Draft document for Ada 2005.
111         (Analyze_Context): Complete the list of compilation units that
112         are allowed to contain limited-with clauses. It also contains
113         checks that were previously done by Install_Limited_Context_Clauses.
114         This makes the code more clear and easy to maintain.
115         (Expand_Limited_With_Clause) It is now a local subprogram of
116         Install_Limited_Context_Clauses, and contains the code that adds
117         the implicit limited-with clauses for parents of child units.
118         This functionality was prevously done by Analyze_Context.
119
120         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
121         incomplete type.
122
123         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
124         been erroneously named in a limited-with clause of its own context.
125         In this case the error has been previously notified by Analyze_Context.
126
127 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
128
129         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
130         generic package that contains local declarations with the same name.
131         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
132
133 2005-07-07  Bernard Banner  <banner@adacore.com>
134
135         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
136         ia64 platform only on platforms that you the GCC unwind library
137         rather than the system unwind library.
138
139 2005-07-07  Thomas Quinot  <quinot@adacore.com>
140
141         * expect.c: Minor reformatting
142
143 2005-07-07  Sergey Rybin  <rybin@adacore.com>
144
145         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
146         --no-separate-is
147
148         * gnat_ugn.texi: Add description for new gnatpp option
149         (--no-separate-is)
150
151 2005-07-04  Thomas Quinot  <quinot@adacore.com>
152
153         * g-expect-vms.adb, g-expect.ads, g-expect.adb
154         (Get_Command_Output): New subprogram to launch a process and get its
155         standard output as a string.
156
157 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
158             Olivier Hainque  <hainque@adacore.com>
159
160         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
161         fetch a code-range descriptor associated with the machine state. On
162         failure set the machine state's PC to 0; on success, pass the
163         descriptor to exc_virtual_unwind.
164
165         * init.c (Tru64 section): New function __gnat_set_code_loc.
166
167 2005-07-04  Vincent Celier  <celier@adacore.com>
168
169         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 
170         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, 
171         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
172         Remove all auto-initialization code, as this is now done through the
173         constructor mechanism.
174
175         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
176         __gnat_sals_init_using_constructors): New functions.
177
178         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
179         Linker_Constructor and Linker_Destructor when switch -a is used.
180
181         * bindusg.adb: Add line for new switch -a
182
183         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
184         (Gnatbind): When switch -a is used, check if it is allowed
185
186         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
187
188 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
189
190         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
191         This prevents us from hitting a limitation during the debug info
192         generation when using stabs.
193         (Prims_Ptr): Likewise.
194
195 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
196             Ed Schonberg  <schonberg@adacore.com>
197             Javier Miranda  <miranda@adacore.com>
198
199         * checks.adb (Null_Exclusion_Static_Checks): In the case of
200         N_Object_Declaration, only perform the checks if the Object_Definition
201         is not an Access_Definition.
202
203         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
204         where the parent of an the access definition is an N_Object_Declaration
205         when determining the Associated_Node_For_Itype and scope of an
206         anonymous access-to-subprogram type.
207
208         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
209         Corresponding_Spec on the body created for a null procedure. Add ???
210         comment. Remove New_Copy_Tree call on body argument to
211         Set_Body_To_Inline.
212
213         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
214         discriminants, use the type of the actual as well, because the
215         discriminants may be read by the called subprogram.
216
217         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
218         access type we do not need to handle non-limited views.
219         (Build_Derived_Record_Type): Additional check to check that in case of
220         private types, interfaces are only allowed in private extensions.
221
222 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
223
224         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
225         <Pragma_Linker_Destructor>: Likewise.
226
227         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
228         Pragma_Linker_Destructor.
229
230         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
231         ATTR_LINK_DESTRUCTOR.
232         (static_ctors, static_dtors): New variables.
233
234         * misc.c (gnat_expand_body): Output current function as constructor
235         and destructor if requested.
236
237         * par-prag.adb: Add processing for pragma Linker_Constructor and
238         Linker_Destructor.
239
240         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
241         extracted from Check_Interrupt_Or_Attach_Handler.
242         (Check_Interrupt_Or_Attach_Handler): Invoke it.
243         Implement pragma Linker_Constructor and Linker_Destructor with the
244         help of Find_Unique_Parameterless_Procedure.
245         Replace Name_Alias with Name_Target for pragma Linker_Alias.
246
247         * snames.h, snames.ads, snames.adb: 
248         Add Name_Linker_Constructor and Name_Linker_Destructor.
249         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
250         * snames.adb: Remove Name_Alias.
251
252         * trans.c: Include cgraph.h.
253         (build_global_cdtor): New function.
254         (Compilation_Unit_to_gnu): Build global constructor and destructor if
255         needed.
256         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
257         of objects too.
258         (addressable_p) <COMPONENT_REF>: Unconditionally test
259         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
260
261         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
262         variable if it is external.
263
264         (static_ctors, static_dtors): New global variables.
265         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
266         <ATTR_LINK_DESTRUCTOR>: Likewise.
267         (end_subprog_body): Chain function as constructor and destructor
268         if requested.
269
270         * exp_util.adb (Force_Evaluation): Unconditionally invoke
271         Remove_Side_Effects with Variable_Ref set to true.
272         (Remove_Side_Effects): Handle scalar types first. Use a renaming
273         for non-scalar types even if Variable_Ref is true and for class-wide
274         expressions.
275
276 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
277
278         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
279         to prevent spurious warnings.
280
281 2005-07-04  Thomas Quinot  <quinot@adacore.com>
282
283         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
284         Itypes. Itypes are really unexpected there.
285         (Build_TypeCode_Function): Generalise special processing for Itypes to
286         handle the case of numeric implicit base types as well as enumerated
287         ones.
288
289 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
290
291         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
292         controlled, indicate the expected type of the dereference that is
293         created for the call to Deep_Finalize, to prevent spurious errors when
294         the designated type is private and completed with a derivation from
295         another private type.
296
297 2005-07-04  Vincent Celier  <celier@adacore.com>
298
299         * make.adb (Change_To_Object_Directory): When unable to change the
300         current dir to the object directory, output the full path of the
301         directory.
302
303 2005-07-04  Matthew Gingell  <gingell@adacore.com>
304
305         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
306
307         * indepsw-linux.adb: Replace by...
308
309         * indepsw-gnu.adb: ...this new file
310
311 2005-07-04  Vincent Celier  <celier@adacore.com>
312
313         * mlib-prj.adb (Auto_Initialize): New constant String
314         (SALs_Use_Constructors): New Boolean function
315         (Build_Library): Call gnatbind with Auto_Initialize switch when
316         SALs_Use_Constructors returns True.
317
318         * mlib-tgt.ads: Minor reformatting
319
320         * mlib-utl.ads: Minor reformatting
321
322         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
323
324 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
325
326         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
327         single protected declarations can have an interface list.
328         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
329         with seriously malformed entry declarations, and lead to compilation
330         abandoned messages.
331
332 2005-07-04  Javier Miranda  <miranda@adacore.com>
333
334         * par-load.adb: Load the context items in two rounds.
335
336 2005-07-04  Robert Dewar  <dewar@adacore.com>
337
338         * scng.adb: Do not consider Mod used as an attribute to be a keyword
339
340 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
341             Javier Miranda  <miranda@adacore.com>
342
343         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
344         type extension needs a limited view.
345         Remove previous restriction on private types available through the
346         limited-view (only tagged private types were previously allowed).
347         (Install_Withed_Unit): In the code that implements the
348         legality rule given in AI-377, exclude a child unit with the name
349         Standard, because it is a homonym of the Standard environment package.
350
351 2005-07-04  Thomas Quinot  <quinot@adacore.com>
352
353         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
354         overloaded function call, carry interpretations from the original tree
355         to the copy.
356
357 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
358
359         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
360         types check whether some designated type is a limited view, and use
361         the non-limited view if available.
362
363 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
364
365         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
366         constraint of full view of a private view T1 if present, when T2 is a
367         discriminated full view.
368
369 2005-07-04  Thomas Quinot  <quinot@adacore.com>
370
371         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
372         actual that is a view conversion of a bit packed array reference.
373
374 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
375
376         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
377         present before checking whether an interface type covers a synchronized
378         type.
379
380 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
381
382         * sem_util.adb (Is_Object_Reference): An indexed or selected component
383         whose prefix is an implicit dereference is an object reference. Removes
384         spurious errors when compiling with -gnatc.
385
386 2005-07-04  Robert Dewar  <dewar@adacore.com>
387
388         PR ada/22039
389
390         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
391
392 2005-07-04  Matthew Gingell  <gingell@adacore.com>
393
394         * tracebak.c: Enable tracebacks on ia64 platforms
395
396 2005-07-04  Vincent Celier  <celier@adacore.com>
397
398         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
399         the GNAT BIND command, as gnatbind accepts multiples ALI files with
400         the -L or -n switches.
401
402 2005-07-04  Vincent Celier  <celier@adacore.com>
403
404         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
405         correctly computed and the main project data is not modified while
406         doing so.
407         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
408         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
409         c++linker as this does not work on some platforms.
410
411 2005-07-04  Matthew Heaney  <heaney@adacore.com>
412
413         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
414         was changed.
415         * a-coinve.adb: Perform constraint checks explicitly.
416
417 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
418             Thomas Quinot  <quinot@adacore.com>
419
420         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
421         new target gen-soccon.
422
423 2005-07-04  Robert Dewar  <dewar@adacore.com>
424
425         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
426
427 2005-07-04  Thomas Quinot  <quinot@adacore.com>
428
429         * g-socket.ads (Check_Selector): Minor rewording of comment.
430
431 2005-07-04  Vincent Celier  <celier@adacore.com>
432
433         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
434
435 2005-07-04  Thomas Quinot  <quinot@adacore.com>
436
437         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
438
439 2005-07-04  Sergey Rybin  <rybin@adacore.com>
440
441         * gnat_ugn.texi: Add description of --eol gnatpp option
442
443 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
444             Thomas Quinot  <quinot@adacore.com>
445
446         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
447         if the user wants all calls of a subprogram to be flagged,
448         independently of whether they are made from within the same unit or
449         another unit.
450         Mention restriction for pragma Linker_Alias on some platforms.
451         Document pragma Linker_Constructor and Linker_Destructor.
452         Rewrite documentation of Weak_External, Linker_Section and
453         Linker_Alias pragmas.
454
455 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
456
457         * s-stausa.ads, s-stausa.adb: New files.
458
459 2005-06-30  Kelley Cook
460
461         * all files:  Update FSF address in copyright headers.
462         * gen-soccon.co (main): Output new FSF address in generated files.
463
464 2005-06-28  Paul Brook  <paul@codesourcery.com>
465
466         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
467
468 2005-06-14  Olivier Hainque  <hainque@adacore.com>
469             Eric Botcazou  <ebotcazou@adacore.com>
470
471         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
472         exc_unwind, now that we are generating proper .debug_frame output for
473         that target.
474
475         * tracebak.c: Remove the mips-irix section, as we are now using the
476         s-mastop based unwinder again.
477         Under SPARC/Solaris, take into account the stack bias to compute the
478         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
479         ABI.
480
481 2005-06-14  Doug Rupp  <rupp@adacore.com>
482
483         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
484
485         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
486
487 2005-06-14  Pascal Obry  <obry@adacore.com>
488
489         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
490         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
491         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
492         package name).
493
494         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads, 
495         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb, 
496         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads, 
497         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, 
498         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
499         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads, 
500         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb, 
501         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, 
502         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads, 
503         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb, 
504         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb, 
505         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads, 
506         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads, 
507         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb, 
508         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb, 
509         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads, 
510         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads, 
511         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb, 
512         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads, 
513         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb, 
514         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb, 
515         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb, 
516         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb, 
517         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads, 
518         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb, 
519         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb, 
520         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb, 
521         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb, 
522         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb, 
523         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
524         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
525         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
526         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
527         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
528         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
529         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
530         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
531         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
532         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
533         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
534         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
535         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
536         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
537         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
538         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
539         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
540         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
541         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
542         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
543         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
544         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
545         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
546         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
547         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
548         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
549         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
550         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
551         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
552         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
553         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
554         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
555         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
556         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
557         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
558         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
559         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
560         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads, 
561         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb, 
562         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
563         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb, 
564         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
565         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
566         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
567         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
568         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
569         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
570         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
571         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
572         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
573         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
574         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
575         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
576         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
577         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
578         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
579         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
580         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
581         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
582         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
583         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
584         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
585         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
586         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
587         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
588         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
589         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
590         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
591         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
592         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
593         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
594         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
595         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
596         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
597         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
598         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
599         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
600         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
601         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb, 
602         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads, 
603         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb, 
604         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads, 
605         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb, 
606         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, 
607         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads, 
608         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
609         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
610         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
611         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
612         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
613         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
614         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb, 
615         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb, 
616         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
617         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
618         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
619         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
620         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
621         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
622         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
623         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
624         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
625         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
626         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
627
628 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
629             Arnaud Charlet  <charlet@adacore.com>
630
631         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
632         longer protected objects. They have been replaced by lower-level
633         suspension objects made up by a mutex and a condition variable (or
634         their equivalent given a particular OS) plus some internal data to
635         reflect the state of the suspension object.
636         (Initialize, Finalize): Add this initialization procedure for
637         Suspension_Object, which is a controlled type.
638         (Finalize): Add the finalization procedure for Suspension_Object,
639         which is a controlled type.
640
641         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
642         Ada.Synchronous_Task_Control because there is no longer a need for a
643         VxWorks specific version of this package. Target dependencies
644         has been moved to System.Task_Primitives.Operations.
645
646         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
647         longer needed.
648         (InitializeCriticalSection, EnterCriticalSection,
649         LeaveCriticalSection, DeleteCriticalSection): Replace the type
650         pCriticalSection by an anonymous access type so that we avoid problems
651         of accessibility to local objects.
652
653         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
654         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
655         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
656         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
657         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
658         set the environment task mask here.
659         (Current_State): Add this function that returns the state of the
660         suspension object.
661         (Set_False): Add this procedure that sets the state of the suspension
662         object to False.
663         (Set_True): Add this procedure that sets the state of the suspension
664         object to True, releasing the task that was suspended, if any.
665         (Suspend_Until_True): Add this procedure that blocks the calling task
666         until the state of the object is True. Program_Error is raised if
667         another task is already waiting on that suspension object.
668         (Initialize): Add this procedure for initializing the suspension
669         object. It initializes the mutex and the condition variable which are
670         used for synchronization and queuing, and it sets the internal state
671         to False.
672         (Finalize): Add this procedure for finalizing the suspension object,
673         destroying the mutex and the condition variable.
674
675         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
676         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
677         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
678         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
679         which provides a low-level abstraction (using operating system
680         primitives) for Ada.Synchronous_Task_Control.
681         This object is made up by a mutex (for ensuring mutual exclusion), a
682         condition variable (for queuing threads until the condition is
683         signaled), a Boolean (State) indicating whether the object is open,
684         and a Boolean (Waiting) reflecting whether there is a task already
685         suspended on this object.
686
687         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
688         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
689         s-intman-vms.ads, s-intman-mingw.adb,
690         (Initialize_Interrupts): Removed, no longer used.
691
692         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
693         (Setup_Interrupt_Mask): New procedure.
694
695         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
696
697         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
698
699         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
700         this is no longer done in the body of s-taprop
701         (Server_Task): Explicitely test for Pending_Action in case
702         System.Parameters.No_Abort is True.
703
704         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
705         is no longer done in the body of s-taprop
706
707 2005-06-14  Robert Dewar  <dewar@adacore.com>
708
709         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
710         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
711         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
712         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
713         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
714         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
715         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
716         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
717         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
718         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
719         system-linux-hppa.ads, system-vms_64.ads,
720         system-vxworks-alpha.ads: Minor comment update for
721         AI-362 (unit is Pure).
722
723         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
724         Add pragma Pure_05 for AI-362
725         Make remaining conversion functions obsolescent in Ada 95
726
727         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
728         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
729         Add entries for a-wichun and a-zchuni
730         Add a-widcha a-zchara for AI-395
731         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
732
733         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
734         Add entries for a-wichun.o and a-zchuni.o
735         Entries for a-widcha.o and a-zchara.o
736         Add entry for a-chacon.o
737
738         * a-ztenau.adb: Add with of Ada.Characters.Conversions
739
740         * a-chacon.ads, a-chacon.adb: New files.
741
742         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
743         categorization violations.
744
745         * a-strmap.ads: Add pragma Pure_05 for AI-362
746         * a-strmap.ads: Add note on implicit categorization for AI-362
747
748         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
749
750         * par-prag.adb: Dummy entry for pragma Persistent_BSS
751         Set Ada_Version_Explicit, for implementation of AI-362
752         Add processing for pragma Pure_05 and Preelaborate_05
753         Add entry for Assertion_Policy pragma
754
755         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
756         when needed for proper processing of categorization stuff
757
758         * sem_cat.adb: 
759         For several cases, make errors in preealborate units warnings,
760         instead of errors, if GNAT_Mode is set. For AI-362.
761
762         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
763         preelaborate unit is now warning if in GNAT mode
764
765         * s-stoele.ads: Document AI-362 for pragma preelaborate
766
767 2005-06-14  Doug Rupp  <rupp@adacore.com>
768
769         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
770         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
771         Default_Exception_Msg_Max_Length: new parameter.
772
773         * a-except.ads: (Exception_Msg_Max_Length): Set to
774         System.Parameters.Default_Exception_Msg_Max_Length
775         Add pragma Preelaborate_05 for AI-362
776         Add warnings off to allow categorization violations for AI-362
777
778 2005-06-14  Vincent Celier  <celier@adacore.com>
779
780         * gnatsym.adb: Adapt to modification of package Symbols: procedure
781         Process is now in package Processing.
782
783         * symbols.ads, symbols.adb:
784         (Processing): New package, containing procedure Process
785
786         * symbols-vms-alpha.adb: 
787         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
788
789         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
790         symbols-processing-vms-ia64.adb: New files.
791
792 2005-06-14  Pascal Obry  <obry@adacore.com>
793
794         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
795         implementation. This new version generates the proper DllMain routine
796         to initialize the SAL. The DllMain is generated in Ada and compiled
797         before being added as option to the library build command.
798
799 2005-06-14  Doug Rupp  <rupp@adacore.com>
800             Pascal Obry  <obry@adacore.com>
801
802         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
803         call to decc$translate_vms.
804         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
805         need to remove those quotes before catenating the filename.
806         (__gnat_locate_exec_on_path): improvements to the Win32 section:
807         * avoid allocating the memory twice for better efficiency;
808         * allocate 32K buffer for environment expansion as suggested by MSDN;
809         * prepend ".;" to the path so that current directory is searched too.
810
811 2005-06-14  Robert Dewar  <dewar@adacore.com>
812
813         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
814         instead of raising CE (AI-241)
815         Add warnings off to allow categorization violations for AI-362
816
817 2005-06-14  Robert Dewar  <dewar@adacore.com>
818
819         * ali-util.adb, gnatbind.adb: Remove references to
820         Force_RM_Elaboration_Order.
821
822         * switch-b.adb: Remove recognition of -f switch
823
824 2005-06-14  Pascal Obry  <obry@adacore.com>
825
826         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
827         implementation which is slightly more efficient.
828
829 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
830             Javier Miranda  <miranda@adacore.com>
831             Ed Schonberg  <schonberg@adacore.com>
832             Hristian Kirtchev  <kirtchev@adacore.com>
833
834         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
835         allocator's designated type is a class-wide type, and compiling for
836         Ada 2005, emit a run-time check that the accessibility level of the
837         type given in the allocator's expression is not deeper than the level
838         of the allocator's access type.
839
840         (Tagged_Membership): Modified to gives support to abstract interface
841         types.
842
843         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
844         Access_Level.
845         (Descendant_Tag): New predefined function
846         (Is_Descendant_At_Same_Level): New predefined function
847         (Get_Access_Level): New private function
848         (Set_Access_Level): New private procedure
849         (IW_Membership): New function. Given the tag of an object and the tag
850         associated with an interface, evaluate if the object implements the
851         interface.
852         (Register_Interface_Tag): New procedure used to initialize the table of
853         interfaces used by the IW_Membership function.
854         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
855         of the dispatch table.
856         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
857         table of interfaces of the parent.
858         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
859         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
860         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
861         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
862         Ada 2005 semantics for the new predefined function.
863
864         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
865         call to Descendant_Tag rather than Internal_Tag.
866         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
867         the accessibility level of the attribute's Item parameter is not deeper
868         than the level of the attribute's prefix type. Tag_Error is raised if
869         the check fails. The check is only emitted for Ada_05.
870         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
871         requested stream attribute, use it.
872         (Expand_N_Attribute_Reference): If the designated type is an interface
873         then rewrite the referenced object as a conversion to force the
874         displacement of the pointer to the secondary dispatch table.
875         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
876         is a dereference of an object with a constrained partial view.
877
878         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
879         type is a class-wide type, emit a run-time check that the accessibility
880         level of the returned object is not deeper than the level of the
881         function's master (only when compiling for Ada 2005).
882
883         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
884         Action_Nb_Arg): Add entries for new Get_Access_Level and
885         Set_Access_Level routines in these tables.
886         (Make_DT): Generate a call to set the accessibility level of the
887         tagged type in its TSD.
888         (Make_DT): Code cleanup. The functionality of generating all the
889         secondary dispatch tables has been moved to freeze_record_type.
890         (Make_Abstract_Interface_DT): Minor code cleanup.
891         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
892         this subprogram implements a new algorithm that provides the
893         same functionality and it is more clear in case of primitives
894         associated with abstract interfaces.
895         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
896         clean up, the functionality of this subprogram is now provided
897         by Set_All_DT_Position.
898         (Write_DT): New subprogram: a debugging procedure designed to be called
899         within gdb to display the dispatch tables associated with a tagged
900         type.
901         (Collect_All_Interfaces): New subprogram that collects the whole list
902         of interfaces that are directly or indirectly implemented by a tagged
903         type.
904         (Default_Prim_Op_Position): New subprogram that returns the fixed
905         position in the dispatch table of the default primitive operations.
906         (Expand_Interface_Actuals): New subprogram to generate code that
907         displaces all the actuals corresponding to class-wide interfaces to
908         reference the interface tag of the actual object.
909         (Expand_Interface_Conversion): New subprogram. Reference the base of
910         the object to give access to the interface tag associated with the
911         secondary dispatch table.
912         (Expand_Interface_Thunk): New subprogram that generates the code of the
913         thunk. This is required for compatibility with the C+ ABI.
914         (Make_Abstract_Interface_DT): New subprogram that generate the
915         declarations for the secondary dispatch tables associated with an
916         abstract interface.
917         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
918         attribute for each primitive operation covering interface subprograms
919         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
920         These subprograms were upgraded to give support to abstract interfaces
921
922         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
923         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
924         RE_Set_Access_Level.
925         (RE_Unit_Table): Add entries for new Ada.Tags operations.
926         Add support to call the followig new run-time subprograms:
927         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
928
929         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
930         match its full declaration when both have an access definition with
931         statically matching designated subtypes.
932         (Analyze_Component_Declaration): Delete commented out code that was
933         incorrectly setting the scope of an anonymous access component's type.
934         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
935         an access discriminant when the containing type is nonlimited.
936         (Make_Incomplete_Type_Declaration): Create an incomplete type
937         declaration for a record type that includes self-referential access
938         components.
939         (Check_Anonymous_Access_Types): Before full analysis of a record type
940         declaration, create anonymous access types for each self-referential
941         access component.
942         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
943         an access component in this context is a Local_Anonymous_Access, for
944         proper accessibility checks.
945         (Access_Definition): Set properly the scope of the anonymous access type
946         created for a stand-alone access object.
947         (Find_Type_Of_Object): An object declaration may be given with an access
948         definition.
949         (Complete_Subprograms_Derivation): New subprogram used to complete
950         type derivation of private tagged types implementing interfaces.
951         In this case some interface primitives may have been overriden
952         with the partial-view and, instead of re-calculating them, they
953         are included in the list of primitive operations of the full-view.
954         (Build_Derived_Record_Type): Modified to give support to private
955         types implemening interfaces.
956         (Access_Definition): Reject ALL on anonymous access types.
957         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
958         type derivation to occur at a deeper accessibility level than the
959         parent type.
960         For the case of derivation within a generic body however, disallow the
961         derivation if the derived type has an ancestor that is a formal type
962         declared in the formal part of an enclosing generic.
963         (Analyze_Object_Declaration): For protected objects, remove the check
964         that they cannot contain interrupt handlers if not declared at library
965         level.
966         (Add_Interface_Tag_Components): New subprogram to add the tag components
967         corresponding to all the abstract interface types implemented by a
968         record type or a derived record type.
969         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
970         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
971         Process_Full_View, Record_Type_Declaration): Modified to give
972         support to abstract interface types
973         (Collect_Interfaces): New subprogram that collects the list of
974         interfaces that are not already implemented by the ancestors
975         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
976         when partial view has no discriminants and full view has defaults.
977         (Constrain_Access): Reject a constraint on a general access type
978         if the discriminants of the designated type have defaults.
979         (Access_Subprogram_Declaration): Associate the Itype node with the inner
980         full-type declaration or subprogram spec. This is required to handle
981         nested anonymous declarations.
982         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
983         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
984         Process_Full_View, Record_Type_Declaration): Modified to give
985         support to abstract interface types
986         (Derive_Subprograms): Addition of a new formal to indicate if
987         we are in the case of an abstact-interface derivation
988         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
989         to the specification because it is requied to analyze all the
990         identifiers found in a list of interfaces
991
992         * debug.adb: Complete documentation of flag "-gnatdZ"
993
994         * exp_ch3.adb: Implement config version of persistent_bss pragma
995         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
996         testing for TSS presence to properly enforce visibility rules.
997         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
998         Make_Abstract_Interfaces_DT to generate the secondary tables
999         associated with abstract interfaces.
1000         (Build_Init_Procedure): Modified to initialize all the tags
1001         corresponding.
1002         (Component_Needs_Simple_Initialization): Similar to other tags,
1003         interface tags do not need initialization.
1004         (Freeze_Record_Type): Modified to give support to abstract interface
1005         types.
1006         (Expand_N_Object_Declaration): Do not generate an initialization for
1007         a scalar temporary marked as internal.
1008
1009         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
1010         in-out parameter that is a component in an initialization procedure,
1011         whose constraint might depend on discriminants, and that may be
1012         misaligned because of packing or representation clauses.
1013         (Is_Legal_Copy): New predicate to determine whether a possibly
1014         misaligned in-out actual can actually be passed by copy/return. This
1015         is an error in case the type is by_reference, and a warning if this is
1016         the consequence of a DEC import pragma on the subprogram.
1017         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
1018         interface types
1019         (Expand_Inlined_Call): Mark temporary generated for the return value as
1020         internal, so that no useless scalar normalization is generated for it.
1021         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
1022         null procedure can always be inlined.
1023         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
1024         procedure, generate an explicit empty body for it.
1025
1026         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
1027         Given a type implementing an interface, returns the corresponding
1028         access_disp_table value.
1029         (Find_Interface_Tag): New subprogram. Given a type implementing an
1030         interface, returns the record component containing the tag of the
1031         interface.
1032         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
1033         previous ones that return the corresponding tag and access_disp_table
1034         entities.
1035         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
1036         is a predefined primitive operation.
1037         (Expand_Subtype_From_Expr): If the expression is a selected component
1038         within an initialization procedure, compute its actual subtype, because
1039         the component may depend on the discriminants of the enclosing record.
1040
1041         * i-cpp.ads, i-cpp.adb: 
1042         This package has been left available for compatibility with previous
1043         versions of the frontend. As part of the new layout this is now a
1044         dummy package that uses declarations available at a-tags.ads
1045
1046         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
1047         "constant access" and "aliased [constant] access" when not compiling
1048         with -gnat05.
1049         Suppress Ada 2005 keyword warning if -gnatwY used
1050         (P_Identifier_Declarations): Add support for object declarations with
1051         access definitions.
1052         (Private_Extension_Declaration): Complete the documentation
1053         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
1054         attribute in case of private extension declaration
1055         (P_Type_Declaration): Mark as "abstract" the type declarations
1056         corresponding with protected, synchronized and task interfaces
1057         (P_Declarative_Items): "not" and "overriding" are overriding indicators
1058         for a subprogram or instance declaration.
1059
1060         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
1061         instantiation that is a dispatching operation has controlling access
1062         parameters that are null excluding.
1063         Save and restore Ada_Version_Explicit, for implementation of AI-362
1064         (Validate_Derived_Type_Instance): Add check for abstract interface
1065         types.
1066         (Analyze_Formal_Package): Establish Instantiation source for the copy of
1067         the generic that is created to represent the formal package.
1068         (Analyze_Package_Instantiation): Instantiate body immediately if the
1069         package is a predefined unit that contains inlined subprograms, and
1070         we are compiling for a Configurable_Run_Time.
1071         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
1072         If the program has a null default, generate an empty body for it.
1073
1074         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
1075         error message condition, null procedures are correctly detected now.
1076         (New_Overloaded_Entity): Bypass trivial overriding indicator check
1077         for subprograms in the context of protected types. Instead, the
1078         indicator is examined in Sem_Ch9 while analysing the subprogram
1079         declaration.
1080         (Check_Overriding_Indicator): Check consistency of overriding indicator
1081         on subprogram stubs as well.
1082         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
1083         the library level.
1084         (Analize_Subprogram_Specification): When analyzing a subprogram in which
1085         the type of the first formal is a concurrent type, replace this type
1086         by the corresponding record type.
1087         (Analyze_Subprogram_Body): Undo the previous work.
1088         (Analyze_Procedure_Call): If the call has the form Object.Op, the
1089         analysis of the prefix ends up analyzing the call itself, after which
1090         we are done.
1091         (Has_Interface_Formals): New subprogram subsidiary to analyze
1092         subprogram_specification that returns true if some non
1093         class-wide interface subprogram is found
1094         (New_Overloaded_Entity): Modified to give support to abstract
1095         interface types
1096         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
1097         access to subprograms must be recursive.
1098         (Is_Unchecked_Conversion): Improve the test that recognizes
1099         instantiations of Unchecked_Conversion, and allows them in bodies that
1100         are to be inlined by the front-end. When the body comes from an
1101         instantiation, a reference to Unchecked_Conversion will be an
1102         Expanded_Name, even though the body has not been analyzed yet.
1103         Replace Is_Overriding and Not_Overriding in subprogram_indication with
1104         Must_Override and Must_Not_Override, to better express intent of AI.
1105         (Analyze_Subprogram_Body): If an overriding indicator is given, check
1106         that it is consistent with the overrinding status of the subprogram
1107         at this point.
1108         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
1109         always inlined.
1110         If the subprogram is a null procedure, indicate that it does not need
1111         a completion.
1112
1113         * sem_disp.adb (Check_Controlling_Type): Give support to entities
1114         available through limited-with clauses.
1115         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
1116         allowed as the last primitive of a tagged type if it has no previous
1117         spec.
1118         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
1119         to give support to abstract interface types
1120
1121         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
1122         in the case where the target type is an anonymous access type of an
1123         object or component (that is, when Is_Local_Anonymous_Access is true).
1124         Prevent the special checks for conversions of access discriminants in
1125         the case where the discriminant belongs to a nonlimited type, since
1126         such discriminants have their accessibility level defined in the same
1127         way as a normal component of an anonymous access type.
1128         (Resolve_Allocator): When an allocator's designated type is a class-wide
1129         type, check that the accessibility level of type given in the
1130         allocator's expression or subtype indication is not statically deeper
1131         than the level of the allocator's access type.
1132         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
1133         name in a discriminant constraint of a record component.
1134         (Resolve_Explicit_Dereference): Do not check whether the type is
1135         incomplete when the dereference is a use of an access discriminant in
1136         an initialization procedure.
1137         (Resolve_Type_Conversion): Handle conversions to abstract interface
1138         types.
1139         (Valid_Tagged_Conversion): The conversion of a tagged type to an
1140         abstract interface type is always valid.
1141         (Valid_Conversion): Modified to give support to abstract interface types
1142         (Resolve_Actuals): Enable full error reporting on view conversions
1143         between unrelated by_reference array types.
1144         The rule for view conversions of arrays with aliased components is
1145         weakened in Ada 2005.
1146         Call to obsolescent subprogram is now considered to be a violation of
1147         pragma Restrictions (No_Obsolescent_Features).
1148         (Check_Direct_Boolean_Operator): If the boolean operation has been
1149         constant-folded, there is nothing to check.
1150         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
1151         check on possible violation of restriction No_Direct_Boolean_Operators
1152         until after expansion of operands, to prevent spurious errors when
1153         operation is constant-folded.
1154
1155         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
1156         Has_Compatible_Type): Modified to give support to abstract interface
1157         types.
1158         (Interface_Present_In_Ancestor): New function to theck if some ancestor
1159         of a given type implements a given interface
1160
1161         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
1162         prefix is a parameterless function that returns an access_to_procedure.
1163         (Transform_Object_Operation): Handle properly function calls of the
1164         form Obj.Op (X), which prior to analysis appear as indexed components.
1165         (Analyze_One_Call): Complete the error notification to help new Ada
1166         2005 users.
1167         (Analyze_Allocator): For an allocator without an initial value, where
1168         the designated type has a constrained partial view, a discriminant
1169         constraint is illegal.
1170
1171 2005-06-14  Robert Dewar  <dewar@adacore.com>
1172
1173         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
1174         do with treatment of Set_Col when positioned at end of line character.
1175
1176 2005-06-14  Robert Dewar  <dewar@adacore.com>
1177
1178         * atree.adb: (Elist*): Protect against uninitialized field
1179
1180 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1181
1182         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
1183         for an attribute reference that returns an access type.
1184         (Apply_Discriminant_Check): No need for check if (designated) type has
1185         constrained partial view.
1186
1187         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
1188         both bound checks, rather than a conjunction.
1189         (Insert_Valid_Check): If the expression is an actual that is an indexed
1190         component of a bit-packed array, force expansion of the packed element
1191         reference, because it is specifically inhibited elsewhere.
1192
1193 2005-06-14  Vincent Celier  <celier@adacore.com>
1194
1195         * clean.adb (Clean_Project): Correctly delete executable specified as
1196         absolute path names.
1197
1198         * make.adb (Gnatmake): Allow relative executable path names with
1199         directory information even when project files are used.
1200         (Change_To_Object_Directory): Fail gracefully when unable to change
1201         current working directory to object directory of a project.
1202         (Gnatmake): Remove exception handler that could no longer be exercized
1203         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
1204         may be deallocated by Normalize_Arguments.
1205         (Collect_Arguments): Eliminate empty arguments
1206
1207         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
1208         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
1209         (Check_Project): Return False when Project is No_Project. Return True
1210         when All_Projects is True.
1211         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
1212         All_Projects to True.
1213         Minor reformatting
1214
1215 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1216             Javier Miranda  <miranda@adacore.com>
1217             Thomas Quinot  <quinot@adacore.com>
1218             Robert Dewar  <dewar@adacore.com>
1219             Hristian Kirtchev  <kirtchev@adacore.com>
1220             Gary Dismukes  <dismukes@adacore.com>
1221
1222         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
1223         anonymous access types, to indicate that the accessibility level of
1224         the type is determined by that of the enclosing declaration.
1225         (Has_Persistent_BSS): New flag
1226         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
1227         of this attribute with functions.
1228         (Is_Primitive_Wrapper): Remove the barrier.
1229         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
1230         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
1231         New subprograms.
1232         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
1233         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
1234         New subprograms.
1235         (Is_Pure_Unit_Access_Type): New flag
1236         (Abstract_Interfaces): Complete the assertion to cover all usages.
1237         (Set_Is_Interface): Complete the assertion to cover all usages.
1238         (Is_Primitive_Wrapper): New attribute.
1239         (Is_Obsolescent): Now applies to all entities (though it is only set
1240         for subprograms currently)
1241         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
1242         which solves various problems concerning access subtypes.
1243         (Has_Persistent_BSS): New flag
1244         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
1245         Remove these subprograms because this attribute is currently
1246         not used.
1247         New entity flags:
1248         Has_Specified_Stream_Input (Flag190)
1249         Has_Specified_Stream_Output (Flag191)
1250         Has_Specified_Stream_Read (Flag192)
1251         Has_Specified_Stream_Write (Flag193)
1252         Present in all type and subtype entities. Set for a given view if the
1253         corresponding stream-oriented attribute has been defined by an
1254         attribute definition clause. When such a clause occurs, a TSS is set
1255         on the underlying full view; the flags are used to track visibility of
1256         the attribute definition clause for partial or incomplete views.
1257         (Is_Pure_Unit_Access_Type): New flag
1258         Clarify use of Is_Internal.
1259         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
1260         internally generated to wrap the invocation of tasks and protected
1261         types that implement interfaces.
1262         (Implementation_Base_Type): Documentation correction
1263         (Is_Obsolescent): Now applies to all entities (though it is only set
1264         for subprograms currently)
1265         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
1266         which solves various problems concerning access subtypes.
1267
1268         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
1269         for examined parameters. Identify unequal parameter list lengths as
1270         non-conformant parameters.
1271         (Overriding_Possible): Do not check for "All" qualifier in declaration
1272         of controlling access parameter, following prescription of AI-404.
1273         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
1274         that build the procedure body that wraps an entry invocation
1275         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
1276         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
1277         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
1278         give support to abstract interface types
1279
1280         * freeze.adb (Freeze_Entity): Issue error message if
1281         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
1282         type has no storage pool (Ada 2005) AI-366.
1283         Also modified to give support to abstract interface types
1284         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
1285         Inline_Always pragma.
1286
1287         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
1288         now begin an entry declaration.
1289         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
1290         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
1291         a subprogram declaration preceded by an overriding indicator.
1292         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
1293         declarations or subprogram declarations preceded by reserved words
1294         "not" or "overriding".
1295         (P_Entry_Declaration): Update comment. Parse and check overriding
1296         indicator, set semantic flags of entry declarations.
1297         (P_Task): New error message in case of private applied
1298         to a task type declaration.
1299         (P_Protected): New error message in case of private applied
1300         to a task type declaration.
1301
1302         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
1303         in which the full view of a type implementing an interface is a
1304         concurrent type.
1305         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
1306         Declare_Inherited_Private_Subprograms): If an explicit operation
1307         overrides an operation that is inherited in the private part, mark the
1308         explicit one as overriding, to enable overriding indicator checks.
1309         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
1310         full view to partial view, to simplify handling in back-end.
1311
1312         * sprint.adb: Print interface lists where needed: derived types,
1313         protected types, task types.
1314         output "is null" for null procedures. Part of implementation of
1315
1316         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
1317         relaxation of rules for access types in pure, shared passive partitions.
1318
1319         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
1320         first read discriminants into temporary objects, performing checks on
1321         the read values, then possibly performing discriminant checks on the
1322         actual (if it is constrained), and only finally reading the components
1323         into a constrained temporary object.
1324         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
1325         case of reading discriminants of a mutable record type to recognize
1326         the new form of the code generated by
1327         Build_Mutable_Record_Read_Procedure.
1328
1329         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
1330         of a simple call to Make_TSS_Name.
1331         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
1332         buffer, in order for Is_TSS to work correctly on local TSS names.
1333
1334         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
1335         Is_Local_Anonymous_Access to check legaliy of attributes in the
1336         context of  access components and stand-alone access objects.
1337         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
1338         treated as available for a limited private type if there is an
1339         attribute_definition_clause that applies to its full view, but not in
1340         other cases where the attribute is available for the full view
1341         (specifically, the sole fact that the full view is non-limited does not
1342         make the attribute available for the partial view).
1343         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
1344         non-overloaded intrinsic subprogram.
1345         (Check_Stream_Attribute): Reject an attribute reference for an
1346         unavailable stream attribute even if the prefix is not a limited type
1347         (case of a 'Input attribute reference for an abstract, non-classwide
1348         type)
1349         (Stream_Attribute_Available): New function to determine whether a stream
1350         attribute is available at a place.
1351         (Check_Attribute): Use Stream_Attribute_Available instead of just
1352         testing for TSS presence on the implementation base type.
1353         (Analyze_Attribute): Modified to give support to task interfaces.
1354         (Analyze_Access_Attribute): Add error check for use of an Access (or
1355         Unrestricted_Access) attribute with a subprogram marked as
1356         Inline_Always.
1357         (Analyze_Attribute, case Attribute_Address): Add error check for use of
1358         an Address attribute with a subprogram marked as Inline_Always.
1359         Update Eval_Attribute to handle new value of Width from AI-395
1360
1361         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
1362         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
1363         Factor common code across the stream-oriented attribute circcuits into
1364         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
1365         processing is functionally identical to the previous duplicated one,
1366         except that an expression that denotes an abstract subprogram will now
1367         be rejected, as mandated by AI-195 item 5.
1368
1369         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
1370         Is_Local_Anonymous_Access to apply accessibility checks to access
1371         components and stand-alone access objects.
1372         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
1373         elsewhere.
1374         (Is_Potentially_Persistent_Type): New function
1375         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
1376         a heap-object whose type has a constrained partial view, the object is
1377         unconstrained and the component may depend on a discriminant, making its
1378         renaming illegal.
1379
1380         * sinfo.ads, sinfo.adb
1381         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
1382         (Must_Override): Flag applicable to N_Entry_Declaration.
1383         Indicate that interface_list can appear in single task and single
1384         protected declarations.
1385         Replace Is_Overriding and Not_Overriding with Must_Override and
1386         Must_Not_Override, to better express intent of AI.
1387         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
1388         of an overriding indicator in a subprogram or instance.
1389         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
1390         Add the overriding indicator [[not] overriding] construct to the
1391         following grammar productions:
1392          ENTRY_DECLARATION
1393          GENERIC_INSTANTIATION
1394          SUBPROGRAM_SPECIFICATION
1395
1396         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
1397         can start with an overriding indicator.
1398
1399         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
1400         flags accordingly on subrogram specifications or instances.
1401
1402         * sem_ch8.adb: 
1403         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
1404         overriding_indicator, if present, is consistent with status of spec.
1405         Improve error message for null-excluding checks on controlling access
1406         parameters.
1407         (Check_In_Previous_With_Clause): Protect the frontend against
1408         previously reported critical errors in the context clauses.
1409         Save and restore Ada_Version_Explicit, for implementation of AI-362
1410         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
1411         operation verify that controlling formals of the renamed entity that
1412         are access parameters are explicitly non-null.
1413         (Find_Expanded_Name): Improve error message when prefix is an illegal
1414         reference to a private child unit.
1415
1416         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
1417         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb: 
1418         Rewrite to correspond to new wide character names in AI-395
1419
1420         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
1421         default procedures.
1422
1423 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1424             Robert Dewar  <dewar@adacore.com>
1425
1426         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
1427         code, not on the bodies of predefined operations, to cut down on
1428         spurious noise.
1429
1430 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1431
1432         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
1433         be expanded in place. The size computation does not require a
1434         subtraction, which would raise an exception on a compiler built with
1435         assertions when the upper bound is Integer'first.
1436         (Flatten): For an array of composite components, take into account the
1437         size of the components to determine whether it is safe to expand the
1438         array into a purely positional representation.
1439
1440 2005-06-14  Thomas Quinot  <quinot@adacore.com>
1441
1442         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
1443         denoting a formal parameter into account.
1444
1445 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1446
1447         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
1448         the entry_call alternative of a conditional entry call, wrap the
1449         conditional entry call itself.
1450
1451 2005-06-14  Nicolas Setton  <setton@adacore.com>
1452             Ed Schonberg  <schonberg@adacore.com>
1453
1454         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
1455         the "simple_choice" member in a variant record, in accordance with the
1456         description in the package spec: the information output for a constant
1457         should be "S number", not "SS number".
1458         (Get_Encoded_Name): Return at once if not generating code. Avoids name
1459         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
1460
1461 2005-06-14  Thomas Quinot  <quinot@adacore.com>
1462
1463         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
1464         RACW without any primitives, do not generate the if statement for
1465         dispatching by name in the PolyORB/DSA case, as it would be malformed
1466         (it would have an Elsif_Parts list that is not No_List, but with a
1467         length of 0).
1468
1469 2005-06-14  Robert Dewar  <dewar@adacore.com>
1470
1471         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
1472
1473 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
1474
1475         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
1476         can determine whether pragma Suppress_Exception_Locations is in effect.
1477
1478         * utils2.c (build_call_raise): Do not pass the file name to the
1479         exception handler if pragma Suppress_Exception_Locations is in effect.
1480         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
1481
1482 2005-06-14  Emmanuel Briot  <briot@adacore.com>
1483
1484         * g-debpoo.adb (Deallocate, Dereference): Improve output.
1485
1486 2005-06-14  Nicolas Roche  <roche@adacore.com>
1487
1488         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
1489         to ""
1490         (Next_Level): Fix minor bug in handling of ../dir case
1491         (Read): Add dir separator to Directory name so that "" is understood as
1492          "/"
1493
1494 2005-06-14  Pascal Obry  <obry@adacore.com>
1495
1496         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
1497         releasing the items.
1498
1499 2005-06-14  Vincent Celier  <celier@adacore.com>
1500             Cyrille Comar  <comar@adacore.com>
1501
1502         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
1503         with output file descriptor and with output file name.
1504         (Dup, Dup2): Now global procedures as they are used by two subprograms
1505         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
1506
1507 2005-06-14  Thomas Quinot  <quinot@adacore.com>
1508
1509         PR ada/6717
1510
1511         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
1512         broadcast address.
1513         (Create_Selector): Bind listening socket used to create the signalling
1514         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
1515         Set listen backlog to 1 to ensure that we detect socket theft by a
1516         failure of our own connect(2) call.
1517         (Check_Selector): Improve documentation of the selector mechanism.
1518         (Broadcast_Inet_Addr): New constant.
1519
1520 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
1521
1522         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
1523         type which turns out to be an incomplete and incorrect fix.
1524         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
1525         of the type is declared in a record (for determination of insertion
1526         type).
1527         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
1528         a private type and ensure that the primary entity is used for the type
1529         of the newly created function's V formal by taking the Etype of the
1530         view.
1531
1532 2005-06-14  Javier Miranda  <miranda@adacore.com>
1533             Jose Ruiz  <ruiz@adacore.com>
1534             Robert Dewar  <dewar@adacore.com>
1535             Ed Schonberg  <schonberg@adacore.com>
1536
1537         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
1538         that indicates if we are parsing a compilation unit found in a
1539         limited-with clause.
1540         It is use to avoid the circularity check.
1541
1542         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
1543         we are parsing a compilation unit found in a limited-with clause. This
1544         is use to avoid the circularity check.
1545
1546         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
1547         unit as a consequence of parsing a limited-with clause. This is used
1548         to avoid the circularity check.
1549
1550         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
1551         (Analyze_Context): Limited-with clauses are now allowed
1552         in more compilation units.
1553         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
1554         againts previously reported critical errors in context clauses
1555         (Install_Limited_Withed_Unit): Code cleanup plus static detection
1556         of two further errors: renamed subprograms and renamed packages
1557         are not allowed in limited with clauses.
1558         (Install_Siblings): Do not install private_with_clauses on the package
1559         declaration for a non-private child unit.
1560         (Re_Install_Parents): When a parent of the subunit is reinstalled,
1561         reset visibility of child units properly.
1562         (Install_Withed_Unit): When a child unit appears in a with_clause of its
1563         parent, it is immediately visible.
1564
1565 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1566             Emmanuel Briot  <briot@adacore.com>
1567
1568         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
1569         declared within an inlined body as referenced, to prevent spurious
1570         warnings.
1571         (Output_One_Ref): If an entity renames an array component, indicate in
1572         the ALI file that this aliases (renames) the array. Capture as well
1573         function renamings that rename predefined operations.
1574         Add information about generic parent for package and subprogram
1575         instances.
1576         (Get_Type_Reference): For a subtype that is the renaming of an actual in
1577         an instantiation, use the first_subtype to ensure that we don't generate
1578         cross-reference information for internal types.
1579         For objects and parameters of a generic private type, retain the '*'
1580         indicator to distinguish such an entity from its type.
1581
1582         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
1583         to store information about instantiated entities.
1584
1585         * ali.adb (Scan_ALI): Add support for parsing the reference to the
1586         generic parent
1587
1588         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
1589         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
1590         information.
1591
1592 2005-06-10  Doug Rupp  <rupp@adacore.com>
1593             Arnaud Charlet  <charlet@adacore.com>
1594             Olivier Hainque  <hainque@adacore.com>
1595             Jose Ruiz  <ruiz@adacore.com>
1596
1597         * Make-lang.in: Add initialize.o when needed.
1598         Remove obsolete references to RT_FLAGS.
1599         Add missing dependencies for sdefault.o
1600
1601         * initialize.c: New file.
1602
1603         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
1604         [VMS] cond_signal_table: Fix problem in declaration.
1605         [VMS] __gnat_error_handler: rewrite.
1606         Move all __gnat_initialize() routines to initialize.c
1607         Specialize the former "hpux" section to "hppa hpux", as this is what the
1608         section really is here for and we now have other hpux ports that need
1609         different contents.
1610         (__gnat_adjust_context_for_raise) i386-linux: First version of this
1611         function for this target. Adjust PC by one in the machine context. This
1612         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
1613         it is more reliable to do that in the signal handler itself.
1614         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
1615         flags, so that the handler is passed the context structure to adjust
1616         prior to the raise.
1617         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
1618         SA_SIGINFO sigaction should look like. Call
1619         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
1620         Machine_State_Operations stuff.
1621         Add conditional code so that the x86_64 is also supported.
1622
1623 2005-06-14  Pascal Obry  <obry@adacore.com>
1624
1625         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
1626         the library name.
1627
1628 2005-06-14  Robert Dewar  <dewar@adacore.com>
1629
1630         * opt.ads, opt.adb: New flags for persistent_bss mode
1631         Add Ada_Version_Explicit, for implementation of AI-362
1632         Add Assertions_Enabled_Config and associated handling
1633         Needed since setting can be changed with Assertion_Policy pragma
1634         Add new flag Warn_On_Ada_2005_Compatibility
1635
1636         * switch-c.adb: Recognize -gnatwy/Y
1637         Set Ada_Version_Explicit, for implementation of AI-362
1638         The -gnatg switch now includes -gnatyu
1639
1640         * usage.adb: Add -gnatwy/Y
1641         Remove wrong asterisk on -gnatwX line
1642         Add line for -gnatyu switch
1643
1644 2005-06-14  Vincent Celier  <celier@adacore.com>
1645
1646         * osint.adb (Add_Default_Search_Dirs): Put source and object
1647         directories of project files before directories coming from
1648         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
1649
1650 2005-06-14  Robert Dewar  <dewar@adacore.com>
1651
1652         PR ada/15613
1653
1654         * par-ch2.adb (Scan_Pragma_Argument): New procedure
1655         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
1656
1657 2005-06-14  Vincent Celier  <celier@adacore.com>
1658
1659         * prep.adb (Preprocess): Ignore error when scanning the first token of
1660         a line.
1661
1662 2005-06-14  Vincent Celier  <celier@adacore.com>
1663
1664         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
1665         (Check_Stand_Alone_Library): If the specified reference symbol file does
1666         not exist, only issue a warning when the symbol policy is not
1667         Controlled. And, when symbol policy is Compliant, set the symbol
1668         policy to Autonomous.
1669
1670 2005-06-14  Vincent Celier  <celier@adacore.com>
1671
1672         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
1673         when the project file in a with clause is not the last one, that is the
1674         project file name is followed by a comma.
1675         * prj-pp.adb: (First_With_In_List): New Boolean global variable
1676         (Print): Issue list of project files separated by commas in with clauses
1677         according to the values returned by Is_Not_Last_In_List.
1678         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
1679         (Set_Is_Not_Last_In_List): New procedure
1680
1681 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
1682
1683         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
1684
1685 2005-06-14  Robert Dewar  <dewar@adacore.com>
1686
1687         * scng.adb: Add call to new Check_EOF routine
1688         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
1689         Add some comments regarding wide character handling
1690
1691         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
1692
1693         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
1694
1695         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
1696         characters are now considered graphic characters and hence yield false
1697         in this call.
1698
1699         * nmake.adt: Modify header so that xnmake does not generate output
1700         files with multiple blank lines.
1701
1702         * treeprs.adt: Remove a blank line so that output from xtreeprs does
1703         not have an extra blank line
1704
1705 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
1706
1707         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
1708         expression when the component type is an anonymous access type to
1709         ensure that appropriate accessibility checks are done.
1710
1711         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
1712         expression of an assignment when the target object is of an anonymous
1713         access type. This ensures that required accessibility checks are done.
1714         (One_Bound): Move the check for type Universal_Integer to
1715         Process_Bounds.
1716         (Process_Bounds): Check whether the type of the preanalyzed range is
1717         Universal_Integer, and in that case set Typ to Integer_Type prior
1718         to setting the type of the original range and the calls to One_Bound.
1719
1720 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1721
1722         * sem_case.adb (Expand_Others_Choice): Improve warning.
1723
1724 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1725
1726         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
1727         constraint of full view if present, when other type is discriminated.
1728         (Eval_Relational_Op): Recognize tests of pointer values against Null,
1729         when the pointer is known to be non-null, and emit appropriate warning.
1730
1731 2005-06-14  Robert Dewar  <dewar@adacore.com>
1732             Ed Schonberg  <schonberg@adacore.com>
1733
1734         PR ada/10671
1735
1736         * sem_prag.adb: Implement pragma Persistent_BSS
1737         Remove obsolete pragma Persistent_Data, Persistent_Object
1738         Set Ada_Version_Explicit, for implementation of AI-362
1739         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
1740         Add processing for pragma Pure_05 and Preelaborate_05
1741         Add processing for Assertion_Policy pragma
1742         Add pragma identifiers for Assert
1743         (Analyze_Pragma, case Assert): Check number of arguments
1744         (Process_Inline): Additional guard against an illegal program, where the
1745         argument of the pragma is undefined, and warnings on redundant
1746         constructs are enabled.
1747         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
1748         Ada_05 to this pragma, specifying that the pragma is only active in
1749         Ada_05 mode.
1750         (Check_Arg_Order): New procedure
1751         Add appropriate calls to this procedure throughout
1752         Also throughout, check entity name before doing any other checks
1753
1754         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
1755         Remove obsolete pragma Persistent_Data, Persistent_Object
1756         Add entries for pragma Pure_05 and Preelaborate_05
1757         Add entries for Assertion_Policy pragma and associated names
1758         Add some names for pragma argument processing
1759
1760         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
1761
1762 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
1763
1764         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
1765         appears within a negation (either from source or as a rewriting of
1766         inequality) adjust text of warning accordingly.
1767
1768 2005-06-14  Thomas Quinot  <quinot@adacore.com>
1769
1770         * s-strxdr.adb: Follow AI95-00132
1771
1772 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
1773
1774         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
1775
1776 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
1777             Jose Ruiz  <ruiz@adacore.com>
1778
1779         * s-tposen.adb, s-tpobop.adb
1780         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
1781         the exception id.
1782         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
1783         there is no violation of the Max_Entry_Queue_Length restriction (if it
1784         has been set); Program_Error is raised otherwise.
1785         (Requeue_Call): Before requeuing the task on the target entry queue we
1786         check that there is no violation of the Max_Entry_Queue_Length
1787         restriction (if it has been set); Program_Error is raised otherwise.
1788
1789 2005-06-14  Robert Dewar  <dewar@adacore.com>
1790
1791         * styleg.adb: Fix several remaining problems in -gnatyu switch
1792         Blank line count not reset at start
1793         Scanning outside source buffer in some cases
1794         Confusing message for blanks at end of file
1795         Non-empty blank lines not recognized
1796
1797         * nmake.adt: Modify header so that xnmake does not generate output
1798         files with multiple blank lines.
1799
1800         * treeprs.adt: Remove a blank line so that output from xtreeprs does
1801         not have an extra blank line
1802
1803 2005-06-14  Sergey Rybin  <rybin@adacore.com>
1804
1805         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
1806
1807 2005-06-14  Doug Rupp  <rupp@adacore.com>
1808             Vincent Celier  <celier@adacore.com>
1809
1810         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
1811         Update copyright.
1812
1813         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
1814         Remove "Library" command.
1815         Change keyword for style check -gnatyd from NOCRLF to
1816         DOS_LINE_ENDINGS.
1817         Remove useless second style check keyword NONE
1818         Remove help documentation for inexistent style check keyword
1819         RM_COLUMN_LAYOUT.
1820         Add help documentation for style check keywords DOS_LINE_ENDINGS,
1821         UNNECESSARY_BLANK_LINES and XTRA_PARENS
1822         Add UNNECESSARY_BLANK_LINES for -gnatyu
1823         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
1824
1825         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
1826
1827 2005-06-14  Vincent Celier  <celier@adacore.com>
1828
1829         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
1830         gprmake was invoked with -d.
1831         (Compile_Sources): If -d was used, output the "completed ..." message
1832         for each compilation.
1833         (Scan_Arg): Recognize new switch -d
1834         When -c and at least one main is specified, set
1835         Unique_Compile to True to guarantee that no other sources will be
1836         compiled.
1837
1838 2005-06-14  Matthew Heaney  <heaney@adacore.com>
1839
1840         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
1841         * a-swuwha.ads, a-swuwha.adb: New files
1842
1843         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
1844         * a-szuzha.ads, a-szuzha.adb: New files.
1845
1846         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
1847         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads, 
1848         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads, 
1849         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, 
1850         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
1851         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
1852         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, 
1853         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
1854         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
1855         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
1856         Ada 2005 RM.
1857
1858 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
1859             Olivier Hainque  <hainque@adacore.com>
1860             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1861             Pascal Obry  <obry@adacore.com>
1862
1863         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
1864
1865         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
1866         making a temporary around a procedure call because of non-addressable
1867         actual parameter.
1868         (process_freeze_entity): If entity is a private type, capture size
1869         information that may have been computed for the full view.
1870         (tree_transform, case N_Allocator): If have initializing expression,
1871         check type for Has_Constrained_Partial_View and pass that to
1872         build_allocator.
1873         (tree_transform, case N_Return_Statement): Pass extra arg to
1874         build_allocator.
1875
1876         * decl.c (annotate_value): Remove early return if -gnatR is not
1877         specified.
1878         (gnat_to_gnu_field): Don't make a packable type for a component clause
1879         if the position is byte aligned, the field is aliased, and the clause
1880         size isn't a multiple of the packable alignment. It serves no useful
1881         purpose packing-wise and would be rejected later on.
1882         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
1883
1884         PR ada/20515
1885         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
1886         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
1887         instead.
1888         (create_concat_name): Idem.
1889
1890 2005-06-10  Robert Dewar  <dewar@adacore.com>
1891             Eric Botcazou  <ebotcazou@adacore.com>
1892             Ben Brosgol  <brosgol@adacore.com>
1893             Cyrille Comar  <comar@adacore.com>
1894             Sergey Rybin  <rybin@adacore.com>
1895             Pascal Obry  <obry@adacore.com>
1896
1897         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
1898         Document second argument (Ada_05) of pragma Obsolescent
1899         Add note that call to subprogram marked with pragma Obsolescent
1900         is now considered to be a violation of program Restrictions
1901         (No_Obsolescent_Features).
1902         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
1903         that only machine-dependent attributes are supported.
1904
1905         * gnat_ugn.texi: 
1906         Commented out menu lines and empty section for gnatclean examples
1907         Document -gnatwy/Y
1908         Fix some over long lines
1909         Clarify and enhance documentation of ADA_PROJECT_PATH.
1910         Rework section 2.11.2(3) about linking with a non-GNU compiler.
1911         Mention new switch -fcallgraph-info.
1912         Mention new switch -fstack-usage.
1913         For gnatpp, replace '-notab' with '-N' and add this option to Index
1914         Corrected VMS example.
1915         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
1916         Minor reformatting
1917         Add documentation for -gnatyu switch (unnecessary blank lines)
1918         Document new switch -U for GNAT PRETTY and GNAT METRIC
1919         Add note about Stdcall being handled as C convention on non Windows OS.
1920         Remove some junk typo in description of gnatbind -S switch
1921         Remove reference to Extensions_Allowed pragma
1922         Document the new order of the directories to be searched (source and
1923         object directories of project files before directories in ADA_*_PATH
1924         environment variables.
1925
1926         * g-trasym.ads: Document that IRIX is supported
1927
1928 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
1929
1930         * Makefile.in: Add initialize.o when needed.
1931         Adapt to new VMS package body Symbols and subunits
1932         No specialized version of a-sytaco is needed for VxWorks.
1933
1934         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
1935         * a-zchara.ads, a-widcha.ads: New files.
1936
1937         * system-hpux-ia64.ads: New file.
1938
1939         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
1940         is imported from the VxWorks kernel.
1941
1942 2005-06-14  Robert Dewar  <dewar@adacore.com>
1943
1944         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
1945         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
1946         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
1947         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
1948         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
1949         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
1950         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
1951         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
1952         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
1953         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
1954         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
1955         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
1956
1957 2005-06-14  Thomas Quinot  <quinot@adacore.com>
1958
1959         * xeinfo.adb: Fix typo in comment
1960
1961 2005-06-14  Javier Miranda  <miranda@adacore.com>
1962
1963         * repinfo.ads: Fix typo in comment
1964
1965 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
1966
1967         * s-finimp.adb (Parent_Tag): Delete this imported function (function
1968         Parent_Tag is now in the visible part of Ada.Tags).
1969         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
1970         using imported function.
1971
1972 2005-06-14  Bernard Banner  <banner@adacore.com>
1973
1974         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
1975         also apply for handling support for VxSim 653.
1976
1977 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
1978
1979         * xsnames.adb: Add automatic generation of snames.h.
1980
1981 2005-06-14  Thomas Quinot  <quinot@adacore.com>
1982
1983         * gen-soccon.c: Add IP_MULTICAST_IF constant
1984         Minor reformatting and adjustments to prevent warnings.
1985
1986 2005-06-14  Pascal Obry  <obry@adacore.com>
1987
1988         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
1989
1990 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
1991
1992         * trans.c (gnat_gimplify_expr): Call
1993         recompute_tree_invarant_for_addr_expr when we change
1994         the operand of the ADDR_EXPR.
1995
1996 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1997
1998         * misc.c: Don't include errors.h.
1999
2000 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2001
2002         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
2003
2004 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
2005
2006         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
2007         comment typos.
2008         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
2009
2010 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
2011
2012         PR ada/20270
2013         * Makefile.in: Make TGT_LIB behave correctly.
2014
2015 2005-04-23  DJ Delorie  <dj@redhat.com>
2016
2017         * misc.c: Adjust warning() callers.
2018
2019 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
2020
2021         PR ada/18847
2022         * a-nudira.adb (Value): Check for valid string.
2023         * a-nuflra.adb (Value): Likewise.
2024
2025 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
2026
2027         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
2028
2029 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
2030
2031         * adaint.c, init.c, tracebak.c: Fix comment typos.
2032         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
2033
2034 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
2035             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2036
2037         * Makefile.in: Add make ifeq define for hppa linux tasking support.
2038         * system-hpux.ads: Define Signed_Zeros to be True.
2039         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
2040
2041 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
2042
2043         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
2044         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
2045         typos.
2046
2047 2005-03-30  Tom Tromey  <tromey@redhat.com>
2048
2049         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
2050
2051 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2052
2053         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
2054
2055 2005-03-29  Robert Dewar  <dewar@adacore.com>
2056
2057         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
2058         fixed-point expression has value that is not a multiple of the Small
2059         value.
2060
2061         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
2062
2063         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
2064         nanoseconds.
2065
2066         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
2067
2068 2005-03-29  Vincent Celier  <celier@adacore.com>
2069
2070         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
2071         (Build_Dynamic_Library.Version_String): Return the empty string when
2072         Lib_Version is empty or when the symbol policy is not Autonomous.
2073
2074         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
2075         a symbol is not in the reference symbol file, increase the Major ID
2076         and set the Minor ID to 0.
2077         Use gsmatch=lequal instead of gsmatch=equal
2078
2079 2005-03-29  Doug Rupp  <rupp@adacore.com>
2080
2081         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
2082         name and translate.
2083
2084 2005-03-29  Javier Miranda  <miranda@adacore.com>
2085
2086         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
2087         (Inherit_DT): The first formal has been redefined as a Tag.
2088         This allows us the removal of the subprogram Get_TSD.
2089         (TSD): Replace the call to Get_TSD by the actual code.
2090
2091         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
2092         (Make_DT): Upgrade the call to Inherit_TSD according to the
2093         new interface: the first formal is now a Tag.
2094
2095         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
2096         redefined as a Tag.
2097         This change allows us to remove the subprogram Get_TSD.
2098         (CPP_Get_TSD): Subprogram removed.
2099         (TSD): Replace the call to CPP_Get_TSD by the actual code.
2100
2101         * rtsfind.ads: Remove support to call the run-time
2102         subprogram Get_TSD
2103
2104 2005-03-29  Robert Dewar  <dewar@adacore.com>
2105
2106         * errutil.adb, errout.adb: 
2107         Minor comment updates on Line_Terminator references
2108
2109         * par-ch10.adb: Add ??? comment about line terminator
2110
2111         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
2112         (check dos line terminator).
2113         (Check_Line_Max_Length): New procedure, split off from the existing
2114         Check_Line_Terminator routine. Separating this out allows -gnatyf to
2115         be properly recognized.
2116
2117         * styleg.adb: Add ??? comment for line terminator reference
2118
2119         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
2120         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
2121
2122         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
2123         (check dos line terminator).
2124         (Check_Line_Max_Length): New procedure, split off from the existing
2125         Check_Line_Terminator routine. Separating this out allows -gnatyf to
2126         be properly recognized.
2127
2128         * stylesw.ads, stylesw.adb: 
2129         Add handling for new -gnatyd switch (check dos line terminator)
2130
2131         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
2132         Recognize -gnatwb/-gnatwB switches
2133         Include Warn_On_Bad_Fixed_Value for -gnatg
2134
2135         * usage.adb: 
2136         Add line for new -gnatyd switch (check dos line terminator)
2137
2138         * usage.adb: Add lines for -gnatwb/-gnatwB
2139
2140         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
2141
2142         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
2143
2144         * gnat_ugn.texi: Fix overlong lines
2145         Document new -gnatyd switch
2146         Document new -gnatwb/-gnatwB switches
2147
2148 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
2149
2150         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
2151         order to retrieve the component list of the type, before examining
2152         individual components.
2153
2154         * sem_type.adb (Covers): Types are compatible if one is the base type
2155         of the other, even though their base types might differ when private
2156         views are involved.
2157
2158 2005-03-29  Thomas Quinot  <quinot@adacore.com>
2159
2160         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
2161         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
2162         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
2163         analyzed if expansion is disabled (which could otherwise cause spurious
2164         error messages if expansion has been disabled due to previous
2165         (unrelated) errors).
2166
2167         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
2168         is disabled, the entity denoted by the argument is the access type
2169         itself, not an underlying record type, so there is no need to go back
2170         to the Corresponding_Remote_Type.
2171
2172 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
2173             Robert Dewar  <dewar@adacore.com>
2174
2175         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
2176         expand a call to an instance of
2177         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
2178         Constructor actual of the instance. A class-wide membership
2179         check is also generated, to ensure that the tag passed to the instance
2180         denotes a type in the class.
2181         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
2182         of Name_Generic_Dispatching_Constructor.
2183
2184         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
2185         05 unit for AI-260-02).
2186
2187         * a-tgdico.ads: New file.
2188
2189         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
2190         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
2191
2192         * snames.ads, snames.adb (Preset_Names): Add entry for
2193         Generic_Dispatching_Constructor.
2194
2195         PR ada/20300
2196
2197         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
2198         character type cases.
2199         (Analyze_Subprogram_Renaming): Add special handling for
2200         the case of renaming of stream attributes when the renaming denotes a
2201         generic formal subprogram association for an abstract formal subprogram.
2202         Check that the attribute is a primitive stream attribute (and not
2203         a class-wide stream attribute) and then rewrite the attribute name
2204         as the name of the appropriate compiler-generated stream primitive.
2205
2206 2005-03-29  Robert Dewar  <dewar@adacore.com>
2207
2208         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
2209         recursive calls.
2210         (Is_Possibly_Unaligned_Object): Correct typo that
2211         resulted in inaccurate result for unaligned scalars within records.
2212
2213 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
2214
2215         * freeze.adb (Freeze_Record_Type): If the type of the component is an
2216         itype whose parent is controlled and not yet frozen, do not create a
2217         freeze node for the itype if expansion is disabled.
2218
2219 2005-03-29  Vincent Celier  <celier@adacore.com>
2220
2221         * make.adb (Gnatmake): Don't fail if the main project file is declared
2222         as having no Ada sources. Do not display message "no sources to
2223         compile" in quiet output.
2224
2225 2005-03-29  Doug Rupp  <rupp@adacore.com>
2226
2227         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
2228         extra tools.
2229
2230 2005-03-29  Robert Dewar  <dewar@adacore.com>
2231
2232         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
2233         child.
2234
2235 2005-03-29  Robert Dewar  <dewar@adacore.com>
2236
2237         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
2238         missing TYPE Improve the error message generated when compiling a
2239         limited interface in Ada83 or Ada95 mode.
2240
2241 2005-03-29  Robert Dewar  <dewar@adacore.com>
2242
2243         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
2244         rather than proceed ahead using a junk attribute name.
2245
2246 2005-03-29  Vincent Celier  <celier@adacore.com>
2247
2248         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
2249
2250         * prj-part.adb (Parse_Single_Project): Set the location of a project
2251         on its defining identifier, rather than on the reserved word "project".
2252
2253         * prj-proc.adb (Expression): Adapt to the fact that default of external
2254         references may be string expressions, not always literal strings.
2255         (Recursive_Process): Set Display_Name equal to Name
2256         when Location is No_Location, that is when there is no actual file.
2257         Get the Display_Name of the project from the source, when it is not a
2258         virtual project.
2259         (Process): Use the Display_Name in error messages
2260
2261         * prj-strt.adb (External_Reference): Allow default to be string
2262         expressions, not only literal strings.
2263
2264 2005-03-29  Vincent Celier  <celier@adacore.com>
2265
2266         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
2267         file and the reference symbol file to be the same file.
2268
2269 2005-03-29  Thomas Quinot  <quinot@adacore.com>
2270
2271         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
2272         forbid conversion of a local access-to-subprogram type to a remote one.
2273
2274         * sem_util.adb (Wrong_Type): For a record type that is the expanded
2275         equivalent type for a remote access-to-subprogram type, go back to the
2276         original RAS entity when displaying an error message, so the casing is
2277         the original source casing.
2278
2279 2005-03-29  Robert Dewar  <dewar@adacore.com>
2280
2281         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
2282         on param update.
2283
2284 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
2285
2286         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
2287         subtype if code is being pre-analyzed, to prevent un-expanded
2288         references to protected formals, among others.
2289         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
2290         interpretation that can be a call, include the result of the call as a
2291         possible interpretation of the dereference.
2292
2293         * sem_ch5.adb (Process_Bounds): Determine type of range by
2294         pre-analyzing a copy of the original range, and then analyze the range
2295         with the expected type.
2296
2297         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
2298         with an overloaded prefix where not all interpretations yield an
2299         access to subprogram, do not rewrite node as a call.
2300         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
2301         the node as a call once the context identifies the interpretation of
2302         the prefix whose call yields the context type.
2303         (Valid_Conversion): For the case of a conversion between
2304         local access-to-subprogram types, check subtype conformance using
2305         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
2306         detailed error message.
2307
2308 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
2309
2310         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
2311         indicator, indicate that the formal can never be null.
2312         (Process_Formals): If a formal has a non_null indicator, insert the
2313         resulting subtype immediately before the enclosing subprogram decl,
2314         and not at the beginning of the corresponding declarative part, to
2315         prevent access before elaboration (Ada2005).
2316
2317 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2318
2319         PR ada/19956
2320         * utils.c (finish_record_type): Use variable_size when setting sizes.
2321
2322 2005-03-29  Robert Dewar  <dewar@adacore.com>
2323
2324         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
2325         guarantee Unix style line terminators for the output files, even when
2326         running on windows.
2327
2328 2005-03-29  Robert Dewar  <dewar@adacore.com>
2329
2330         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
2331         buffer if an exception is raised.
2332
2333 2005-03-29  Ed Falis  <falis@adacore.com>
2334
2335         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
2336         VxWorks 653 1.4
2337
2338 2005-03-29  Robert Dewar  <dewar@adacore.com>
2339
2340         * sem_util.ads: Minor reformatting
2341         * gnat_rm.texi: Minor editing.
2342
2343 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
2344
2345         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
2346         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
2347
2348 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
2349
2350         * adaint.c (__gnat_portable_spawn): Adjust cast.
2351
2352 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
2353
2354         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2355
2356 2005-03-17  Pascal Obry  <obry@adacore.com>
2357
2358         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
2359         used.
2360
2361         * expect.c (__gnat_waitpid): Moved here from adaint.c.
2362         Reimplement under Win32 using Win32 API.
2363
2364         (__gnat_kill) [Win32]: Properly close the process handle before leaving
2365         this routine.
2366
2367 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
2368
2369         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
2370         (DECL_RENAMED_OBJECT): New accessor macro.
2371         (SET_DECL_RENAMED_OBJECT): New setter macro.
2372
2373         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
2374         object in all cases.  Attach the renamed object to the VAR_DECL.
2375         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
2376         field is not prescribed.
2377
2378         * misc.c (gnat_handle_option): Handle -gnatO separately.
2379         (gnat_print_decl) <VAR_DECL>: New case.
2380         Print the DECL_RENAMED_OBJECT node.
2381
2382         * lang.opt:  Declare separate -gnatO option.
2383
2384         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
2385         pointer, replace it with the renamed object.
2386         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
2387         pointer type if the source is not a fat pointer type whose underlying
2388         array has the same non-zero alias set as that of the destination array.
2389
2390 2005-03-17  Javier Miranda  <miranda@adacore.com>
2391
2392         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
2393         (Get_Inheritance_Depth): Removed.
2394         (Set_Inheritance_Depth): Removed.
2395
2396         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
2397         subprogram Get_Expanded_Name because it is not referenced by the
2398         frontend.
2399
2400         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
2401         (CPP_Get_Inheritance_Depth): Removed.
2402         (CPP_Set_Inheritance_Depth): Removed.
2403
2404         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
2405
2406 2005-03-17  Robert Dewar  <dewar@adacore.com>
2407
2408         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
2409         3, since we now expect GCC 3 to do all the work.
2410
2411 2005-03-17  Javier Miranda  <miranda@adacore.com>
2412
2413         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
2414         of one barrier to avoid wrong usage of this attribute.
2415
2416         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
2417         First_Private_Entity.
2418
2419         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
2420         the subprogram against wrong usage.
2421         Adapt the code to traverse the entities in the
2422         scope of a record_type because in addition to its usage regarding
2423         packages, this subprogram is also called by Expand_N_Freeze_Entity
2424         to install the visible declarations of the enclosing scope of a
2425         record_type_with_private to establish the proper visibility before
2426         freezing the entity and related subprograms.
2427
2428 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
2429
2430         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
2431         entry formals.
2432
2433 2005-03-17  Thomas Quinot  <quinot@adacore.com>
2434
2435         * exp_ch3.adb (Check_Attr): New subprogram.
2436         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
2437         into a new Check_Attr subprogram, in order to provide a more
2438         explanatory error message (including the name of the missing attribute).
2439         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
2440         subprogram determines whether a default implementation exists for a
2441         given stream attribute.
2442         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
2443         Determine whether to generate a default implementation for each stream
2444         attribute separately, as this depends on the specific attribute.
2445
2446         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
2447         limited extension where a stream attribute is missing for a limited
2448         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
2449         generate a bogus reference to the missing attribute to prevent
2450         cascaded errors. Instead, generate a null statement.
2451
2452         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
2453         available for a limited type if it has been specified for an ancestor
2454         of the type.
2455
2456 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
2457
2458         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
2459         entity is an operator.
2460
2461 2005-03-17  Thomas Quinot  <quinot@adacore.com>
2462
2463         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
2464         spec, to make this predicate available to other units.
2465
2466         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
2467         reimplementing it.
2468
2469         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
2470         when no distribution runtime library is available.
2471
2472         * sem_res.adb, sem_dist.adb: Disable expansion of remote
2473         access-to-subprogram types when no distribution runtime library is
2474         available.
2475         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
2476         predicate available to other units.
2477
2478         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
2479         spec, to make this predicate available to other units.
2480
2481 2005-03-17  Vincent Celier  <celier@adacore.com>
2482
2483         * make.adb (Insert_Project_Sources): Make sure the Q is always
2484         initialized.
2485
2486         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
2487         the default for the tree, not the global default naming.
2488
2489         * prj-proc.adb (Recursive_Process): No need to put the default naming
2490         in the project data, it's already there.
2491
2492 2005-03-17  Doug Rupp  <rupp@adacore.com>
2493
2494         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
2495
2496         * 5xcrtl.ads: Renamed to...
2497         * s-crtl-vms64.ads: ...this new file
2498
2499 2005-03-17  Robert Dewar  <dewar@adacore.com>
2500
2501         PR ada/19519
2502
2503         * namet.adb (Copy_One_Character): Set proper wide character encoding
2504         for upper half character if we have upper half encoding.
2505
2506 2005-03-17  Robert Dewar  <dewar@adacore.com>
2507
2508         * par.adb (Par): Improved msg for attempt to recompile predefined unit
2509
2510 2005-03-17  Thomas Quinot  <quinot@adacore.com>
2511
2512         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
2513         tagged limited type, the TSS is a newly built renaming declaration:
2514         insert it using Set_TSS, not Copy_TSS.
2515
2516 2005-03-17  Javier Miranda  <miranda@adacore.com>
2517
2518         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
2519         Try_Object_Operation): Analyze the object that is accessible
2520         through the prefix of the subprogram call before we apply
2521         the transformation of the object-operation notation.
2522
2523 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
2524
2525         * s-taprob.adb (Initialize_Protection): Initialize the protected
2526         object's owner to Null_Task.
2527         (Lock): If pragma Detect_Blocking is in effect and the caller of this
2528         procedure is already the protected object's owner then Program_Error
2529         is raised. In addition the protected object's owner is updated.
2530         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
2531         of this procedure is already the protected object's owner then
2532         Program_Error is raised.
2533         In addition the protected object's owner is updated.
2534         (Unlock): Remove the ownership of the protected object.
2535
2536         * s-taprob.ads (Protection): Add the field Owner, used to store the
2537         protected object's owner.
2538         This component is needed for detecting one type of potentially blocking
2539         operations (external calls on a protected subprogram with the same
2540         target object as that of the protected action). Document the rest of
2541         the components.
2542
2543         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
2544         Initialize the protected object's owner to Null_Task.
2545         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
2546         caller of this procedure is already the protected object's owner then
2547         Program_Error is raised.
2548         Do not raise Program_Error when this procedure is called from a
2549         protected action.
2550         (Unlock_Entries): Remove the ownership of the protected object.
2551         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
2552         of this procedure is already the protected object's owner then
2553         Program_Error is raised.
2554         Do not raise Program_Error when this procedure is called from
2555         a protected action.
2556
2557         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
2558         used to store the protected object's owner.
2559
2560         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
2561         effect and this procedure (a potentially blocking operation) is called
2562         from whithin a protected action, Program_Error is raised.
2563         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
2564         and this procedure (a potentially blocking operation) is called from
2565         whithin a protected action, Program_Error is raised.
2566
2567 2005-03-17  Vincent Celier  <celier@adacore.com>
2568             Nicolas Setton  <setton@adacore.com>
2569
2570         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
2571         switch, not supported by the linker on Darwin. Add '_' before
2572         <library>init, as this character is added unconditionally by the
2573         compiler.
2574         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
2575         correct one ".dylib". This fixes detection of the archive files when
2576         building library projects.
2577
2578 2005-03-17  Vincent Celier  <celier@adacore.com>
2579
2580         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
2581         -gnat83, -gnat95 and -gnat05.
2582
2583 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
2584
2585         * gnat_ugn.texi: Document gnatmem restriction
2586
2587 2005-03-17  Thomas Quinot  <quinot@adacore.com>
2588
2589         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
2590         cleanup
2591
2592 2005-03-17  Robert Dewar  <dewar@adacore.com>
2593
2594         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
2595         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
2596         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
2597
2598         * casing.adb: Comment improvements
2599
2600 2005-03-17  Pascal Obry  <obry@adacore.com>
2601
2602         * g-expect.adb: Minor reformatting.
2603
2604 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
2605
2606         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
2607         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
2608         to dependencies.
2609
2610 2005-03-15  Vincent Celier  <celier@adacore.com>
2611
2612         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
2613         Add new parameter In_Tree to specify the project tree: needed
2614         by the project manager. Adapt to changes in project manager
2615         using new parameter In_Tree.
2616
2617 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
2618
2619         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
2620         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
2621         ada/bldtools to avoid make -jN failures.
2622
2623 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
2624
2625         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
2626         to NULL_TREE on entry.
2627
2628 2005-03-15  Robert Dewar  <dewar@adacore.com>
2629
2630         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
2631         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
2632         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
2633         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
2634         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
2635         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
2636         system-interix.ads, system-solaris-sparc.ads,
2637         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
2638         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
2639         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
2640         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
2641         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
2642         Compiler_System_Version to be False.
2643
2644         * opt.ads: Add new flag Opt.Address_Is_Private
2645
2646         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
2647         Add new parameter Compiler_System_Version to avoid checking for
2648         completeness of parameters when compiler is compiling itself.
2649         Allows old versions of GNAT to be compiled with new compiler.
2650
2651 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
2652
2653         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
2654         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
2655         calling thread.
2656         (Stack_Base_Available): New flag.
2657         (Get_Page_Size): New overloaded functions imported from C.
2658         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
2659         PROT_ON, PROT_OFF): New constants.
2660         (mprotect): New function imported from C.
2661         (pthread_teb_t): New record type.
2662
2663         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
2664         (Create_Task): Account for the Yellow Zone and the guard page.
2665
2666 2005-03-15  Vincent Celier  <celier@adacore.com>
2667
2668         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
2669         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
2670         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
2671         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
2672         Library_File_Name_For): Add new parameter In_Tree
2673         to specify the project tree: needed by the project manager.
2674         Adapt to changes in project manager using new parameter In_Tree.
2675         Remove local imports, use functions in System.CRTL.
2676
2677         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
2678         to use the project manager.
2679
2680         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
2681         In_Tree to designate the project tree. Adapt to changes in the project
2682         manager, using In_Tree.
2683
2684         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
2685         Copy_Interface_Sources): Add new parameter In_Tree to specify the
2686         project tree: needed by the project manager.
2687         (Build_Library): Check that Arg'Length >= 6 before checking if it
2688         contains "--RTS=...".
2689
2690         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
2691         Library_File_Name_For): Add new parameter In_Tree to specify the
2692         project tree: needed by the project manager.
2693
2694         * prj.ads, prj.adb: Major modifications to allow several project trees
2695         in memory at the same time.
2696         Change tables to dynamic tables and hash tables to dynamic hash
2697         tables. Move tables and hash tables from Prj.Com (in the visible part)
2698         and Prj.Env (in the private part). Move some constants from the visible
2699         part to the private part. Make other constants deferred.
2700         (Project_Empty): Make it a variable, not a function
2701         (Empty_Project): Add parameter Tree. Returns the data with the default
2702         naming data of the project tree Tree.
2703         (Initialize): After updating Std_Naming_Data, copy its value to the
2704         component Naming of Project Empty.
2705         (Register_Default_Naming_Scheme): Use and update the default naming
2706         component of the project tree, instead of the global variable
2707         Std_Naming_Data.
2708         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
2709         Tree is not defaulted, return the default naming data of the Tree.
2710         (Initial_Buffer_Size): Constant moved from private part
2711         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
2712         variables initialized in procedure Initialize.
2713         (Add_To_Buffer): Add two in out parameters to replace global variables
2714         Buffer and Buffer_Last.
2715         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
2716         functions.
2717         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
2718         hash tables.
2719         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
2720         for the project tree.
2721         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
2722         constant at the beginning of the package spec, so that they cane be used
2723         in subprograms before their full declarations.
2724         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
2725         (Empty_Project): Add parameter of type Project_Node_Ref
2726         (Private_Project_Tree_Data): Add component Default_Naming of type
2727         Naming_Data.
2728         (Buffer, Buffer_Last): remove global variables
2729         (Add_To_Buffer): Add two in out parameters to replace global variables
2730         Buffer and Buffer_Last.
2731         (Current_Packages_To_Check): Remove global variable
2732         (Empty_Name): Move to private part
2733         (No-Symbols): Make it a constant
2734         (Private_Project_Tree_Data): New type for the private part of the
2735         project tree data.
2736         (Project_Tree_Data): New type for the data of a project tree
2737         (Project_Tree_Ref): New type to designate a project tree
2738         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
2739         for the project tree.
2740
2741         * prj-attr.ads: Add with Table; needed, as package Prj no longer
2742         imports package Table.
2743
2744         * prj-com.adb: Remove empty, no longer needed body
2745
2746         * prj-com.ads: Move most of the content of this package to package Prj.
2747
2748         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
2749         designate the project node tree and Packages_To_Check to replace
2750         global variable Current_Packages_To_Check.
2751         Add new parameters In_Tree and Packages_To_Check to local subprograms,
2752         when needed. Adapt to changes in project manager with project node tree
2753         In_Tree.
2754
2755         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
2756         project tree to most subprograms. Move tables and hash tables to
2757         private part of package Prj.
2758         Adapt to changes in project manager using project tree In_Tree.
2759
2760         * prj-makr.adb (Tree): New constant to designate the project node tree
2761         Adapt to change in project manager using project node tree Tree
2762
2763         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
2764         display the Library_Src_Dir and the Library_Dir.
2765         Add new parameter In_Tree to designate the project node tree to most
2766         subprograms. Adapt to changes in the project manager, using project tree
2767         In_Tree.
2768         (Check_Naming_Scheme): Do not alter the casing on platforms where
2769         the casing of file names is not significant.
2770         (Check): Add new parameter In_Tree to designate the
2771
2772         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
2773         designate the project tree.
2774         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
2775
2776         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
2777         to replace those that were in the private part of package Prj.
2778         Add new parameter In__Tree to designate the project node tree to most
2779         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
2780         (Post_Parse_Context_Clause): When specifying the project node of a with
2781         clause, indicate that it is a limited with only if there is "limited"
2782         in the with clause, not necessarily when In_Limited is True.
2783         (Parse): Add new parameter In_Tree to designate the project node tree
2784
2785         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
2786         designate the project node tree. Adapt to change in Prj.Tree with
2787         project node tree In_Tree.
2788
2789         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
2790         tree In_Tree in the call to function Empty_Process to give its initial
2791         value to the project data Processed_Data.
2792         Add new parameters In_Tree to designate the project tree and
2793         From_Project_Node_Tree to designate the project node tree to several
2794         subprograms. Adapt to change in project manager with project tree
2795         In_Tree and project node tree From_Project_Node_Tree.
2796
2797         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
2798         to replace those that were in the private part of package Prj.
2799         Add new parameter In_Tree to designate the project node tree to most
2800         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
2801
2802         * prj-tree.ads, prj-tree.adb: Add new parameter of type
2803         Project_Node_Tree_Ref to most subprograms.
2804         Use this new parameter to store project nodes in the designated project
2805         node tree.
2806         (Project_Node_Tree_Ref): New type to designate a project node tree
2807         (Tree_Private_Part): Change table to dynamic table and hash tables to
2808         dynamic hash tables.
2809
2810         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
2811         the project tree to most subprograms. Adapt to changes in project
2812         manager using project tree In_Tree.
2813
2814         * makegpr.adb (Project_Tree): New constant needed to use project
2815         manager.
2816
2817 2005-03-15  Olivier Hainque  <hainque@adacore.com>
2818
2819         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
2820         for sigactions with SA_SIGINFO set. Call
2821         __gnat_adjust_context_for_raise before raising, to perform the
2822         potentially required adjustments to the machine context for the GCC
2823         unwinder.
2824
2825         * raise.h (__gnat_adjust_context_for_raise): New prototype.
2826
2827         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
2828         Adjust PC by one in the provided machine context.
2829         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
2830         so that the handler is passed the context structure to adjust prior to
2831         the raise.
2832         (__gnat_error_handler) HPUX: Adjust the signature to match what an
2833         SA_SIGINFO sigaction should look like. Call
2834         __gnat_adjust_context_for_raise before actually raising.
2835         (__gnat_adjust_context_for_raise): Default noop to help PC
2836         adjustments before raise from signal handlers.
2837         (__gnat_error_handler): Indirectly call a predicate function to
2838         determine if a condition should be resignaled or not.
2839         (__gnat_set_resignal_predicate): User interface to modify the predicate.
2840         (__gnat_default_resignal_p): Default GNAT predicate.
2841
2842 2005-03-15  Doug Rupp  <rupp@adacore.com>
2843
2844         * adaint.c: Prefix #include of VMS system header files with vms/
2845         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
2846         Do not define a dummy function "convert_addresses" under Darwin,
2847         not needed.
2848
2849         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
2850         with vms/
2851
2852 2005-03-15  Nicolas Setton  <setton@adacore.com>
2853
2854         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
2855         PPC/AIX.
2856
2857 2005-03-15  Robert Dewar  <dewar@adacore.com>
2858
2859         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
2860         AI-386.
2861
2862         * a-retide.ads: Minor comment changes
2863
2864 2005-03-15  Robert Dewar  <dewar@adacore.com>
2865
2866         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
2867         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
2868         Realloc_For_Chunk to private part of package.
2869         New subprograms for AI-301
2870
2871         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
2872         Get_Line procedure.
2873         Avoid unnecessary use of Get/Set_Wide_String
2874
2875 2005-03-15  Robert Dewar  <dewar@adacore.com>
2876
2877         PR ada/13470
2878
2879         * a-stunau.ads, a-stunau.adb:
2880         Change interface to allow efficient (and correct) implementation
2881         The previous changes to allow extra space in unbounded strings had
2882         left this interface a bit broken.
2883
2884         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
2885
2886         * g-spipat.ads, g-spipat.adb: New interface for Get_String
2887         Minor reformatting (function specs)
2888
2889         * g-spitbo.adb: New interface for Get_String
2890
2891         * g-spitbo.ads: Minor reformatting
2892
2893         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
2894
2895         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
2896
2897 2005-03-15  Javier Miranda  <miranda@adacore.com>
2898             Robert Dewar  <dewar@adacore.com>
2899             Thomas Quinot  <quinot@adacore.com>
2900             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2901
2902         * atree.ads, atree.adb: Add support for Elist24 field
2903
2904         * atree.h: Fix wrong definition of Field27
2905         Add support for Elist16 field
2906         Add support for Elist24 field
2907
2908         * einfo.ads, einfo.adb (Abstract_Interfaces,
2909         Set_Abstract_Interfaces): New subprograms.
2910         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
2911         subprograms.
2912         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
2913         entities rather than a single node.
2914         (Is_Interface, Set_Is_Interface): New subprogram
2915         (First_Tag_Component): New syntesized attribute
2916         (Next_Tag_Component): New synthesized attribute
2917         (Write_Entity_Flags): Upgraded to write Is_Interface
2918         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
2919         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
2920         (Task_Body_Procedure): New subprogram to read this attribute.
2921         (Set_Task_Body_Procedure): New subprogram to set this attribute.
2922         (Has_Controlled_Component): Now applies to all entities.
2923         This is only a documentation change, since it always worked to apply
2924         this to other than composite types (yielding false), but now this is
2925         official.
2926         Update documentation on Must_Be_Byte_Aligned for new spec
2927
2928         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
2929         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
2930         uses of the Access_Disp_Table attribute to reference the first dispatch
2931         table associated with a tagged type. As
2932         part of the implementation of abstract interface types,
2933         Access_Disp_Table has been redefined to contain a list of dispatch
2934         tables (rather than a single dispatch table).
2935         Similarly, upgrade all the references to Tag_Component by the
2936         new attribute First_Tag_Component.
2937         (Find_Inherited_TSS): Moved to exp_tss.
2938         Clean up test in Expand_N_Object_Declaration for cases
2939         where we need to do a separate assignment of the initial value.
2940         (Expand_N_Object_Declaration): If the expression in the
2941         declaration of a tagged type is an aggregate, no need to generate an
2942         additional tag assignment.
2943         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
2944         is to be deleted.
2945         Bit packed array ops are only called if operands are known to be
2946         aligned.
2947         (Component_Equality): When returning an N_Raise_Program_Error statement,
2948         ensure that its Etype is set to Empty to avoid confusing GIGI (which
2949         expects that only expressions have a bona fide type).
2950         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
2951         determine the amount of data to be copied.
2952
2953         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
2954         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
2955             INTERFACE_TYPE_DEFINITION ::=
2956               [limited | task | protected | synchronized] interface
2957                 [AND interface_list]
2958
2959         * par-ch3.adb (P_Type_Declaration): Modified to give support to
2960         interfaces.
2961         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
2962         interfaces.
2963         (P_Interface_Type_Definition): New subprogram that parses the new
2964         syntax rule of Ada 2005 interfaces
2965         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
2966         messages by the correct RENAMES (quotes removed).
2967
2968         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
2969         attribute First_Tag_Component.
2970
2971         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
2972         (Interface_List, Set_Interface_List): New subprograms.
2973         (Interface_Present, Set_Interface_Present): New subprograms.
2974         (Limited_Present, Set_Limited_Present): Available also in derived
2975         type definition nodes.
2976         (Protected_Present, Set_Protected_Present): Available also in
2977         record type definition and
2978         derived type definition nodes.
2979         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
2980         (Task_Present, Set_Task_Present): New subprogram.
2981         (Task_Body_Procedure): Removed.
2982         (Set_Task_Body_Procedure): Removed.
2983         These subprogram have been removed because the attribute
2984         Task_Body_Procedure has been moved to the corresponding task type
2985         or task subtype entity to leave a field free to store the list
2986         of interfaces implemented by a task (for AI-345)
2987         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
2988         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
2989         expression flag Do_Range_Check
2990         (Exception_Junk): Change to Flag7 to accomodate above change
2991         (Box_Present, Default_Name, Specification, Set_Box_Present,
2992         Set_Default_Name, Set_Specification): Expand the expression
2993         "X in N_Formal_Subprogram_Declaration" into the corresponding
2994         two comparisons. Required to use the csinfo tool.
2995
2996         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
2997         "with string" given.
2998
2999         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
3000         expression given.
3001
3002         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
3003         in 2005 mode
3004
3005         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
3006         attribute Task_Body_Procedure rather than the old semantic field that
3007         was available in the task_type_declaration node.
3008
3009         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
3010         interface type definitions.
3011         (P_Formal_Derived_Type_Definition): Modified to handle the list of
3012         interfaces.
3013
3014         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
3015         task type declaration.
3016         (P_Protected): Modified to handle the list of interfaces in a
3017         protected type declaration.
3018
3019 2005-03-15  Doug Rupp  <rupp@adacore.com>
3020             Vincent Celier  <celier@adacore.com>
3021
3022         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
3023         (Gen_Output_File_C): Likewise.
3024         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
3025
3026 2005-03-15  Thomas Quinot  <quinot@adacore.com>
3027
3028         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
3029         is an N_Raise_Constraint_Error node, create a new copy of it without
3030         going through a call to Duplicate_Subexpr.
3031
3032 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
3033             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3034             Nicolas Setton  <setton@adacore.com>
3035             Ed Schonberg  <schonberg@adacore.com>
3036
3037         PR ada/19900
3038         PR ada/19408
3039         PR ada/19140
3040         PR ada/20255
3041
3042         * decl.c (gnat_to_gnu_field): Reject aliased components with a
3043         representation clause that prescribes a size not equal to the rounded
3044         size of their types.
3045         (gnat_to_gnu_entity, case E_Component): Always look at
3046         Original_Record_Component if Present and not the entity.
3047         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
3048         of tagged extension types by not making field for components that are
3049         inside the parent.
3050         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
3051         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
3052         expression to the type of the object when the object is constant.
3053         Reverse defer_debug_incomplete_list before traversing it, so that trees
3054         are processed in the order at which they were added to the list. This
3055         order is important when using the stabs debug format.
3056         If we are deferring the output of debug information, also defer this
3057         output for a function return type.
3058         When adding fields to a record, prevent emitting debug information
3059         for incomplete records, emit the information only when the record is
3060         complete.
3061         (components_to_record): New parameter defer_debug.
3062         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
3063         (gnat_to_gnu_field_decl): New function.
3064         (substitution_list, annotate_rep): Call it.
3065         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
3066         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
3067         No longer update discriminants to not be a COMPONENT_REF.
3068         (copy_alias_set): Strip padding from input type; also handle
3069         unconstrained arrays properly.
3070
3071         * gigi.h (write_record_type_debug_info): New function.
3072         Convert to use ANSI-style prototypes. Remove unused
3073         declarations for emit_stack_check, elab_all_gnat and
3074         set_second_error_entity.
3075         (gnat_to_gnu_field_decl): New decl.
3076
3077         * utils.c (write_record_type_debug_info): New function.
3078         (finish_record_type): Delegate generation of debug information to
3079         write_record_type_debug_info.
3080         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
3081         (update_pointer_to): Fix pasto.
3082         (convert) <UNION_TYPE>: Accept slight type variations when
3083         converting to an unchecked union type.
3084
3085         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
3086         replace the N_Freeze_Entity with a null statement.
3087
3088         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
3089         within a constrained subcomponent of an enclosing record, place the
3090         freeze nodes in the scope stack entry for the enclosing record.
3091         (Undelay_Type): New Subprogram.
3092         (Set_Small_Size): Pass T, the type to modify; all callers changed.
3093         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
3094         within records; allow them to have freeze nodes if their base types
3095         aren't frozen yet.
3096
3097         * exp_util.adb (Remove_Side_Effects): Properly test for
3098         Expansion_Delayed and handle case when it's inside an
3099         N_Qualified_Expression.
3100
3101         * sem_ch3.adb (Derived_Type_Declaration): New predicate
3102         Comes_From_Generic, to recognize accurately that the parent type in a
3103         derived type declaration can be traced back to a formal type, because
3104         it is one or is derived from one, or because its completion is derived
3105         from one.
3106         (Constrain_Component_Type): If component comes from source and has no
3107         explicit constraint, no need to constrain in in a subtype of the
3108         enclosing record.
3109         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
3110         Minor change to propagate Is_Ada_2005 flag
3111
3112         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
3113         Expansion_Delayed is False.
3114         (assoc_to_constructor): Ignore fields that have a
3115         Corresponding_Discriminant.
3116         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
3117         function returns "by target", dereference the target pointer using the
3118         type of the actual return value.
3119         <all>: Be prepared for a null gnu_result.
3120         (processed_inline_subprograms): Check flag_really_no_inline
3121         instead of flag_no_inline.
3122         (set_second_error_entity): Remove unused function.
3123         (gnat_to_gnu, case N_Selected_Component): Call
3124         gnat_to_gnu_field_decl.
3125         (assoc_to_constructor): Likewise.
3126
3127 2005-03-15  Robert Dewar  <dewar@adacore.com>
3128             Ed Schonberg  <schonberg@adacore.com>
3129             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3130
3131         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
3132         Must_Be_Byte_Aligned for cases where we do not need to use a
3133         System.Pack_nn unit.
3134
3135         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
3136         as procedures.
3137         Needed now that we do some processing for IN parameters as well. This
3138         may well fix some unrelated errors.
3139         (Expand_Call): Handle case of unaligned objects (in particular those
3140         that come from packed arrays).
3141         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
3142         renamed entity is an inherited operation, re-expand the call using the
3143         original operation, which is the one to call.
3144         Detect attempt to inline parameterless recursive subprogram.
3145         (Represented_As_Scalar): Fix to work properly with private types
3146         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
3147         accurate estimate. Yields True in far fewer cases than before,
3148         improving the quality of code that depends on this test.
3149
3150         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
3151         over both visible and private declarations to remove them from tree,
3152         and mark subprograms declared in package as eliminated, to prevent
3153         spurious use in subsequent compilation of generic units in the context.
3154
3155         * exp_util.ads: Minor cleanup in variable names
3156
3157         * sem_eval.ads, sem_eval.adb: Minor reformatting
3158         (Compile_Time_Known_Bounds): New function
3159
3160 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
3161
3162         * exp_ch7.adb (Convert_View): Use base types of underlying types when
3163         determining whether an unchecked conversion is needed for the argument
3164         of an initialization call.
3165
3166 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
3167
3168         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
3169         that appears in the instantiation rather than the internal subtype
3170         generated in the wrapper package, to avoid anomalies in gigi when the
3171         target is derived from a private type whose full view is an access type.
3172
3173 2005-03-15  Robert Dewar  <dewar@adacore.com>
3174
3175         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
3176         not needed.
3177         Add documentation to replace the use of this flag
3178         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
3179         the x86_64.
3180
3181 2005-03-15  Thomas Quinot  <quinot@adacore.com>
3182
3183         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
3184         here from exp_attr so it can be shared between exp_attr and exp_dist.
3185         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
3186         all TSS names, not a subset thereof, and the previous name introduced
3187         an unnecessarily confusion that a distinction might exist between
3188         "OK" TSS names and some "not OK" TSS names.
3189
3190 2005-03-15  Doug Rupp  <rupp@adacore.com>
3191
3192         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
3193         Command_Name.
3194
3195 2005-03-15  Pascal Obry  <obry@adacore.com>
3196             Eric Botcazou  <ebotcazou@adacore.com>
3197
3198         PR ada/20226
3199         PR ada/20344
3200
3201         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
3202         when IN_RTS. This is to work around a bootstrap path problem.
3203
3204         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
3205         table and pass it to __gnat_install_SEH_handler().
3206         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
3207
3208         * lang.opt: Fix specification of -fRTS=.
3209
3210 2005-03-15  Doug Rupp  <rupp@adacore.com>
3211             Bernard Banner  <banner@adacore.com>
3212             Vincent Celier  <celier@adacore.com>
3213             Arnaud Charlet  <charlet@adacore.com>
3214
3215         PR ada/6852
3216         This change works fine when gnatlib is built from the gcc directory,
3217         but does not work when using the libada Makefile, since GCC_FOR_TARGET
3218         is not passed to ada/Makefile.in, so more work is needed by a
3219         Makefile/configure expert.
3220
3221         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
3222         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
3223         Setup gnatlink switch -M for x86_64 linux, as it is already setup
3224         for Linux x86.
3225         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
3226         Run ranlib on libgccprefix.a
3227         Define PREFIX_OBJS for Darwin, to build libgccprefix.
3228         (ADA_INCLUDE_SRCS): Split Ada packages.
3229
3230 2005-03-15  Robert Dewar  <dewar@adacore.com>
3231
3232         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
3233
3234         * impunit.adb: Add GNAT.UTF_32
3235
3236         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
3237
3238         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
3239         now uses GNAT.UTF_32).
3240
3241     &