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