1 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
3 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
6 2005-07-07 Pascal Obry <obry@adacore.com>
8 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
9 returned type on Windows.
11 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
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".
18 2005-07-07 Vincent Celier <celier@adacore.com>
20 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
21 the destructor/constructor attributes for <lib>final/<lib>init.
23 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
25 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
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.
30 2005-07-07 Javier Miranda <miranda@adacore.com>
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.
36 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
37 abstract interface types in order to leave the code clearer and easier
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
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.
51 2005-07-07 Javier Miranda <miranda@adacore.com>
53 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
55 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
58 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
61 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
62 use of tag incomplete types.
64 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
65 give support to tagged incomplete types.
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.
73 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
76 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
79 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
80 N_Incomplete_Type_Declaration nodes.
82 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
83 Tag_Present to give support to tagged incomplete types:
85 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
88 2005-07-07 Olivier Hainque <hainque@adacore.com>
92 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
93 definitions for the Unwind wrappers in the compiler case.
95 2005-07-07 Ed Schonberg <schonberg@adacore.com>
96 Javier Miranda <miranda@adacore.com>
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.
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
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.
120 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
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.
127 2005-07-07 Ed Schonberg <schonberg@adacore.com>
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.
133 2005-07-07 Bernard Banner <banner@adacore.com>
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.
139 2005-07-07 Thomas Quinot <quinot@adacore.com>
141 * expect.c: Minor reformatting
143 2005-07-07 Sergey Rybin <rybin@adacore.com>
145 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
148 * gnat_ugn.texi: Add description for new gnatpp option
151 2005-07-04 Thomas Quinot <quinot@adacore.com>
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.
157 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
158 Olivier Hainque <hainque@adacore.com>
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.
165 * init.c (Tru64 section): New function __gnat_set_code_loc.
167 2005-07-04 Vincent Celier <celier@adacore.com>
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.
175 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
176 __gnat_sals_init_using_constructors): New functions.
178 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
179 Linker_Constructor and Linker_Destructor when switch -a is used.
181 * bindusg.adb: Add line for new switch -a
183 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
184 (Gnatbind): When switch -a is used, check if it is allowed
186 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
188 2005-07-04 Joel Brobecker <brobecker@adacore.com>
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.
195 2005-07-04 Gary Dismukes <dismukes@adacore.com>
196 Ed Schonberg <schonberg@adacore.com>
197 Javier Miranda <miranda@adacore.com>
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.
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.
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
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.
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.
222 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
224 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
225 <Pragma_Linker_Destructor>: Likewise.
227 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
228 Pragma_Linker_Destructor.
230 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
231 ATTR_LINK_DESTRUCTOR.
232 (static_ctors, static_dtors): New variables.
234 * misc.c (gnat_expand_body): Output current function as constructor
235 and destructor if requested.
237 * par-prag.adb: Add processing for pragma Linker_Constructor and
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.
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.
252 * trans.c: Include cgraph.h.
253 (build_global_cdtor): New function.
254 (Compilation_Unit_to_gnu): Build global constructor and destructor if
256 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
258 (addressable_p) <COMPONENT_REF>: Unconditionally test
259 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
261 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
262 variable if it is external.
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
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
276 2005-07-04 Ed Schonberg <schonberg@adacore.com>
278 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
279 to prevent spurious warnings.
281 2005-07-04 Thomas Quinot <quinot@adacore.com>
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
289 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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.
297 2005-07-04 Vincent Celier <celier@adacore.com>
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
303 2005-07-04 Matthew Gingell <gingell@adacore.com>
305 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
307 * indepsw-linux.adb: Replace by...
309 * indepsw-gnu.adb: ...this new file
311 2005-07-04 Vincent Celier <celier@adacore.com>
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.
318 * mlib-tgt.ads: Minor reformatting
320 * mlib-utl.ads: Minor reformatting
322 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
324 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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
332 2005-07-04 Javier Miranda <miranda@adacore.com>
334 * par-load.adb: Load the context items in two rounds.
336 2005-07-04 Robert Dewar <dewar@adacore.com>
338 * scng.adb: Do not consider Mod used as an attribute to be a keyword
340 2005-07-04 Ed Schonberg <schonberg@adacore.com>
341 Javier Miranda <miranda@adacore.com>
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.
351 2005-07-04 Thomas Quinot <quinot@adacore.com>
353 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
354 overloaded function call, carry interpretations from the original tree
357 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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.
363 2005-07-04 Gary Dismukes <dismukes@adacore.com>
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.
369 2005-07-04 Thomas Quinot <quinot@adacore.com>
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.
374 2005-07-04 Ed Schonberg <schonberg@adacore.com>
376 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
377 present before checking whether an interface type covers a synchronized
380 2005-07-04 Ed Schonberg <schonberg@adacore.com>
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.
386 2005-07-04 Robert Dewar <dewar@adacore.com>
390 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
392 2005-07-04 Matthew Gingell <gingell@adacore.com>
394 * tracebak.c: Enable tracebacks on ia64 platforms
396 2005-07-04 Vincent Celier <celier@adacore.com>
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.
402 2005-07-04 Vincent Celier <celier@adacore.com>
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
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.
411 2005-07-04 Matthew Heaney <heaney@adacore.com>
413 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
415 * a-coinve.adb: Perform constraint checks explicitly.
417 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
418 Thomas Quinot <quinot@adacore.com>
420 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
421 new target gen-soccon.
423 2005-07-04 Robert Dewar <dewar@adacore.com>
425 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
427 2005-07-04 Thomas Quinot <quinot@adacore.com>
429 * g-socket.ads (Check_Selector): Minor rewording of comment.
431 2005-07-04 Vincent Celier <celier@adacore.com>
433 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
435 2005-07-04 Thomas Quinot <quinot@adacore.com>
437 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
439 2005-07-04 Sergey Rybin <rybin@adacore.com>
441 * gnat_ugn.texi: Add description of --eol gnatpp option
443 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
444 Thomas Quinot <quinot@adacore.com>
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
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.
455 2005-07-04 Arnaud Charlet <charlet@adacore.com>
457 * s-stausa.ads, s-stausa.adb: New files.
459 2005-06-30 Kelley Cook
461 * all files: Update FSF address in copyright headers.
462 * gen-soccon.co (main): Output new FSF address in generated files.
464 2005-06-28 Paul Brook <paul@codesourcery.com>
466 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
468 2005-06-14 Olivier Hainque <hainque@adacore.com>
469 Eric Botcazou <ebotcazou@adacore.com>
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
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
481 2005-06-14 Doug Rupp <rupp@adacore.com>
483 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
485 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
487 2005-06-14 Pascal Obry <obry@adacore.com>
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
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.
628 2005-06-14 Jose Ruiz <ruiz@adacore.com>
629 Arnaud Charlet <charlet@adacore.com>
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.
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.
646 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
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.
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
661 (Set_False): Add this procedure that sets the state of the suspension
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
672 (Finalize): Add this procedure for finalizing the suspension object,
673 destroying the mutex and the condition variable.
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.
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.
692 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
693 (Setup_Interrupt_Mask): New procedure.
695 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
697 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
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.
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
707 2005-06-14 Robert Dewar <dewar@adacore.com>
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).
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
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
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
738 * a-ztenau.adb: Add with of Ada.Characters.Conversions
740 * a-chacon.ads, a-chacon.adb: New files.
742 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
743 categorization violations.
745 * a-strmap.ads: Add pragma Pure_05 for AI-362
746 * a-strmap.ads: Add note on implicit categorization for AI-362
748 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
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
755 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
756 when needed for proper processing of categorization stuff
759 For several cases, make errors in preealborate units warnings,
760 instead of errors, if GNAT_Mode is set. For AI-362.
762 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
763 preelaborate unit is now warning if in GNAT mode
765 * s-stoele.ads: Document AI-362 for pragma preelaborate
767 2005-06-14 Doug Rupp <rupp@adacore.com>
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.
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
778 2005-06-14 Vincent Celier <celier@adacore.com>
780 * gnatsym.adb: Adapt to modification of package Symbols: procedure
781 Process is now in package Processing.
783 * symbols.ads, symbols.adb:
784 (Processing): New package, containing procedure Process
786 * symbols-vms-alpha.adb:
787 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
789 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
790 symbols-processing-vms-ia64.adb: New files.
792 2005-06-14 Pascal Obry <obry@adacore.com>
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.
799 2005-06-14 Doug Rupp <rupp@adacore.com>
800 Pascal Obry <obry@adacore.com>
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.
811 2005-06-14 Robert Dewar <dewar@adacore.com>
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
817 2005-06-14 Robert Dewar <dewar@adacore.com>
819 * ali-util.adb, gnatbind.adb: Remove references to
820 Force_RM_Elaboration_Order.
822 * switch-b.adb: Remove recognition of -f switch
824 2005-06-14 Pascal Obry <obry@adacore.com>
826 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
827 implementation which is slightly more efficient.
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>
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.
840 (Tagged_Membership): Modified to gives support to abstract interface
843 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
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
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.
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.
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).
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
901 (Collect_All_Interfaces): New subprogram that collects the whole list
902 of interfaces that are directly or indirectly implemented by a tagged
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
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
922 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
923 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
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
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
939 (Check_Anonymous_Access_Types): Before full analysis of a record type
940 declaration, create anonymous access types for each self-referential
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
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
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
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
992 * debug.adb: Complete documentation of flag "-gnatdZ"
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
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
1006 (Expand_N_Object_Declaration): Do not generate an initialization for
1007 a scalar temporary marked as internal.
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
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.
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
1032 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
1033 previous ones that return the corresponding tag and access_disp_table
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.
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
1046 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
1047 "constant access" and "aliased [constant] access" when not compiling
1049 Suppress Ada 2005 keyword warning if -gnatwY used
1050 (P_Identifier_Declarations): Add support for object declarations with
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.
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
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.
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
1080 (Check_Overriding_Indicator): Check consistency of overriding indicator
1081 on subprogram stubs as well.
1082 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
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
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
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
1108 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
1110 If the subprogram is a null procedure, indicate that it does not need
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
1118 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
1119 to give support to abstract interface types
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
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.
1155 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
1156 Has_Compatible_Type): Modified to give support to abstract interface
1158 (Interface_Present_In_Ancestor): New function to theck if some ancestor
1159 of a given type implements a given interface
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
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.
1171 2005-06-14 Robert Dewar <dewar@adacore.com>
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.
1176 2005-06-14 Robert Dewar <dewar@adacore.com>
1178 * atree.adb: (Elist*): Protect against uninitialized field
1180 2005-06-14 Ed Schonberg <schonberg@adacore.com>
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.
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.
1193 2005-06-14 Vincent Celier <celier@adacore.com>
1195 * clean.adb (Clean_Project): Correctly delete executable specified as
1196 absolute path names.
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
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.
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>
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):
1232 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
1233 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
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
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.
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
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.
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.
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
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.
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
1316 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
1317 relaxation of rules for access types in pure, shared passive partitions.
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.
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.
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
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
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
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.
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
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
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:
1393 GENERIC_INSTANTIATION
1394 SUBPROGRAM_SPECIFICATION
1396 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
1397 can start with an overriding indicator.
1399 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
1400 flags accordingly on subrogram specifications or instances.
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
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.
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
1420 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
1423 2005-06-14 Ed Schonberg <schonberg@adacore.com>
1424 Robert Dewar <dewar@adacore.com>
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
1430 2005-06-14 Ed Schonberg <schonberg@adacore.com>
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.
1440 2005-06-14 Thomas Quinot <quinot@adacore.com>
1442 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
1443 denoting a formal parameter into account.
1445 2005-06-14 Ed Schonberg <schonberg@adacore.com>
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.
1451 2005-06-14 Nicolas Setton <setton@adacore.com>
1452 Ed Schonberg <schonberg@adacore.com>
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.
1461 2005-06-14 Thomas Quinot <quinot@adacore.com>
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
1469 2005-06-14 Robert Dewar <dewar@adacore.com>
1471 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
1473 2005-06-14 Jose Ruiz <ruiz@adacore.com>
1475 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
1476 can determine whether pragma Suppress_Exception_Locations is in effect.
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.
1482 2005-06-14 Emmanuel Briot <briot@adacore.com>
1484 * g-debpoo.adb (Deallocate, Dereference): Improve output.
1486 2005-06-14 Nicolas Roche <roche@adacore.com>
1488 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
1490 (Next_Level): Fix minor bug in handling of ../dir case
1491 (Read): Add dir separator to Directory name so that "" is understood as
1494 2005-06-14 Pascal Obry <obry@adacore.com>
1496 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
1497 releasing the items.
1499 2005-06-14 Vincent Celier <celier@adacore.com>
1500 Cyrille Comar <comar@adacore.com>
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.
1507 2005-06-14 Thomas Quinot <quinot@adacore.com>
1511 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
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.
1520 2005-06-14 Gary Dismukes <dismukes@adacore.com>
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
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
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>
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.
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.
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.
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.
1565 2005-06-14 Ed Schonberg <schonberg@adacore.com>
1566 Emmanuel Briot <briot@adacore.com>
1568 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
1569 declared within an inlined body as referenced, to prevent spurious
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
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.
1582 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
1583 to store information about instantiated entities.
1585 * ali.adb (Scan_ALI): Add support for parsing the reference to the
1588 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
1589 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
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>
1597 * Make-lang.in: Add initialize.o when needed.
1598 Remove obsolete references to RT_FLAGS.
1599 Add missing dependencies for sdefault.o
1601 * initialize.c: New file.
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
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
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.
1623 2005-06-14 Pascal Obry <obry@adacore.com>
1625 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
1628 2005-06-14 Robert Dewar <dewar@adacore.com>
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
1636 * switch-c.adb: Recognize -gnatwy/Y
1637 Set Ada_Version_Explicit, for implementation of AI-362
1638 The -gnatg switch now includes -gnatyu
1640 * usage.adb: Add -gnatwy/Y
1641 Remove wrong asterisk on -gnatwX line
1642 Add line for -gnatyu switch
1644 2005-06-14 Vincent Celier <celier@adacore.com>
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.
1650 2005-06-14 Robert Dewar <dewar@adacore.com>
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
1657 2005-06-14 Vincent Celier <celier@adacore.com>
1659 * prep.adb (Preprocess): Ignore error when scanning the first token of
1662 2005-06-14 Vincent Celier <celier@adacore.com>
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.
1670 2005-06-14 Vincent Celier <celier@adacore.com>
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
1681 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
1683 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
1685 2005-06-14 Robert Dewar <dewar@adacore.com>
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
1691 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
1693 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
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
1699 * nmake.adt: Modify header so that xnmake does not generate output
1700 files with multiple blank lines.
1702 * treeprs.adt: Remove a blank line so that output from xtreeprs does
1703 not have an extra blank line
1705 2005-06-14 Gary Dismukes <dismukes@adacore.com>
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.
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
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.
1720 2005-06-14 Ed Schonberg <schonberg@adacore.com>
1722 * sem_case.adb (Expand_Others_Choice): Improve warning.
1724 2005-06-14 Ed Schonberg <schonberg@adacore.com>
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.
1731 2005-06-14 Robert Dewar <dewar@adacore.com>
1732 Ed Schonberg <schonberg@adacore.com>
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
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
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
1760 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
1762 2005-06-14 Ed Schonberg <schonberg@adacore.com>
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.
1768 2005-06-14 Thomas Quinot <quinot@adacore.com>
1770 * s-strxdr.adb: Follow AI95-00132
1772 2005-06-14 Arnaud Charlet <charlet@adacore.com>
1774 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
1776 2005-06-14 Arnaud Charlet <charlet@adacore.com>
1777 Jose Ruiz <ruiz@adacore.com>
1779 * s-tposen.adb, s-tpobop.adb
1780 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
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.
1789 2005-06-14 Robert Dewar <dewar@adacore.com>
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
1797 * nmake.adt: Modify header so that xnmake does not generate output
1798 files with multiple blank lines.
1800 * treeprs.adt: Remove a blank line so that output from xtreeprs does
1801 not have an extra blank line
1803 2005-06-14 Sergey Rybin <rybin@adacore.com>
1805 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
1807 2005-06-14 Doug Rupp <rupp@adacore.com>
1808 Vincent Celier <celier@adacore.com>
1810 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
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
1817 Remove useless second style check keyword NONE
1818 Remove help documentation for inexistent style check keyword
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
1825 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
1827 2005-06-14 Vincent Celier <celier@adacore.com>
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
1838 2005-06-14 Matthew Heaney <heaney@adacore.com>
1840 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
1841 * a-swuwha.ads, a-swuwha.adb: New files
1843 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
1844 * a-szuzha.ads, a-szuzha.adb: New files.
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
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>
1863 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
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
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
1873 (tree_transform, case N_Return_Statement): Pass extra arg to
1876 * decl.c (annotate_value): Remove early return if -gnatR is not
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.
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
1888 (create_concat_name): Idem.
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>
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.
1906 Commented out menu lines and empty section for gnatclean examples
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
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.
1926 * g-trasym.ads: Document that IRIX is supported
1928 2005-06-10 Arnaud Charlet <charlet@adacore.com>
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.
1934 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
1935 * a-zchara.ads, a-widcha.ads: New files.
1937 * system-hpux-ia64.ads: New file.
1939 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
1940 is imported from the VxWorks kernel.
1942 2005-06-14 Robert Dewar <dewar@adacore.com>
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.
1957 2005-06-14 Thomas Quinot <quinot@adacore.com>
1959 * xeinfo.adb: Fix typo in comment
1961 2005-06-14 Javier Miranda <miranda@adacore.com>
1963 * repinfo.ads: Fix typo in comment
1965 2005-06-14 Gary Dismukes <dismukes@adacore.com>
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.
1972 2005-06-14 Bernard Banner <banner@adacore.com>
1974 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
1975 also apply for handling support for VxSim 653.
1977 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
1979 * xsnames.adb: Add automatic generation of snames.h.
1981 2005-06-14 Thomas Quinot <quinot@adacore.com>
1983 * gen-soccon.c: Add IP_MULTICAST_IF constant
1984 Minor reformatting and adjustments to prevent warnings.
1986 2005-06-14 Pascal Obry <obry@adacore.com>
1988 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
1990 2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
1992 * trans.c (gnat_gimplify_expr): Call
1993 recompute_tree_invarant_for_addr_expr when we change
1994 the operand of the ADDR_EXPR.
1996 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1998 * misc.c: Don't include errors.h.
2000 2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2002 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
2004 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
2006 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
2008 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
2010 2005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
2013 * Makefile.in: Make TGT_LIB behave correctly.
2015 2005-04-23 DJ Delorie <dj@redhat.com>
2017 * misc.c: Adjust warning() callers.
2019 2005-04-16 Laurent GUERBY <laurent@guerby.net>
2022 * a-nudira.adb (Value): Check for valid string.
2023 * a-nuflra.adb (Value): Likewise.
2025 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
2027 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
2029 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
2031 * adaint.c, init.c, tracebak.c: Fix comment typos.
2032 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
2034 2005-04-07 Laurent GUERBY <laurent@guerby.net>
2035 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
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.
2041 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
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
2047 2005-03-30 Tom Tromey <tromey@redhat.com>
2049 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
2051 2005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2053 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
2055 2005-03-29 Robert Dewar <dewar@adacore.com>
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
2061 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
2063 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
2066 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
2068 2005-03-29 Vincent Celier <celier@adacore.com>
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.
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
2079 2005-03-29 Doug Rupp <rupp@adacore.com>
2081 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
2084 2005-03-29 Javier Miranda <miranda@adacore.com>
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.
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.
2095 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
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.
2101 * rtsfind.ads: Remove support to call the run-time
2104 2005-03-29 Robert Dewar <dewar@adacore.com>
2106 * errutil.adb, errout.adb:
2107 Minor comment updates on Line_Terminator references
2109 * par-ch10.adb: Add ??? comment about line terminator
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.
2117 * styleg.adb: Add ??? comment for line terminator reference
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)
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.
2128 * stylesw.ads, stylesw.adb:
2129 Add handling for new -gnatyd switch (check dos line terminator)
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
2136 Add line for new -gnatyd switch (check dos line terminator)
2138 * usage.adb: Add lines for -gnatwb/-gnatwB
2140 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
2142 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
2144 * gnat_ugn.texi: Fix overlong lines
2145 Document new -gnatyd switch
2146 Document new -gnatwb/-gnatwB switches
2148 2005-03-29 Ed Schonberg <schonberg@adacore.com>
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.
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
2158 2005-03-29 Thomas Quinot <quinot@adacore.com>
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).
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.
2172 2005-03-29 Gary Dismukes <dismukes@adacore.com>
2173 Robert Dewar <dewar@adacore.com>
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.
2184 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
2185 05 unit for AI-260-02).
2187 * a-tgdico.ads: New file.
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.
2192 * snames.ads, snames.adb (Preset_Names): Add entry for
2193 Generic_Dispatching_Constructor.
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.
2206 2005-03-29 Robert Dewar <dewar@adacore.com>
2208 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
2210 (Is_Possibly_Unaligned_Object): Correct typo that
2211 resulted in inaccurate result for unaligned scalars within records.
2213 2005-03-29 Ed Schonberg <schonberg@adacore.com>
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.
2219 2005-03-29 Vincent Celier <celier@adacore.com>
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.
2225 2005-03-29 Doug Rupp <rupp@adacore.com>
2227 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
2230 2005-03-29 Robert Dewar <dewar@adacore.com>
2232 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
2235 2005-03-29 Robert Dewar <dewar@adacore.com>
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.
2241 2005-03-29 Robert Dewar <dewar@adacore.com>
2243 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
2244 rather than proceed ahead using a junk attribute name.
2246 2005-03-29 Vincent Celier <celier@adacore.com>
2248 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
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".
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
2259 (Process): Use the Display_Name in error messages
2261 * prj-strt.adb (External_Reference): Allow default to be string
2262 expressions, not only literal strings.
2264 2005-03-29 Vincent Celier <celier@adacore.com>
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.
2269 2005-03-29 Thomas Quinot <quinot@adacore.com>
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.
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.
2279 2005-03-29 Robert Dewar <dewar@adacore.com>
2281 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
2284 2005-03-29 Ed Schonberg <schonberg@adacore.com>
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.
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.
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.
2308 2005-03-29 Ed Schonberg <schonberg@adacore.com>
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).
2317 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2320 * utils.c (finish_record_type): Use variable_size when setting sizes.
2322 2005-03-29 Robert Dewar <dewar@adacore.com>
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
2328 2005-03-29 Robert Dewar <dewar@adacore.com>
2330 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
2331 buffer if an exception is raised.
2333 2005-03-29 Ed Falis <falis@adacore.com>
2335 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
2338 2005-03-29 Robert Dewar <dewar@adacore.com>
2340 * sem_util.ads: Minor reformatting
2341 * gnat_rm.texi: Minor editing.
2343 2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
2345 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
2346 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
2348 2005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
2350 * adaint.c (__gnat_portable_spawn): Adjust cast.
2352 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
2354 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
2356 2005-03-17 Pascal Obry <obry@adacore.com>
2358 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
2361 * expect.c (__gnat_waitpid): Moved here from adaint.c.
2362 Reimplement under Win32 using Win32 API.
2364 (__gnat_kill) [Win32]: Properly close the process handle before leaving
2367 2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
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.
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.
2378 * misc.c (gnat_handle_option): Handle -gnatO separately.
2379 (gnat_print_decl) <VAR_DECL>: New case.
2380 Print the DECL_RENAMED_OBJECT node.
2382 * lang.opt: Declare separate -gnatO option.
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.
2390 2005-03-17 Javier Miranda <miranda@adacore.com>
2392 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
2393 (Get_Inheritance_Depth): Removed.
2394 (Set_Inheritance_Depth): Removed.
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
2400 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
2401 (CPP_Get_Inheritance_Depth): Removed.
2402 (CPP_Set_Inheritance_Depth): Removed.
2404 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
2406 2005-03-17 Robert Dewar <dewar@adacore.com>
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.
2411 2005-03-17 Javier Miranda <miranda@adacore.com>
2413 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
2414 of one barrier to avoid wrong usage of this attribute.
2416 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
2417 First_Private_Entity.
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.
2428 2005-03-17 Ed Schonberg <schonberg@adacore.com>
2430 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
2433 2005-03-17 Thomas Quinot <quinot@adacore.com>
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.
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.
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
2456 2005-03-17 Ed Schonberg <schonberg@adacore.com>
2458 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
2459 entity is an operator.
2461 2005-03-17 Thomas Quinot <quinot@adacore.com>
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.
2466 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
2469 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
2470 when no distribution runtime library is available.
2472 * sem_res.adb, sem_dist.adb: Disable expansion of remote
2473 access-to-subprogram types when no distribution runtime library is
2475 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
2476 predicate available to other units.
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.
2481 2005-03-17 Vincent Celier <celier@adacore.com>
2483 * make.adb (Insert_Project_Sources): Make sure the Q is always
2486 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
2487 the default for the tree, not the global default naming.
2489 * prj-proc.adb (Recursive_Process): No need to put the default naming
2490 in the project data, it's already there.
2492 2005-03-17 Doug Rupp <rupp@adacore.com>
2494 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
2496 * 5xcrtl.ads: Renamed to...
2497 * s-crtl-vms64.ads: ...this new file
2499 2005-03-17 Robert Dewar <dewar@adacore.com>
2503 * namet.adb (Copy_One_Character): Set proper wide character encoding
2504 for upper half character if we have upper half encoding.
2506 2005-03-17 Robert Dewar <dewar@adacore.com>
2508 * par.adb (Par): Improved msg for attempt to recompile predefined unit
2510 2005-03-17 Thomas Quinot <quinot@adacore.com>
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.
2516 2005-03-17 Javier Miranda <miranda@adacore.com>
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.
2523 2005-03-17 Jose Ruiz <ruiz@adacore.com>
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.
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
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
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
2557 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
2558 used to store the protected object's owner.
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.
2567 2005-03-17 Vincent Celier <celier@adacore.com>
2568 Nicolas Setton <setton@adacore.com>
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
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.
2578 2005-03-17 Vincent Celier <celier@adacore.com>
2580 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
2581 -gnat83, -gnat95 and -gnat05.
2583 2005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
2585 * gnat_ugn.texi: Document gnatmem restriction
2587 2005-03-17 Thomas Quinot <quinot@adacore.com>
2589 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
2592 2005-03-17 Robert Dewar <dewar@adacore.com>
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
2598 * casing.adb: Comment improvements
2600 2005-03-17 Pascal Obry <obry@adacore.com>
2602 * g-expect.adb: Minor reformatting.
2604 2005-03-15 Zack Weinberg <zack@codesourcery.com>
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
2610 2005-03-15 Vincent Celier <celier@adacore.com>
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.
2617 2005-03-15 Jakub Jelinek <jakub@redhat.com>
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.
2623 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
2625 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
2626 to NULL_TREE on entry.
2628 2005-03-15 Robert Dewar <dewar@adacore.com>
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.
2644 * opt.ads: Add new flag Opt.Address_Is_Private
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.
2651 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
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
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.
2663 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
2664 (Create_Task): Account for the Yellow Zone and the guard page.
2666 2005-03-15 Vincent Celier <celier@adacore.com>
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.
2677 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
2678 to use the project manager.
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.
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=...".
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.
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
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
2717 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
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
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
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.
2741 * prj-attr.ads: Add with Table; needed, as package Prj no longer
2742 imports package Table.
2744 * prj-com.adb: Remove empty, no longer needed body
2746 * prj-com.ads: Move most of the content of this package to package Prj.
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
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.
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
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
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
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
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
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.
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.
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.
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
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.
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.
2814 * makegpr.adb (Project_Tree): New constant needed to use project
2817 2005-03-15 Olivier Hainque <hainque@adacore.com>
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
2825 * raise.h (__gnat_adjust_context_for_raise): New prototype.
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
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.
2842 2005-03-15 Doug Rupp <rupp@adacore.com>
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,
2849 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
2852 2005-03-15 Nicolas Setton <setton@adacore.com>
2854 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
2857 2005-03-15 Robert Dewar <dewar@adacore.com>
2859 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
2862 * a-retide.ads: Minor comment changes
2864 2005-03-15 Robert Dewar <dewar@adacore.com>
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
2871 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
2873 Avoid unnecessary use of Get/Set_Wide_String
2875 2005-03-15 Robert Dewar <dewar@adacore.com>
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.
2884 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
2886 * g-spipat.ads, g-spipat.adb: New interface for Get_String
2887 Minor reformatting (function specs)
2889 * g-spitbo.adb: New interface for Get_String
2891 * g-spitbo.ads: Minor reformatting
2893 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
2895 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
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>
2902 * atree.ads, atree.adb: Add support for Elist24 field
2904 * atree.h: Fix wrong definition of Field27
2905 Add support for Elist16 field
2906 Add support for Elist24 field
2908 * einfo.ads, einfo.adb (Abstract_Interfaces,
2909 Set_Abstract_Interfaces): New subprograms.
2910 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
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
2926 Update documentation on Must_Be_Byte_Aligned for new spec
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
2945 Bit packed array ops are only called if operands are known to be
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.
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]
2959 * par-ch3.adb (P_Type_Declaration): Modified to give support to
2961 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
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).
2968 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
2969 attribute First_Tag_Component.
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.
2996 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
2997 "with string" given.
2999 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
3002 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
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.
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
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.
3019 2005-03-15 Doug Rupp <rupp@adacore.com>
3020 Vincent Celier <celier@adacore.com>
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
3026 2005-03-15 Thomas Quinot <quinot@adacore.com>
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.
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>
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
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
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.
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.
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.
3085 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
3086 replace the N_Freeze_Entity with a null statement.
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
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.
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
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
3109 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
3110 Minor change to propagate Is_Ada_2005 flag
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.
3127 2005-03-15 Robert Dewar <dewar@adacore.com>
3128 Ed Schonberg <schonberg@adacore.com>
3129 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
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.
3135 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
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.
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.
3155 * exp_util.ads: Minor cleanup in variable names
3157 * sem_eval.ads, sem_eval.adb: Minor reformatting
3158 (Compile_Time_Known_Bounds): New function
3160 2005-03-15 Ed Schonberg <schonberg@adacore.com>
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.
3166 2005-03-15 Ed Schonberg <schonberg@adacore.com>
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.
3173 2005-03-15 Robert Dewar <dewar@adacore.com>
3175 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
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
3181 2005-03-15 Thomas Quinot <quinot@adacore.com>
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.
3190 2005-03-15 Doug Rupp <rupp@adacore.com>
3192 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
3195 2005-03-15 Pascal Obry <obry@adacore.com>
3196 Eric Botcazou <ebotcazou@adacore.com>
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.
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.
3208 * lang.opt: Fix specification of -fRTS=.
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>
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.
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
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.
3230 2005-03-15 Robert Dewar <dewar@adacore.com>
3232 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
3234 * impunit.adb: Add GNAT.UTF_32
3236 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
3238 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
3239 now uses GNAT.UTF_32).