1 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
3 * adaint.c init.c initialize.c link.c: Remove system-specific
4 sections of non-supported Interix target.
6 * s-osinte-interix.ads: Removed.
8 * i-cstrin.ads (chars_ptr): Make it a C convention type.
10 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
12 * a-tasatt.adb: Add a comment at the beginning of the package
13 explaining why in general 'Unchecked_Access must be used instead
16 * sem_prag.adb (Process_Convention): Move the test for the
17 entity on which the Convention pragma applies down to also
18 forbid pragma Convention on enumeration literals reached
21 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
23 * a-tasatt.adb: Revert previous change for this file as it will
24 generate an error when this package is instantiated from a
27 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
29 * a-tasatt.adb: Type Wrapper should be declared in comment instead
30 of already declared type Node_Access.
31 Use 'Access instead of 'Unchecked_Access when applicable. Local
32 lifetime is the one of the package.
33 (Set_Value): W is allocated on the heap.
35 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
37 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
39 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
42 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
44 (elaboration code): Timer_Queue lifetime is the one of the
47 * tracebak.c (i386 alternative): Remove useless comparaison
48 which is always false; LOWEST_ADDRESS is 0 and is never greater
49 than an unsigned integer.
51 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
52 embedded check for "Ada_Version >= Ada_05".
54 2007-11-07 Olivier Hainque <hainque@adacore.com>
56 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
57 craft and expand comment.
59 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
61 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
63 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
65 * misc.c (gnat_handle_option): Replace call to abort with
66 call to gcc_unreachable.
67 (gnat_init): Likewise.
68 (gnat_expand_expr): Likewise.
69 (fp_prec_to_size): Likewise.
70 (fp_size_to_prec): Likewise.
72 2007-10-23 Richard Guenther <rguenther@suse.de>
75 * tracebak.c: #undef abort after including system.h.
77 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
79 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
80 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
82 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
84 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
86 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
87 Set the protection status of the guard page based on the value of On.
89 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
91 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
92 (Exit_Task): Pass False to Hide_Yellow_Zone.
94 2007-10-15 Robert Dewar <dewar@adacore.com>
96 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
97 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
98 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
99 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
100 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
101 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
102 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
103 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
104 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
105 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
106 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
107 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
108 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
109 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
110 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
111 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
113 Add Unreferenced and Warnings (Off) pragmas for cases of
114 variables modified calls where they are IN OUT or OUT parameters and
115 the resulting values are not subsequently referenced. In a few cases,
116 we also remove redundant code found by the new warnings.
118 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
119 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
120 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
121 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
122 warning controlled by -gnatw.o that warns on cases of out parameter
123 values being ignored.
125 2007-10-15 Geert Bosch <bosch@adacore.com>
127 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
129 * expect.c: Initial port to arm-mentor-nucleus.
130 Use kill for __gnat_kill() on VMS.
132 2007-10-15 Emmanuel Briot <briot@adacore.com>
134 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
136 (Xref_Record): Change type for Line, since in the case of a reference to
137 a predefined entity (as happens for array index types), the line is set
139 Add support for parsing multiple array index types info, or
140 multiple inherited interfaces info. This information cannot be stored
141 in Xref_Entity_Record, which only supports a single instance of Tref_*,
142 and is therefore stored in the list of references instead. It has a
143 special treatement later on in tools that use this information.
145 2007-10-15 Tristan Gingold <gingold@adacore.com>
147 * debug.adb: Document use of -gnatd.a and -gnatd.I
149 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
151 2007-10-15 Javier Miranda <miranda@adacore.com>
153 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
154 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
155 care of access to class-wide interface types plus removal of bizarre
156 conversion of tagged object to access type (reported by Gary
157 Dismukes). After this patch there is no need to perform any
158 additional management on these nodes in Expand_Interface_Actuals.
160 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
161 that handles use of 'Access and 'Unchecked_Access applied to
162 actuals covering interface types. Such code is now
163 centralized in Expand_N_Attribute_Reference.
165 2007-10-15 Ed Schonberg <schonberg@adacore.com>
167 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
168 of tagged types whose ultimate ancestor is a CPP type.
169 (Freeze_Array_Type): For a packed array type, generate an initialization
170 procedure if the type is public, to handle properly a client that
171 specifies Normalize_Scalars.
173 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
175 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
176 inside a generic body, retrieve the full view of the entry family
177 discrete subtype if available.
179 2007-10-15 Thomas Quinot <quinot@adacore.com>
181 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
182 attempt to generate stubs for hidden primitive operations.
184 2007-10-15 Vincent Celier <celier@adacore.com>
186 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
187 returning None, used when there is no platform specific body for
190 2007-10-15 Bob Duff <duff@adacore.com>
192 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
193 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
194 the generic Heap_Sort_G, in order to avoid trampolines.
196 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
197 Jose Ruiz <ruiz@adacore.com>
199 * vx_stack_info.c: New file.
201 * i-forbla-unimplemented.ads: New file.
203 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
204 for unsupported configurations; use it on VMS targets instead of the
206 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
207 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
208 used by VxWorks targets to have access to task-specific data and be
209 able to extract the stack boundaries for stack checking.
210 Use system-vms-ia64.ads on ivms.
212 * Make-lang.in: Update dependencies.
214 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
217 2007-10-15 Vincent Celier <celier@adacore.com>
219 * snames.adb, snames.ads: Add new standard name runtime_library_dir
221 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
223 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
225 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
226 the source is unknown.
228 * prj-ext.adb: Spelling error fix
230 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
231 95 reserved word in its name.
232 (Process_Project_Level_Array_Attributes): Process new attribute
235 * prj-part.adb (Parse_Single_Project): Do not check the name of the
236 config project against the user project names.
238 * prj-proc.adb (Expression): In multi-language mode, indexes that do
239 not include a dot are always case insensitive.
240 (Process_Declarative_Items): Ditto
241 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
244 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
245 True, compare both indexes in lower case.
247 2007-10-15 Robert Dewar <dewar@adacore.com>
249 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
251 2007-10-15 Gary Dismukes <dismukes@adacore.com>
253 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
254 association for an access component, add an association with null as
255 the expression. Remove testing for array subtypes and the setting in
256 that case of Ctyp to the array component type, which prevented proper
257 inclusion of an association for null-initialized arrays. Collapse
258 condition that tests for array subtypes into just a test of
259 Is_Partially_Initialized_Type (which already covers arrays anyway).
261 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
263 * sem_ch12.adb: Minor code reformatting.
264 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
265 find the parent package which may have been hidden by local
268 2007-10-15 Gary Dismukes <dismukes@adacore.com>
270 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
271 flag of derived concurrent types, taking into account the flag setting
272 on the parent subtype and any new set of discriminants.
274 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
276 * sem_ch4.adb: Minor code and comment reformatting.
277 (Analyze_Allocator): When the designated type of an unconstrained
278 allocator is a record with unknown discriminants or an array with
279 unknown range bounds, emit a detailed error message depending on the
280 compilation mode and whether the designated type is limited.
282 2007-10-15 Tristan Gingold <gingold@adacore.com>
284 * system-vms-ia64.ads: New file.
286 * system-vms_64.ads: Minor comment fix.
288 2007-10-15 Ed Schonberg <schonberg@adacore.com>
290 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
291 body generated for a function with a controlling result that is a null
292 extension, discard the generated body in favor of the current explicit
295 2007-10-15 Ed Schonberg <schonberg@adacore.com>
297 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
298 examining its original form, to handle properly operator calls that
301 2007-10-15 Olivier Hainque <hainque@adacore.com>
303 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
304 instead of a procedure value in each traceback entry.
306 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
307 instead of procedure value to TBK$SYMBOLIZE.
309 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
311 (TB_Entry_For): Account for the PV/FP renaming.
313 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
315 (Null_TB_Entry): Account for change of component name.
316 (PV_For): Rename as FP_For.
318 2007-10-15 Tristan Gingold <gingold@adacore.com>
320 * trans.c (gnat_to_gnu): Remove the padding structure more often.
321 This optimize assignment to over-aligned record.
323 2007-10-15 Emmanuel Briot <briot@adacore.com>
325 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
328 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
329 type, for dispatching calls.
331 2007-10-15 Vincent Celier <celier@adacore.com>
332 Robert Dewar <dewar@adacore.com>
334 * gnat_ugn.texi: Add documentation for switches --version and --help
335 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
336 gnatxref, gnatfind, gnatls, and gnatclean.
338 Mention attribute Excluded_Source_Dirs
339 Replace obsolescent attribute Locally_Removed_Files with attribute
340 Excluded_Source_Files.
341 Improve documentation of -u (gnatbind)
342 Document how to do reliable stack checking for the environmental task
345 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
346 Document attribute Excluded_Source_Files and indicate that attribute
347 Locally_Removed_Files is obsolescent.
349 2007-10-15 Thomas Quinot <quinot@adacore.com>
351 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
354 Update documentation to note that OpenVMS 8.3 or later must be used
355 to generate g-soccon-vms.ads.
357 * atree.adb: Add ??? comment
359 * exp_util.adb: Minor reformatting.
360 Add ??? comment in Kill_Dead_Code.
362 2007-10-15 Robert Dewar <dewar@adacore.com>
364 * errout.ads: Comment clarification
366 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
367 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
369 * lib.ads: Comment update
371 * init.c: Minor reformatting.
373 * sem_attr.adb: Minor formatting
375 * osint-b.ads: Minor reformatting
377 * sem_ch9.adb: Implement -gnatd.I switch
379 * g-comlin.adb: (Start): Fix handling of empty command line.
381 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
382 even when -rules follows the -cargs section.
384 2007-10-08 Ollie Wild <aaw@google.com>
386 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
388 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
390 (gnat_eh_runtime_type): Removed.
391 (gnat_return_tree): New function.
393 2007-10-08 Ben Elliston <bje@au.ibm.com>
397 2007-08-31 Ben Elliston <bje@au.ibm.com>
399 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
400 when compiling for powerpc64-*-linux.
401 * system-linux-ppc64.ads: New file.
403 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
405 Mapped location support
406 * back_end.adb (Call_Back_End): Pass information about source
407 files instead of units to gigi.
408 * gigi.h (struct File_Info_Type): New.
409 (gigi): Rename and change type of number_units parameter, change
410 type of file_info_ptr parameter.
411 * trans.c (number_files): New global variable.
412 (gigi): Rename and change type of number_units parameter, change
413 type of file_info_ptr parameter.
414 If mapped location support is enabled, create the isomorphic mapping
415 between source files and line maps.
416 (Sloc_to_locus): If mapped location support is enabled, translate
417 source location into mapped location.
418 (annotate_with_node): Rename into set_expr_location_from_node.
419 Call set_expr_location instead of annotate_with_locus.
420 (Pragma_to_gnu): Adjust for above change.
421 (Loop_Statement_to_gnu): Likewise.
422 (call_to_gnu): Likewise.
423 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
424 (gnat_to_gnu): Likewise.
425 (add_stmt_with_node): Likewise.
426 (add_cleanup): Likewise.
427 * utils.c (gnat_init_decl_processing): Do not set input_line.
429 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
431 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
432 (Applicable_Use): Emit a warning when a package tries to use itself.
433 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
434 is already in use or the package where it is declared is in use or is
435 declared in the current package.
436 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
438 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
439 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
440 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
442 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
444 * a-calend-vms.adb, a-calend.adb:
445 Add a section on leap seconds control along with two entities used to
446 enable and disable leap seconds support. The array Leap_Second_Times is
447 now constant and contains hard time values pre-generated. Remove
448 all elaboration code used to populate the table of leap seconds.
451 Add entity Leap_Seconds_Support to the list of global run-time variables
452 along with a comment on its usage and values.
453 (Gen_Adainit_Ada): Add code to generate the declaration and import of
454 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
455 or one (enabled) depending on the presence of binder switch "-y".
456 (Gen_Adainit_C): Add code to generate the declaration of external int
457 __gl_leap_seconds_support. Set is value to zero (disabled) or one
458 (enabled) depending on the presence of binder switch "-y".
460 * init.c: Add __gl_leap_seconds_support to the list of global values
461 computed by the binder.
463 2007-09-26 Jerome Guitton <guitton@adacore.com>
465 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
466 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
467 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
468 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
470 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
472 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
473 function which can be called by the debugger to interrupt the tasks of
474 an Ada application asynchronously, as needed on VxWorks.
475 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
477 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
478 renamed from Stop_All_Tasks. Update comments.
479 (Stop_All_tasks): New function declaration.
481 2007-09-26 Olivier Hainque <hainque@adacore.com>
483 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
484 #include <utime.h> and #define GCC_RESOURCE_H before
485 #include <sys/wait.h>.
486 Add more protections in __gnat_translate_vms.
488 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
489 #include <sys/wait.h>.
491 2007-09-26 Thomas Quinot <quinot@adacore.com>
492 Sergey Rybin <rybin@adacore.com>
494 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
496 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
499 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
501 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
504 * sem_dist.ads: Minor comment fix
506 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
508 2007-09-26 Javier Miranda <miranda@adacore.com>
509 Eric Botcazou <ebotcazou@adacore.com>
512 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
513 indirection added to the HT_Link component of the TSD. This is required
514 to statically allocate the TSD.
517 Minor reordering of the declarations in the private part. Required to
518 add a level of indirection to the contents of the TSD component HT_Link.
519 This is required to statically allocate the TSD.
521 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
522 Is_Statically_Allocated set from constant objects.
523 Do not make exported constants created by the compiler volatile.
524 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
527 * trans.c (Identifier_to_gnu): For constants, unshare initializers
528 before returning them.
530 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
531 public part of the package.
532 (Make_DT): Move HT_Link component out of the TSD record. For this
533 purpose Make_DT now declares a separate object that stores the
534 HT_Link value, and initializes the TSD component with the address
535 of this new object. The addition of this level of indirection is
536 required to statically allocate the TSD because the TSD cannot
537 have variable components.
538 (Expand_Interface_Conversion): Improve the expanded code.
539 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
541 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
542 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
543 if we are building static dispatch tables then we must not generate
544 extra code to register the primitive because the dispatch table will
545 be built at the end of the library package; otherwise we notify that
546 we cannot build the static dispatch table.
548 2007-09-26 Robert Dewar <dewar@adacore.com>
550 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
553 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
554 (Analyze_Record_Representation_Clause): Suppress junk warning for
555 missing component clause.
556 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
557 tests for controlled type overlay to composites with controlled
559 (Analyze_Record_Representation_Clause): Add reference for component name
561 2007-09-26 Javier Miranda <miranda@adacore.com>
562 Gary Dismukes <dismukes@adacore.com>
564 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
565 for thunks associated with interface types.
567 * einfo.ads: Improve documentatation of Is_Internal
568 (Is_Thunk): New attribute applicable to subprograms. True for thunks
569 associated with interface types.
570 Extensive comment fixes regarding flags that appear in all entities. The
571 documentation is now consistent for all such flags (there were a number
572 of errors in the documentation in this regard).
574 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
576 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
577 of these procedures are passed a function call that already has
578 build-in-place actuals (testing new flag
579 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
580 the case where processing continues.
581 (Expand_Call): If the call is generated from a thunk body then we
582 propagate the extra actuals associated with the accessibility
583 level of the access type actuals.
585 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
586 of each extra formal of a protected operation to reference the
587 corresponding extra formal of the subprogram denoted by the
588 operation's Protected_Body_Subprogram.
590 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
591 N_Function_Call nodes.
593 2007-09-26 Robert Dewar <dewar@adacore.com>
595 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
597 * debug.adb: Add d.s flag.
599 2007-09-26 Gary Dismukes <dismukes@adacore.com>
601 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
602 debug variable so that it won't be initialized when pragma
603 Initialize_Scalars is in effect.
605 2007-09-26 Gary Dismukes <dismukes@adacore.com>
607 * freeze.adb (Freeze_Entity): Remove check for preelaborable
608 initialization of a full view. This is moved to
609 Analyze_Package_Specification.
611 * sem_ch7.adb (Analyze_Package_Specification): Add check for
612 preelaborable initialization of a full view in entity loop.
613 (Uninstall_Declarations): If entity is a use-visible compilation unit,
614 its child units are use-visible only if they are visible child units.
616 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
617 whether an expression can be used within a type declaration that
618 requires preelaborable init.
619 (Check_Components): Replace inline code that does partial checking for
620 preelaborable default expressions with call to
621 Is_Preelaborable_Expression.
622 (Has_Preelaborable_Initialization): In the case of a generic actual
623 subtype, (that is, Is_Generic_Actual is True), return the result of
624 applying Has_Preelaborable_Initialization to the generic actual's base
627 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
629 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
630 call to Jan_1_Day _Of_Week to optimize its performance.
631 (Is_Leap): Move the routine to the scope of Week_In_Year.
632 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
633 weekday on which January 1 falls of Year - 1 and Year + 1. This function
634 avoids calling Time_Of and Split, thus making it more efficent.
635 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
637 * g-calend.ads (Week_In_Year): Change comment to reflect new
640 2007-09-26 Emmanuel Briot <briot@adacore.com>
642 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
643 Command_Line): New types
644 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
645 support for defining how switches can be grouped on a command line (as
646 is the case for -gnatw... for GNAT), and how simple switches can be
647 used as aliases for more complex switches (-gnatwa is same as
649 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
650 (Start, Current_*): New subprograms
651 Added support for parsing an array of strings in addition to the real
653 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
654 be moved from the body to the private part of the spec.
655 (*): All subprograms now have an extra parameter with default value to
656 specify which parser should be used. For backward compatibility, it
657 defaults to parsing the command line of the application. They were also
658 modified to properly handle cases where each of the argument does not
659 start at index 1 (which is always true for Ada.Command_Line, but not
660 when processing any Argument_List).
661 (Free): New subprogram
662 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
663 Argument): New subprograms
664 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
665 special characters like ':', '=',... are now handled in a single place,
666 which makes the code more extensible eventually.
667 (Getopt, Full_Switch): When the switch was returned as part of the
668 special character '*', make sure it is prepended by the switch character
669 ('-' in general), so that the application knows whether "foo" or "-foo"
670 was specified on the command line.
672 2007-09-26 Florian Villoing <villoing@adacore.com>
674 * g-dirope.adb (Remove_Dir): In case we are removing directories
675 recursively, make sure that if an exception is raised during the
676 processing, the current working directory is reset to its initial
677 value before propagating the exception.
679 2007-09-26 Vincent Celier <celier@adacore.com>
681 * gnatbind.adb: If there are several ALI files specified and there is
682 a main program to bind, the first ALI is expected to contain the main
683 subprogram and the names of the binder generated files will be derived
684 from the first ALI file name.
685 (Gnatbind): Fix insertion character in invocation of Error_Msg
687 2007-09-26 Vincent Celier <celier@adacore.com>
689 * gnatcmd.adb (Check_Files): Do not include sources that have been
690 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
692 2007-09-26 Ed Schonberg <schonberg@adacore.com>
694 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
695 information about each of its index types, following the type
696 reference for its component type.
698 2007-09-26 Vincent Celier <celier@adacore.com>
700 * make.adb: (Kill): New procedure (__gnat_kill imported)
701 (Running_Compile, Outstanding_Compiles): Global variables that
702 were previously local to procedure Compile_Sources.
703 (Sigint_Intercepted): Send signal SIGINT to all outstanding
704 compilation processes.
706 (Gnatmake): If project files are used, create the mapping of all the
707 sources, so that the correct paths will be found.
709 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
711 2007-09-26 Vincent Celier <celier@adacore.com>
713 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
715 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
716 Replace components Compiler_Min_Options and Binder_Min_Options with
717 Compiler_Required_Switches and Binder_Required_Switches in record
719 Remove components Default_Language and Config in Project_Tree_Data,
722 * prj-attr.adb: New attributes Required_Switches (<language>) in
723 packages Compiler and Binder.
725 * prj-nmsc.adb: Major rewrite of the processing of configuration
726 attributes for gprbuild. No impact on GNAT tools.
728 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
729 process configuration attributes: this is done in Prj.Nmsc.Check.
730 (Recursive_Process): Make a full copy of packages inherited from project
731 being extended, instead of a shallow copy.
732 (Process_Project_Tree_Phase_1): New procedure
733 (Process_Project_Tree_Phase_1): New procedure
734 (Process): Implementation now uses the two new procedures
736 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
737 from the project config, not the tree config that no longer exists.
739 2007-09-26 Vincent Celier <celier@adacore.com>
741 * Make-lang.in: Update dependencies..
743 2007-09-26 Vincent Celier <celier@adacore.com>
745 * osint.adb, osint.ads: Minor reformatting
747 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
749 2007-09-26 Gary Dismukes <dismukes@adacore.com>
751 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
752 message to cite use of <> in aggregate component associations rather
753 than wrongly indicating use of limited aggregates.
755 2007-09-26 Robert Dewar <dewar@adacore.com>
757 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
760 2007-09-26 Ed Schonberg <schonberg@adacore.com>
762 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
763 ancestor of the derived type, the operations are inherited from the
764 primary dispatch table of the parent.
765 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
766 when the context is an explicit type conversion.
768 2007-09-26 Ed Schonberg <schonberg@adacore.com>
770 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
771 rule for qualified expressions properly, to detect improper conversions
772 and resolve some cases of overloading.
774 2007-09-26 Ed Schonberg <schonberg@adacore.com>
776 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
777 proper kind of reference to the primitive operation, for better source
779 (Valid_Conversion): A tagged conversion is legal if both operands are
782 2007-09-26 Robert Dewar <dewar@adacore.com>
784 * sem_warn.adb (Check_References): Catch more cases of unreferenced
787 2007-09-26 Vincent Celier <celier@adacore.com>
789 * snames.adb, snames.ads: Change Include_Option to Include_Switches
791 2007-09-26 Robert Dewar <dewar@adacore.com>
793 * s-wchstw.adb: provide messages for run time unit exceptions
795 * a-witeio.adb: Minor reformatting
797 * exp_ch13.adb: Minor reformatting
799 2007-09-26 Sergey Rybin <rybin@adacore.com>
801 * vms_data.ads: Revise gnatmetric qualifiers.
802 Add qualified for the new gnatbind option '-y'
804 * gnat_ugn.texi: Revise the gnatmetric section.
805 Add entry for new gnatbind option '-y'.
807 * gnat_rm.texi: Minor spelling correction.
808 Document restriction on overlaying controlled types
810 2007-09-26 Vincent Celier <celier@adacore.com>
812 * makegpr.adb (Link_Executables): Do not fail when the root project has
813 no sources, but is an extending project.
815 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
817 * trans.c: Fix misplaced #define.
819 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
821 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
822 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
824 2007-09-21 Olivier Hainque <hainque@adacore.com>
826 * utils.c (type_for_nonaliased_component_p): Return false for
829 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
831 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
832 object covered by 13.3(19) volatile.
834 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
838 * utils.c (unchecked_convert): Use a subtype as the intermediate type
839 in the special VIEW_CONVERT_EXPR case.
841 2007-09-12 Robert Dewar <dewar@adacore.com>
843 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
845 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
846 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
847 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
848 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
849 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
850 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
851 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
852 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
853 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
854 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
855 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
856 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
857 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
858 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
859 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
860 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
861 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
862 pragma Compiler_Unit and adds it to relevant library units.
864 2007-09-12 Ed Schonberg <schonberg@adacore.com>
866 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
867 a box need not correspond to any component.
869 2007-09-12 Robert Dewar <dewar@adacore.com>
871 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
872 the tasking version of the Ada run time when foreign threads are
873 present and there are no explicit Ada tasks or tasking constructs.
875 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
877 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
879 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
880 the usage of switch -y.
882 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
883 when switch -y is present.
885 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
886 leap seconds in Ada.Calendar and its children.
888 2007-09-12 Jose Ruiz <ruiz@adacore.com>
890 * a-extiti.ads (Timer): The discriminant is a "not null access
891 constant" in the Reference Manual.
892 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
894 2007-09-12 Robert Dewar <dewar@adacore.com>
896 * a-swuwha.adb: Remove junk RM header
898 2007-09-12 Vincent Celier <celier@adacore.com>
900 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
903 * g-bytswa.ads: Minor reformatting
905 2007-09-12 Thomas Quinot <quinot@adacore.com>
907 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
908 Add new constant Thread_Blocking_IO, always True by default, set False
909 on a per-runtime basis.
910 (Need_Netdb_Buffer): New constant.
912 2007-09-12 Arnaud Charlet <charlet@adacore.com>
914 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
915 Added renames for corresponding functions in System.Partition_Interface.
917 2007-09-12 Doug Rupp <rupp@adacore.com>
919 * Makefile.in: Remove VMS specific System.CRTL packages which are no
922 * s-crtl-vms64.ads: Removed.
924 2007-09-12 Olivier Hainque <hainque@adacore.com>
926 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
927 with discriminant constraints, generalize the code for BIT_FIELDs
928 to PACKED fields of constant size and propagate DECL_PACKED.
930 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
932 * decl.c (array_type_has_nonaliased_component): New predicate.
933 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
934 set the TYPE_NONALIASED_COMPONENT flag on the type.
935 <E_Array_Subtype>: Likewise.
936 * gigi.h (type_for_nonaliased_component_p): Declare.
937 * utils.c (type_for_nonaliased_component_p): New predicate.
938 (create_field_decl): Invoke the above predicate to set the
939 DECL_NONADDRESSABLE_P flag on the field.
941 2007-09-11 Javier Miranda <miranda@adacore.com>
943 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
944 in library level record type entities if we are generating statically
945 allocated dispatch tables.
947 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
948 importing/exporting the _tag declaration by new code
949 importing/exporting the dispatch table wrapper. This change allows us
950 to statically allocate of the TSD.
951 (Make_DT.Export_DT): New procedure.
952 (Build_Static_DT): New function.
953 (Has_DT): New function.
955 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
956 True_Constant and Current_Value. Required to statically
957 allocate the dispatch tables.
958 (Check_Allocator): Make function iterative instead of recursive.
959 Also return inner allocator node, when present, so that we do not have
960 to look for that node again in the caller.
962 2007-09-11 Jan Hubicka <jh@suse.cz>
964 * misc.c (gnat_expand_body): Kill.
965 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
967 2007-09-10 Robert Dewar <dewar@adacore.com>
969 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
970 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
971 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
972 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
973 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
974 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
975 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
976 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
977 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
978 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
979 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
980 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
981 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
982 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
983 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
984 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
985 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
986 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
987 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
988 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
989 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
990 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
991 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
992 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
993 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
994 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
995 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
996 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
997 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
998 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
999 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
1000 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
1001 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
1002 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
1003 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
1004 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
1005 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
1006 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
1007 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
1008 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
1009 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
1010 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1011 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
1012 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
1013 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
1014 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
1015 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
1016 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
1017 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
1018 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
1019 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
1020 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
1021 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
1022 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
1023 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
1024 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
1025 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
1026 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
1027 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1028 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
1029 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
1030 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1031 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
1032 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
1033 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
1034 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
1035 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
1036 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
1037 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
1038 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
1039 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
1040 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
1041 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
1042 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
1043 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
1044 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
1045 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
1046 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
1047 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
1048 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
1049 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
1050 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
1051 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
1053 2007-09-10 Emmanuel Briot <briot@adacore.com>
1055 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
1058 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
1060 * adaint.c (__gnat_translate_vms): new function.
1062 2007-09-10 Gary Dismukes <dismukes@adacore.com>
1063 Thomas Quinot <quinot@adacore.com>
1065 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
1066 create an abstract subprogram in the case of 'Input. For 'Output we now
1067 create a real spec/body when the type is abstract, since it can
1068 potentially be called.
1069 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
1070 body for 'Output when the type is abstract (only the creation of the
1071 body for 'Input is excluded when the type is abstract).
1072 (Stream_Operation_OK): Add an additional condition in the return
1073 statement, so that False will be returned for TTS_Stream_Input if the
1074 associated tagged type is an abstract extension. Add comments for
1076 (Expand_N_Object_Declaration): For the case of a shared passive
1077 variable, insert init proc call only after the shared variable
1078 procedures have been processed, because the IP call needs to undergo
1079 shared passive variable reference expansion, which requires these
1080 procedures to be available (and elaborated).
1082 2007-09-10 Vincent Celier <celier@adacore.com>
1084 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1085 parameter Runtime_Project.
1087 2007-09-10 Ed Schonberg <schonberg@adacore.com>
1089 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1090 given a box association, the type of the component is discriminated,
1091 and the value of the discriminant is the discriminant of the enclosing
1092 type, retrieve its value from the aggregate itself, where it must have
1095 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1096 to remove other spurious ambiguities on arithmetic operations involving
1097 literals and addresses, on systems where Address is a visible integer
1098 type, when the operator is called in functional notation.
1099 (Try_Primitive_Operation): Within an instance, a call in prefixed form
1100 is legal when the types match, even if the operation is currently
1103 2007-09-10 Ed Schonberg <schonberg@adacore.com>
1105 * sem_ch12.adb (Build_Local_Package): A formal package with no
1106 associations is legal if all formals have defaults. It is not
1107 equivalent to a formal declared with a box.
1109 2007-09-10 Sergey Rybin <rybin@adacore.com>
1111 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1113 2007-09-10 Sergey Rybin <rybin@adacore.com>
1115 * gnat_ugn.texi: Add description of the new '-lratio' option
1116 Update 7.3.1 section about availability of the feature.
1118 2007-09-10 Thomas Quinot <quinot@adacore.com>
1120 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1123 2007-09-10 Olivier Hainque <hainque@adacore.com>
1125 * Makefile.in: (mips-irix section): Activate build of libgmem.
1127 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1129 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1132 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1134 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1135 a debug renaming declaration specially.
1137 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1139 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1140 which a constant renaming is treated as a normal object declaration.
1141 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1142 the N_Indexed_Component case.
1143 <N_Indexed_Component>: Fall through to above case.
1144 <N_Object_Renaming_Declaration>: Return true for all composite types.
1146 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1148 * decl.c (make_packable_type): If the new type has been given BLKmode,
1149 try again to get an integral mode for it.
1151 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
1153 Re-apply accidentally reverted change:
1155 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
1157 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1158 get_action_description_for): Replace _Unwind_Word with _uleb128_t
1159 and _Unwind_SWord with _sleb128_t.
1161 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
1163 * trans.c (convert_with_check): Update call to real_2expN.
1165 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1167 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1168 * utils.c (end_subprog_body): Likewise.
1170 2007-09-03 Nick Clifton <nickc@redhat.com>
1172 * Make-lang.in: Change copyright header to refer to version 3 of
1173 the GNU General Public License and to point readers at the
1174 COPYING3 file and the FSF's license web page.
1175 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1176 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1177 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1178 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1181 2007-08-31 Vincent Celier <celier@adacore.com>
1185 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
1186 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1187 (Check_Version_And_Help): New procedure in package Switch to process
1188 switches --version and --help.
1189 Use Check_Version_And_Help in GNAT tools
1192 (Compile_Sources): Make sure that sources that are "excluded" are not
1194 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1195 project file is used.
1196 (Version_Switch): Remove, moved to Switch
1197 (Help_Switch): Remove, moved to Switch
1198 (Display_Version): Remove, moved to Switch
1200 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1201 package Switch to process switches --version and --help.
1202 (Display_Version): New procedure
1204 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1206 2007-08-31 Javier Miranda <miranda@adacore.com>
1208 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1211 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1213 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1214 (Mark_Non_Null): If the node for which we just generated an access check
1215 is a reference to an *in* parameter and the reference appears in the
1216 declarative part of a subprogram body, mark the node as known non null.
1218 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1220 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1221 structure of E_Exception to reflect the new flag.
1222 (Is_Raised, Set_Is_Raised): New inlined routines.
1223 Update the usage of available flag to reflect the addition of Is_Raised.
1224 (Is_Raised, Set_Is_Raised): Bodies of new routines.
1225 (Write_Entity_Flags): Write the status of flag Is_Raised.
1226 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1227 spurious ambiguities when integer literals appear in the context of an
1228 address type that is a visible integer type.
1230 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1231 exceptions never being raised.
1232 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1235 2007-08-31 Javier Miranda <miranda@adacore.com>
1237 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1238 statement when compiling under restriction No_Exceptions_Proparation.
1240 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1242 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1243 initialization aggregate for the type, generate itype references for
1244 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1246 2007-08-31 Gary Dismukes <dismukes@adacore.com>
1248 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1249 library-level package renaming, pass the declaration associated with
1250 the renaming's special debug variable to Qualify_Entity_Names to ensure
1251 that its encoded name is properly qualified.
1253 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1254 occurring in the list of entities to qualify, and do not attempt to
1255 traverse an entity list in that case. Variables associated with
1256 ` library-level package renamings can now occur in the table.
1258 * exp_dbug.ads: Revise documentation of the encoding for renaming
1261 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1263 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1264 access type points to an unconstrained array.
1266 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1268 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1271 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1272 simple redundant qualifications. The check is performed whenever the
1273 expression is a non-overloaded identifier.
1274 (Resolve_Type_Conversion): Enchance the redundant type conversion check
1275 to include loop parameters.
1276 (Valid_Conversion): Avoid generation of spurious error message.
1278 2007-08-31 Bob Duff <duff@adacore.com>
1280 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1281 concatenations of string literals into a single literal, in order to
1282 avoid very deep recursion in the front end, which was causing stack
1285 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1286 string, and the right operand is a string literal (the case of "" &
1287 "..."), optimize by avoiding copying the right operand -- just use the
1288 value of the right operand directly.
1290 * stringt.adb (Store_String_Chars): Optimize by growing the
1291 String_Chars table all at once, rather than appending characters one by
1293 (Write_String_Table_Entry): If the string to be printed is very long,
1294 just print the first few characters, followed by the length. Otherwise,
1295 doing "pn(n)" in the debugger can take an extremely long time.
1297 * sem_prag.adb (Process_Interface_Name): Replace loop doing
1298 Store_String_Char with Store_String_Chars.
1300 2007-08-31 Vincent Celier <celier@adacore.com>
1302 * prj-attr.adb: Add new attribute Excluded_Source_Files
1304 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1305 Locally_Removed_Files.
1307 * snames.ads, snames.adb: New standard name Excluded_Source_Files
1309 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1311 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1312 clauses of subunits, ignore limited_with_clauses that are illegal and
1313 have not been fully analyzed.
1315 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1317 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1318 flag, for effiency. It is called when analyzing arithmetic operators
1319 and also for actuals in calls that are universal_integers. The flag is
1320 set for the predefined type address, and for any type or subtype
1323 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1324 Universal_Integer, when the formal is a descendent of address and the
1325 call appears in user code.
1326 (Analyze_Selected_Component): if the prefix is a private extension, the
1327 tag component is visible.
1329 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1332 2007-08-31 Robert Dewar <dewar@adacore.com>
1334 * s-fileio.adb (Open): Normalize file name to lower case in non-case
1335 sensitive file name systems to avoid unexpected mismatch in Vista.
1337 2007-08-31 Vincent Celier <celier@adacore.com>
1339 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1341 2007-08-31 Vincent Celier <celier@adacore.com>
1343 * symbols-vms.adb (Initialize): Read symbol files with continuation
1345 (Finalize): If symbol is long, split the line
1347 2007-08-31 Vincent Celier <celier@adacore.com>
1349 * fmap.ads: Minor comment updates
1351 2007-08-31 GNAT Script <nobody@adacore.com>
1353 * Make-lang.in: Makefile automatically updated
1355 2007-08-31 Bob Duff <duff@adacore.com>
1357 * sinfo.ads: Minor comment fix.
1359 2007-08-31 Thomas Quinot <quinot@adacore.com>
1361 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1362 with implementation.
1363 Documentation cleanup only.
1365 2007-08-31 Sergey Rybin <rybin@adacore.com>
1367 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1368 gnatpp '--separate-stmt-name' option.
1369 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1372 * gnat_ugn.texi: Add description for the new gnatpp
1373 '--separate-stmt-name' and '--use-on-new-line' options.
1375 2007-08-31 Ben Elliston <bje@au.ibm.com>
1377 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1378 when compiling for powerpc64-*-linux.
1379 * system-linux-ppc64.ads: New file.
1381 2007-08-22 Krister Walfridsson <cato@df.lth.se>
1383 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1386 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1388 * misc.c (gnat_type_max_size): Constify.
1390 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1392 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1393 associated with Standard_Debug_Renaming_Type, to be used as the type of
1394 the special variables whose names provide debugger encodings for
1395 renaming declarations.
1397 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1398 (Set_Debug_Renaming_Link): Change to set Node25.
1399 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1400 (Write_Field25_Name): Add case for E_Variable to output
1401 "Debug_Renaming_Link".
1402 (Write_Field23_Name): Correct the output string for "Limited_View".
1404 * exp_dbug.adb: Add with and use of Tbuild.
1405 (Debug_Renaming_Declaration): Replace creation of an enumeration type
1406 and literal with creation of a variable of type
1407 Standard_Debug_Renaming_Type whose name encodes both the renamed object
1408 and the entity of the renaming declaration.
1409 (Qualify_Entity_Name): Add the delayed qualification of the entity name
1410 part of the name of a variable that has a Debug_Renaming_Link.
1412 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1413 special type to be associated with variables that provide debugger
1414 encodings for renaming declarations.
1416 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1417 Ed Schonberg <schonberg@adacore.com>
1418 Javier Miranda <miranda@adacore.com>
1420 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1421 ancestor part given by an aggregate to test for an unchecked conversion,
1422 since this can occur in some cases when the ancestor part is a function
1423 call, and we don't want to fall into the recursive call to this
1424 procedure in that case.
1426 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1427 stream attributes on limited types to account for user-specified
1428 attributes as well as whether Input (resp. Output) becomes available
1429 due to Read (resp. Write) being available for the type. Change Boolean
1430 variable to the more accurate name
1431 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1432 double-"not" predicate at beginning of return statement to more
1433 understandable form.
1435 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1436 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1437 in a block statement and use that as the first statement of the
1438 expanded return rather than incorrectly using the handled sequence as
1439 the first statement.
1441 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1442 operation, generate an explicit freeze node for it rather than
1443 generating extra formals, to ensure that gigi has the proper order of
1444 elaboration for anonymous subtypes in the signature of the subprograms.
1445 (Build_In_Place_Formal): Move assertion to beginning of loop.
1446 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1447 applied to a function call (occurs for some cases of 'Input).
1448 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1449 applied to a function call (occurs for some cases of 'Input).
1451 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1452 2005, generate an extended return statement enclosing the result object
1455 * freeze.adb (Freeze_Record_Type): Extend the current management of
1456 components that are access type with an allocator as default value: add
1457 missing support to the use of qualified expressions of the
1458 allocator (which also cause freezing of the designated type!)
1459 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1460 dispatching operation, since extra formals may be needed by calls to
1461 build-in-place functions (such as stream 'Input).
1463 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1464 formals for 'Constrained and accessibility level in the case of a
1465 predefined dispatching operation.
1467 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1468 point, no need to find the parent node.
1470 2007-08-16 Javier Miranda <miranda@adacore.com>
1472 * exp_attr.adb (Attribute_Priority): Add missing support for entries
1475 2007-08-16 Javier Miranda <miranda@adacore.com>
1477 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1478 is not really required and can introduce regression with the debugger.
1479 The original problem is fixed with the patch written for checks.adb.
1481 2007-08-16 Thomas Quinot <quinot@adacore.com>
1483 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1484 Range_Check on Allocated_Table.
1486 2007-08-16 Vincent Celier <celier@adacore.com>
1488 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1489 Including_Non_Switch set to False.
1490 (Gnatmake): For the compiler, call Test_If_Relative_Path with
1491 Including_Non_Switch set to False.
1493 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1494 parameter Including_Non_Switch, defaulted to True. When
1495 Including_Non_Switch is False, options that are not switches and
1496 appear as relative path are not converted to absolute paths.
1498 2007-08-16 Nicolas Roche <roche@adacore.com>
1500 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1503 * Make-lang.in: Update dependencies
1505 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1507 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1508 currently inspected is a selected component, retrieve the entity of
1510 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1511 from the immediate ancestor of Main_Unit_Entity.
1512 (Install_Limited_Withed_Unit): Do not install the limited view of
1513 package P if P is reachable through an ancestor chain from package C
1514 and C also has a with clause for P in its body.
1515 (Has_Limited_With_Clause): New routine.
1516 (Has_With_Clause): New routine.
1518 2007-08-16 Ed Schonberg <schonberg@adacore.com>
1520 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1521 generic for an enclosing instance is a global reference, even though
1522 its scope is the enclosing instance.
1524 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1525 Javier Miranda <miranda@adacore.com>
1527 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1528 initialize a limited object.
1529 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1531 Make sure Has_Complex_Representation is inherited by derived type.
1533 2007-08-16 Robert Dewar <dewar@adacore.com>
1535 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1538 2007-08-16 Ed Schonberg <schonberg@adacore.com>
1540 * sem_disp.adb (Check_Dispatching_Operation): If the operation
1541 implements an operation inherited from a progenitor interface, verify
1542 that they are subtype-conformant.
1544 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1545 Bob Duff <duff@adacore.com>
1546 Nicolas Setton <setton@adacore.com>
1548 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1549 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1550 the statement which is being resolved comes from a predefined library
1551 unit, all non-predefined library interpretations are skipped.
1552 (Resolve_Op_Concat): If string concatenation was folded in the parser,
1553 but the "&" is user defined, give an error, because the folding would
1556 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1557 the parser has folded a long sequence of concatenations of string
1560 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1561 and "JMP_BUF" variables as artificial.
1562 (N_String_Literal): Do not use alloca for very long string literals. Use
1563 xmalloc/free instead. Otherwise the stack might overflow.
1565 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1568 2007-08-16 Vincent Celier <celier@adacore.com>
1570 * vms_conv.adb (Process_Argument): Ensure that project related options
1571 are not put in the -cargs section when using GNAT COMPILE.
1573 2007-08-16 Robert Dewar <dewar@adacore.com>
1575 * gnat_ugn.texi: Add note on preprocessing (output file not written)
1577 2007-08-16 Thomas Quinot <quinot@adacore.com>
1579 * a-tags.adb: Minor reformatting.
1581 2007-08-16 Bob Duff <duff@adacore.com>
1583 * sem_type.ads, sem_ch4.adb: Minor reformatting.
1585 2007-08-14 Thomas Quinot <quinot@adacore.com>
1587 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
1588 s-osinte-interix.ads, system-interix.ads: Removed.
1590 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
1592 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1593 calls to Check_Within_Time_Bounds.
1594 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1595 (Difference): Account for possible rounding of the resulting difference
1597 2007-08-14 Robert Dewar <dewar@adacore.com>
1599 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1600 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1601 s-osinte-solaris.adb, s-osinte-solaris.ads,
1602 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1604 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1605 switch -gnatyS. Enable -gnatyS in GNAT style check mode
1607 2007-08-14 Robert Dewar <dewar@adacore.com>
1608 Ed Schonberg <schonberg@adacore.com>
1610 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
1611 Suppress unmodified in-out parameter warning in some cases
1612 This patch is a also fairly significant change to the way suppressible
1615 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1616 needed for access to concurrent record types generated by the expander.
1617 (Generate_Range_Check): When generating a temporary to capture the
1618 value of a conversion that requires a range check, set the type of the
1619 temporary before rewriting the node, so that the type is always
1620 properly placed for back-end use.
1621 (Apply_Float_Conversion_Check): Handle case where the conversion is
1623 (Get_Discriminal): Code reformatting. Climb the scope stack looking
1624 for a protected type in order to examine its discriminants.
1626 2007-08-14 Robert Dewar <dewar@adacore.com>
1627 Gary Dismukes <dismukes@adacore.com>
1628 Ed Schonberg <schonberg@adacore.com>
1629 Thomas Quinot <quinot@adacore.com>
1631 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
1632 a-stwisu.adb, a-strsup.adb: Fix warnings for range
1633 tests optimized out.
1635 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1636 (Get_Allocator_Final_List): For the case of an anonymous access type
1637 that has a specified Associated_Final_Chain, do not go up to the
1639 (Expand_N_Type_Conversion): Test for the case of renamings of access
1640 parameters when deciding whether to apply a run-time accessibility
1642 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1643 aggregate code before allocator, and ahead of declaration for
1644 temporary, to prevent access before elaboration when the allocator is
1645 an actual for an access parameter.
1646 (Expand_N_Type_Conversion): On an access type conversion involving an
1647 access parameter, do not apply an accessibility check when the
1648 operand's original node was an attribute other than 'Access. We now
1649 create access conversions for the expansion of 'Unchecked_Access and
1650 'Unrestricted_Access in certain cases and clearly accessibility should
1651 not be checked for those.
1653 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1654 includes a type conversion of a packed component that has been expanded,
1655 recover the original expression for the object, and use this expression
1656 in the post-call assignment statement, so that the assignment is made
1657 to the object and not to a back-end temporary.
1658 (Freeze_Subprogram): In case of primitives of tagged types not defined
1659 at the library level force generation of code to register the primitive
1660 in the dispatch table. In addition some code reorganization has been
1661 done to leave the implementation clear.
1662 (Expand_Call): When expanding an inherited implicit conversion,
1663 preserve the type of the inherited function after the intrinsic
1664 operation has been expanded.
1666 * exp_ch2.ads, exp_ch2.adb
1667 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1668 of an entry formal appearing in an assignment statement does not assign
1670 (Expand_Current_Value): Instead of calling a routine to determine
1671 whether the prefix of an attribute reference should be optimized or
1672 not, prevent the optimization of such prefixes all together.
1674 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1675 component whose prefix is known to be of an access type is an implicit
1676 dereference and does not assign to the prefix.
1678 2007-08-14 Ed Schonberg <schonberg@adacore.com>
1679 Robert Dewar <dewar@adacore.com>
1681 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1682 itype is visited, make an entry into table to link associated node and
1684 Add comments and correct harmless error in Build_NCT_Hash_Tables
1685 (Array_Aggr_Subtype): Associate each itype created for an index type to
1686 the corresponding range construct, and not to the aggregate itself. to
1687 maintain a one-to-one correspondence between itype and its associated
1688 node, to prevent errors when complex expression is copied.
1689 Fix mishandling of multiple levels of parens
1691 * sem_aggr.adb: Create a limited view of an incomplete type, to make
1692 treatment of limited views uniform for all visible declarations in a
1693 limited_withed package.
1694 (New_Copy_Tree): If hash table is being used and itype is visited,
1695 make an entry into table to link associated node and new itype.
1696 (Resolve_Record_Aggregate): Do not add an others box association for a
1697 discriminated record component that has only discriminants, when there
1698 is a box association for the component itself.
1700 * par-ch4.adb: Fix mishandling of multiple levels of parens
1702 2007-08-14 Robert Dewar <dewar@adacore.com>
1704 * comperr.adb: Fix problem with suppressing warning messages from gigi
1706 * erroutc.ads, erroutc.adb, errout.ads,
1707 errout.adb (Write_Eol): Remove trailing spaces before writing the line
1708 (Write_Eol_Keep_Blanks): New procedure to write a line, including
1709 possible trailing spaces.
1710 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1711 Fix problem with suppressing warning messages from back end
1712 Improve handling of deleted warnings
1715 Fix problem with suppressing warning messages from back end
1716 Handle setting of Static_Dispatch_Tables flag.
1719 Fix problem with suppressing warning messages from back end
1721 * exp_intr.adb: Improve handling of deleted warnings
1723 2007-08-14 Robert Dewar <dewar@adacore.com>
1725 * debug.adb: Improve -gnatdI to cover all cases of serialization
1726 Add documentation of dZ, d.t
1728 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1730 (Sprint_Node_Actual): Generate new output associated with implicit
1731 importation and implicit exportation of object declarations.
1733 2007-08-14 Ed Schonberg <schonberg@adacore.com>
1734 Robert Dewar <dewar@adacore.com>
1735 Javier Miranda <miranda@adacore.com>
1736 Gary Dismukes <dismukes@adacore.com>
1738 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1739 to make treatment of limited views uniform for all visible declarations
1740 in a limited_withed package.
1741 Improve warnings for in out parameters
1742 (Set_Related_Interaface/Related_Interface): Allow the use of this
1743 attribute with constants.
1744 (Write_Field26_Name): Handle attribute Related_Interface in constants.
1745 Warn on duplicate pragma Preelaborable_Initialialization
1747 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1748 generation of a freezing node to ensure proper management of null
1749 excluding access types in the backend.
1750 (Create_Extra_Formals): Test base type of the formal when checking for
1751 the need to add an extra accessibility-level formal. Pass the entity E
1752 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1753 originally being done in a couple of cases), to ensure that the
1754 Extra_Formals list gets set on the entity E when the first entity is
1756 (Conforming_Types): Add missing calls to Base_Type to the code that
1757 handles anonymous access types. This is required to handle the
1758 general case because Process_Formals builds internal subtype entities
1759 to handle null-excluding access types.
1760 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1761 functions that need it, even when not marked Requires_Overriding.
1762 Improve warnings for in out parameters
1763 (Analyze_Function_Return): Warn for disallowed null return
1764 Warn on return from procedure with unset out parameter
1765 Ensure consistent use of # in error messages
1766 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1767 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1768 the implicit conversion of the expression done for anonymous access
1769 types. This is required to generate the code of the null excluding
1770 check (if required).
1772 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1773 A formal parameter is never publicly referenceable outside of its body.
1774 (Check_References): For an unreferenced formal parameter in an accept
1775 statement, use the same warning circuitry as for subprogram formal
1777 (Warn_On_Unreferenced_Entity): New subprogram, taken from
1778 Output_Unreferenced_Messages, containing the part of that routine that
1779 is now reused for entry formals as described above.
1780 (Goto_Spec_Entity): New function
1781 (Check_References): Do not give IN OUT warning for dispatching operation
1782 Improve warnings for in out parameters
1783 (Test_Ref): Check that the entity is not undefinite before calling
1784 Scope_Within, in order to avoid infinite loops.
1785 Warn on return from procedure with unset out parameter
1786 Improved warnings for unused variables
1788 2007-08-14 Robert Dewar <dewar@adacore.com>
1789 Javier Miranda <miranda@adacore.com>
1790 Gary Dismukes <dismukes@adacore.com>
1792 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1793 (Expand_N_Attribute_Reference): Further unify the handling of the
1794 three forms of access attributes, using common code now for all three
1795 cases. Add a test for the case of applying an access attribute to
1796 an explicit dereference when the context is an access-to-interface
1797 type. In that case we need to apply the conversion to the prefix
1798 of the explicit dereference rather than the prefix of the attribute.
1799 (Attribute_Version, UET_Address): Set entity as internal to ensure
1800 proper dg output of implicit importation.
1801 (Expand_Access_To_Type): Removed.
1802 (Expand_N_Attribute_Reference): Merge the code from the three cases
1803 of access attributes, since the processing is largely identical for
1804 these cases. The substantive fix here is to process the case of a
1805 type name prefix (current instance case) before handling the case
1806 of interface prefixes.
1808 2007-08-14 Thomas Quinot <quinot@adacore.com>
1809 Ed Schonberg <schonberg@adacore.com>
1810 Javier Miranda <miranda@adacore.com>
1811 Robert Dewar <dewar@adacore.com>
1813 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1814 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1815 type that is an anonymous access to controlled object, establish
1816 an associated finalization chain to avoid corrupting the global
1817 finalization list when a dynamically allocated object designated
1818 by such a component is deallocated.
1819 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1820 functions that need it, even when not marked Requires_Overriding.
1821 (Initialize_Tag): Replace call to has_discriminants by call to
1822 Is_Variable_Size_Record in the circuitry that handles the
1823 initialization of secondary tags.
1824 (Is_Variable_Size_Record): New implementation.
1825 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1826 Suppress_Initialization pragma for a derived type.
1827 (Is_Variable_Size_Record): New subprogram.
1828 (Build_Offset_To_Top_Functions): New implementation that simplifies the
1829 initial version of this routine and also fixes problems causing
1830 incomplete initialization of the table of interfaces.
1831 (Build_Init_Procedure): Improve the generation of code to initialize the
1832 the tag components of secondary dispatch tables.
1833 (Init_Secondary_Tags): New implementation that simplifies the previous
1834 version of this routine.
1835 (Make_DT): Add parameter to indicate when type has been frozen by an
1836 object declaration, for diagnostic purposes.
1837 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1838 diagnose attemps to freeze a subprogram when some untagged type of its
1839 profile is a private type whose full view has not been analyzed yet.
1840 (Freeze_Array_Type): Generate init proc for packed array if either
1841 Initialize or Normalize_Scalars is set.
1842 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1843 constructing the new profile, copy the null_exclusion indicator for each
1844 parameter, to ensure full conformance of the new body with the spec.
1846 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1847 Create wrappers for constructor functions that need it, even when not
1848 marked Requires_Overriding.
1849 (Covers): Handle properly designated types of anonymous access types,
1850 whose non-limited views are themselves incomplete types.
1851 (Add_Entry): Use an entity to store the abstract operation which hides
1853 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1854 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1855 initialization aggregate.
1856 (Function_Interp_May_Be_Hidden): Rename to
1857 Function_Interp_Has_Abstract_Op.
1858 (Has_Compatible_Type): Remove machinery that skips interpretations if
1859 they are labeled as potentially hidden by an abstract operator.
1860 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
1861 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
1862 (Write_Overloads): Output the abstract operator if present.
1863 (Add_Entry): Before inserting a new entry into the interpretation table
1864 for a node, determine whether the entry will be disabled by an abstract
1866 (Binary_Op_Interp_May_Be_Hidden): New routine.
1867 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
1869 (Function_Interp_May_Be_Hidden): New routine.
1870 (Has_Compatible_Type): Do not consider interpretations hidden by
1871 abstract operators when trying to determine whether two types are
1873 (Has_Hidden_Interp): New routine.
1874 (Set_May_Be_Hidden_Interp): New routine.
1875 (Write_Overloads): Write the status of flag May_Be_Hidden.
1877 2007-08-14 Ed Schonberg <schonberg@adacore.com>
1878 Javier Miranda <miranda@adacore.com>
1880 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
1881 types declared in the declarative part of a nested package body or in
1882 the proper body of a stub.
1883 (Set_All_DT_Position): Add missing check to avoid wrong assignation
1884 of the same dispatch table slot to renamed primitives.
1885 (Make_Select_Specific_Data_Table): Handle private types.
1886 (Tagged_Kind): Handle private types.
1887 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
1888 output of implicit importation and exportation.
1889 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
1890 first formal of the thunk is always associated with the controlling
1891 type. In addition perform the following code cleanup: remove formal
1892 Thunk_Alias which is no longer required, cleanup evaluation of the
1893 the controlling type, and update the documentation.
1894 Replace occurrence of Default_Prim_Op_Count by
1895 Max_Predef_Prims. Addition of compile-time check to verify
1896 that the value of Max_Predef_Prims is correct.
1897 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
1898 (Make_DT): Add parameter to indicate when type has been frozen by an
1899 object declaration, for diagnostic purposes.
1900 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
1901 construction of statically allocated dispatch tables.
1902 (Make_DT): In case of library-level tagged types export the declaration
1903 of the primary tag. Remove generation of tags (now done by Make_Tags).
1904 Additional modifications to handle non-static generation of dispatch
1905 tables. Take care of building tables for asynchronous interface types
1906 (Make_Tags): New subprogram that generates the entities associated with
1907 the primary and secondary tags of Typ and fills the contents of Access_
1908 Disp_Table. In case of library-level tagged types imports the forward
1909 declaration of the primary tag that will be declared later by Make_DT.
1910 (Expand_Interface_Conversion): In case of access types to interfaces
1911 replace an itype declaration by an explicit type declaration to avoid
1912 problems associated with the scope of such itype in transient blocks.
1914 2007-08-14 Robert Dewar <dewar@adacore.com>
1915 Ed Schonberg <schonberg@adacore.com>
1916 Javier Miranda <miranda@adacore.com>
1918 * exp_util.ads, exp_util.adb:
1919 This patch replaces a number of occurrences of explicit tests for N_Null
1920 with calls to Known_Null. This improves tracking of null values, since
1921 Known_Null also catches null constants, and variables currently known to
1922 be null, so we get better tracking.
1923 (Ensure_Defined): create an itype reference only in the scope of the
1925 (Side_Effect_Free): A selected component of an access type that
1926 denotes a component with a rep clause must be treated as not
1927 side-effect free, because if it is part of a linked structure its
1928 value may be affected by a renaming.
1929 (Expand_Subtype_From_Expr): For limited objects initialized with build
1930 in place function calls, do nothing; otherwise we prematurely introduce
1931 an N_Reference node in the expression initializing the object, which
1932 breaks the circuitry that detects and adds the additional arguments to
1933 the called function. Bug found working in the new patch for statically
1934 allocated dispatch tables.
1935 (Is_Library_Level_Tagged_Type): New subprogram.
1936 (Remove_Side_Effects): If the expression of an elementary type is an
1937 operator treat as a function call.
1938 (Make_Literal_Range): If the index type of the array is not integer, use
1939 attributes properly to compute the constraint on the resulting aggregate
1942 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
1943 class-wide type whose base type is an incomplete private type, leave
1944 class-wide type unfrozen so that freeze nodes can be generated
1945 properly at a later point.
1946 (Freeze_Entity, array case): Handle case of pragma Pack and component
1947 size attributre clause for same array.
1949 2007-08-14 Vincent Celier <celier@adacore.com>
1951 * prj.ads, prj.adb: Update Project Manager to new attribute names for
1953 Allow all valid declarations in configuration project files
1954 (Reset): Initialize all tables and hash tables in the project tree data
1955 Major update of the Project Manager and of the project aware tools,
1956 including gprmake, so that the same sources in the GNAT repository
1957 can be used by gprbuild.
1958 (Slash_Id): Change type to be Path_Name_Type
1959 (Slash): Return a Path_Name_Type instead of a File_Name_Type
1961 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
1963 Update Project Manager to new attribute names for ghprbuild
1964 Allow all valid declarations in configuration project files
1965 Major update of the Project Manager and of the project aware tools,
1966 including gprmake, so that the same sources in the GNAT repository
1967 can be used by gprbuild.
1970 Major update of the Project Manager and of the project aware tools,
1971 including gprmake, so that the same sources in the GNAT repository
1972 can be used by gprbuild.
1974 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
1975 insensitive flag for attributes with optional index.
1976 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
1977 array attribute, put the index in lower case.
1978 Update Project Manager to new attribute names for ghprbuild
1979 Allow all valid declarations in configuration project files
1980 Major update of the Project Manager and of the project aware tools,
1981 including gprmake, so that the same sources in the GNAT repository
1982 can be used by gprbuild.
1984 * prj-env.ads, prj-env.adb:
1985 Major update of the Project Manager and of the project aware tools,
1986 including gprmake, so that the same sources in the GNAT repository
1987 can be used by gprbuild.
1988 (Get_Reference): Change type of parameter Path to Path_Name_Type
1990 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
1991 removing '-' from the path to start with the first character of the
1993 Major update of the Project Manager and of the project aware tools,
1994 including gprmake, so that the same sources in the GNAT repository
1995 can be used by gprbuild.
1996 Major update of the Project Manager and of the project aware tools,
1997 including gprmake, so that the same sources in the GNAT repository
1998 can be used by gprbuild.
2000 * prj-nmsc.ads, prj-nmsc.adb:
2001 Update Project Manager to new attribute names for ghprbuild
2002 Allow all valid declarations in configuration project files
2003 (Search_Directories): Detect subunits that are specified with an
2004 attribute Body in package Naming. Do not replace a source/unit in the
2005 same project when the order of the source dirs are known. Detect
2006 duplicate sources/units in the same project when the order of the
2007 source dirs are not known.
2008 (Check_Ada_Name): Allow all identifiers that are not reserved words
2010 Major update of the Project Manager and of the project aware tools,
2011 including gprmake, so that the same sources in the GNAT repository
2012 can be used by gprbuild.
2013 (Look_For_Sources): If the list of sources is empty, set the object
2014 directory of non extending project to nil.
2015 Change type of path name variables to be Path_Name_Type
2016 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
2017 otherwise creating missing directories will fail.
2019 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
2020 prj-part.ads, prj-part.adb:
2021 Major update of the Project Manager and of the project aware tools,
2022 including gprmake, so that the same sources in the GNAT repository
2023 can be used by gprbuild.
2025 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2026 insensitive flag for attributes with optional index.
2027 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2028 array attribute, put the index in lower case.
2029 (Parse_Variable_Reference): Allow the current project name to be used in
2030 the prefix of an attribute reference.
2032 * prj-util.ads, prj-util.adb
2033 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
2034 defaulted to False. When True, always check against indexes in lower
2037 * snames.ads, snames.h, snames.adb:
2038 Update Project Manager to new attribute names for gprbuild
2039 Allow all valid declarations in configuration project files
2041 2007-08-14 Robert Dewar <dewar@adacore.com>
2042 Ed Schonberg <schonberg@adacore.com>
2044 * opt.ads: Warning for non-local exception propagation now off by
2046 New switch -gnatI to disable representation clauses
2047 Implement new pragma Implicit_Packing
2050 Warning for non-local exception propagation now off by default
2051 Add warning for unchecked conversion of pointers wi different
2053 New switch -gnatI to disable representation clauses
2055 * usage.adb: new switch -gnatyS
2057 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
2058 note that aggregates of anonymous array types are not flagged.
2059 -gnatwc now includes membership tests optimized away
2060 -gnatw.x warnings are now off by default
2061 Added conditional compilation Appendix
2062 Add documentation of -gnatI
2063 Add documentation for new -gnatyS style check
2064 Update documentation about SAL and auto-init on Windows.
2067 Add documentation for pragma Check_Name and 'Enabled attribute
2068 Document that Eliminate on dispatching operation is ignored
2069 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
2070 Document pragma Main
2071 Document pragma Implicit_Packing
2073 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
2074 different conventions
2075 New switch -gnatI to disable representation clauses
2077 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2078 recognized, report the invalid characters including "-gnat" instead of
2079 just the first character in the switch.
2080 New switch -gnatI to disable representation clauses
2081 Set Warn_On_Object_Renames_Function true for -gnatg
2083 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2084 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2085 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2086 to switch -aP (add directory to project search dir).
2088 * par-prag.adb: Implement new pragma Implicit_Packing
2090 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2091 type as having a non-standard representation, to force expansion on
2092 conversion to related types.
2093 (Analyze_Pragma): Warn on misspelled pragma
2094 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2095 Ensure consistent use of # in error messages
2096 Implement pragma Implicit_Packing
2098 2007-08-14 Olivier Hainque <hainque@adacore.com>
2099 Eric Botcazou <ebotcazou@adacore.com>
2101 * targtyps.c (get_target_maximum_default_alignment): New function.
2103 that the compiler might choose by default for a type or object.
2104 (get_target_default_allocator_alignment): New function. Alignment known
2105 to be honored by the target default allocator.
2106 (get_target_maximum_allowed_alignment): New function. Maximum alignment
2107 we might accept for any type or object on the target.
2108 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2110 * gigi.h (get_target_maximum_default_alignment): Declare new function.
2111 (get_target_default_allocator_alignment): Likewise.
2112 (get_target_maximum_allowed_alignment): Likewise.
2115 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2116 result of a function call, first try to use a stabilized reference for
2117 a constant renaming too.
2118 (validate_alignment): Use target_maximum_allowed_alignment instead of
2119 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2120 (gnat_to_gnu_entity): Use common nodes directly.
2121 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2122 alignment and size for the object.
2123 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2124 and N_Procedure_Call_Statement.
2125 (takes_address): Rename to lvalue_required_p, add third parameter
2126 'aliased' and adjust recursive calls.
2127 <N_Indexed_Component>: Update 'aliased' from the array type.
2128 <N_Selected_Component>: New case.
2129 <N_Object_Renaming_Declaration>: New Likewise.
2130 (Identifier_to_gnu): Adjust for above changes.
2131 (maybe_stabilize_reference) <CONST_DECL>: New case.
2133 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2134 between type variants.
2135 (build_simple_component_ref): Likewise.
2136 (build_call_alloc_dealloc): Use target_default_allocator_alignment
2137 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2138 aligning type circuitry for allocations from the default storage pool.
2139 (build_allocator): Likewise.
2140 (build_simple_component_ref): Manually fold the reference for a
2141 constructor if the record type contains a template.
2143 * utils.c (value_zerop): Delete.
2144 (gnat_init_decl_processing): Emit debug info for common types.
2145 (rest_of_record_type_compilation): If a union contains a field
2146 with a non-constant qualifier, treat it as variable-sized.
2147 (finish_record_type): Give the stub TYPE_DECL a name.
2148 (rest_of_record_type_compilation): Likewise.
2149 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
2150 types are equivalent array types.
2151 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2152 even if the type is not passed by reference.
2153 (static_ctors, static_dtors): Delete.
2154 (end_subprog_body): Do not record constructors and destructors.
2155 (build_global_cdtor): Delete.
2156 (gnat_write_global_declarations): Do not call build_global_cdtor.
2158 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
2159 -fRTS=rtp is specified.
2160 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2163 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2164 of the personality function with SJLJ exceptions.
2166 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2167 the name of the personality function with SJLJ exceptions.
2169 2007-08-14 Robert Dewar <dewar@adacore.com>
2170 Ed Schonberg <schonberg@adacore.com>
2172 * par.ads, par.adb: Improve handling of extra right parens.
2173 (Par): Remove flag From_Limited_With_Clause.
2175 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2176 Improve handling of extra right parens.
2178 2007-08-14 Robert Dewar <dewar@adacore.com>
2180 * par-tchk.adb (TF_Semicolon): Improve error recovery
2182 2007-08-14 Robert Dewar <dewar@adacore.com>
2183 Ed Schonberg <schonberg@adacore.com>
2185 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2186 enumeration type, mark all literals as referenced.
2187 (Eval_Attribute, case 'Image): If the argument is an enumeration
2188 literal and names are available, constant-fold but mark nevertheless as
2190 Clean up function names.
2191 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2193 (Requires_Simple_Name_Prefix): Removed.
2195 2007-08-14 Robert Dewar <dewar@adacore.com>
2196 Ed Schonberg <schonberg@adacore.com>
2198 * sem_ch11.adb: Improved warnings for unused variables
2200 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2201 is a synchronized interface, the derived type is limited.
2202 (Analyze_Object_Declaration): Mark the potential coextensions in the
2203 definition and expression of an object declaration node.
2204 (Build_Derived_Type): For the completion of a private type declaration
2205 with a derived type declaration, chain the parent type's representation
2206 items to the last representation item of the derived type (not the
2207 first one) if they are not present already.
2208 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2209 object declaration of forward references to tags.
2210 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2211 subprogram types can appear as access discriminants of synchronized
2213 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2214 given in prefixed form as a selected component.
2215 (Process_Discriminants): If not all discriminants have defaults, place
2216 error message on a default that is present.
2217 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2218 extend a synchronized tagged type.
2219 Improved warnings for unused variables
2220 (Is_Visible_Component): Fix a visibility hole on a component inherited
2221 by a private extension when parent is itself declared as a private
2222 extension, and the derivation is in a child unit.
2223 (Find_Hidden_Interface): Move spec from the package body.
2225 2007-08-14 Robert Dewar <dewar@adacore.com>
2226 Ed Schonberg <schonberg@adacore.com>
2228 * sem_ch5.adb: Improve warnings on redundant assignments
2230 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2232 (Is_Synchronized_Tagged_Type): New subprogram that returns true
2233 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2234 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2235 is set to False. Improves handling of Known_[Not_]Null.
2236 (Wrong_Type): Special case address arithmetic attempt
2237 (Collect_Abstract_Interfaces): Add new formal to allow collecting
2238 abstract interfaces just using the partial view of private types.
2239 (Has_Abstract_Interfaces): Add new formal to allow checking types
2240 covering interfaces using the partial view of private types.
2241 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2242 component still needs to be defined in this case, but is never
2243 initialized as VMs are using other dispatching mechanisms.
2244 (Abstract_Interface_List): For a protected type, use base type to get
2246 Improve warnings on redundant assignments
2247 (Is_Variable): Handle properly an implicit dereference of a prefixed
2249 (Build_Actual_Subtype): If this is an actual subtype for an
2250 unconstrained formal parameter, use the sloc of the body for the new
2251 declaration, to prevent anomalises in the debugger.
2253 2007-08-14 Robert Dewar <dewar@adacore.com>
2255 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2256 dispatching operation
2258 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2259 Gary Dismukes <dismukes@adacore.com>
2262 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2263 expanded aggregate code before allocator, and ahead of declaration for
2264 temporary, to prevent access before elaboration when the allocator is
2265 an actual for an access parameter.
2266 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2267 the TSD and the table of interfaces.
2268 (Convert_To_Assignments): Augment the test for delaying aggregate
2269 expansion for limited return statements to include the case of extended
2270 returns, to prevent creation of an unwanted transient scope.
2271 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2272 (Expand_Array_Aggregate): Handle aggregates associated with
2273 statically allocated dispatch tables.
2274 (Expand_Record_Aggregate): Handle aggregates associated with
2275 statically allocated dispatch tables.
2276 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2277 of anonymous access type.
2279 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2281 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2282 is a variable that renames a slice, use the variable itself in the
2283 expannsion when the renamed expression itself may be modified between
2284 the declaration of the renaming and the array assignment.
2286 2007-08-14 Jerome Guitton <guitton@adacore.com>
2288 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2289 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
2290 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2291 New functions; dummy implementations.
2293 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2294 functions, used to implement the multi-tasks mode routines on VxWorks.
2296 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2298 binding to the VxWorks routines which have changed between VxWorks 5
2300 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2301 which are not callable from a RTP.
2303 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2304 implemented for the multi-tasks mode on VxWorks 5 and 6.
2306 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2308 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2311 2007-08-14 Vincent Celier <celier@adacore.com>
2313 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
2314 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2315 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
2316 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2317 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2318 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2319 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2321 (Major_Id_Name): New function.
2322 mlib-tgt.ads/mlib.tgt.adb:
2323 (Library_Major_Minor_Id_Supported): New function, default returns True
2324 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2325 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2326 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2327 Implementation of Library_Major_Minor_Id_Supported returns False
2329 (Clean_Library_Directory): If major/minor ids are supported, clean all
2331 Major update of the Project Manager and of the project aware tools,
2332 including gprmake, so that the same sources in the GNAT repository
2333 can be used by gprbuild.
2335 2007-08-14 Olivier Hainque <hainque@adacore.com>
2337 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2338 (GCC_ZCX_Support): Switch to True.
2340 * s-intman-solaris.adb (Notify_Exception): Call
2341 Adjust_Context_For_Raise before raising, as expected for signal
2342 handlers in general.
2344 * s-intman-posix.adb (Notify_Exception): Remove declaration of
2345 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2346 to other implementation bodies.
2348 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2349 be visible by multiple implementation bodies.
2351 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2352 only for conditions coming from hardware.
2353 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2354 adjustments to signal context prior to exception raise from signal
2356 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2358 Solaris section: (__gnat_adjust_context_for_raise): New function.
2359 Implementation of the machine context adjustments to perform prior to
2360 raise from a signal handler. Version for both sparc and x86.
2361 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2362 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2363 prior to raising as expected for any handler, before possible nested
2364 faults to make sure all the contexts in a chain have been adjusted by
2365 the time we propagate.
2367 2007-08-14 Pascal Obry <obry@adacore.com>
2369 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2370 (SYSTEM_INFO): New record.
2371 (SetThreadIdealProcessor): New imported routine needed for supporting
2372 task_info pragma on Windows.
2374 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2375 info can be applied to the current host.
2376 (Create_Task): Set the ideal processor if information is present.
2378 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2379 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2381 2007-08-14 Olivier Hainque <hainque@adacore.com>
2383 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2384 stack size and initial stack pointer value for a given task.
2385 (Enter_Task): Get the stack attributes of the task we are entering and
2386 let the stack checking engine know about them.
2388 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2389 Let the stack-checking engine know about the initial sp value and stack
2390 size associated with the current task.
2391 (Set_Stack_Info): If a stack base has been notified for the current
2392 task, honor it. Fallback to the previous less accurate method otherwise.
2394 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2396 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2398 * sem_ch10.adb: Create a limited view of an incomplete type, to make
2399 treatment of limited views uniform for all visible declarations in a
2400 limited_withed package.
2401 Set flag indicating that a subprogram body for a child unit has a
2403 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2404 separate declaration, remove the unit name from visibility after
2405 compilation, so that environment is clean for subsequent compilations.
2406 (Install_Limited_Context_Clauses): Do not install a
2407 limited_private_with_clause unless the current unit is a body or a
2409 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2410 in the same fashion.
2411 (Install_Limited_Withed_Unit): Do not install a limited with clause if
2412 it applies to the declaration of the current package body.
2413 (Remove_Private_With_Clauses): If there is a regular with_clause for
2414 the unit, delete Private_With_Clause from context, to prevent improper
2415 hiding when processing subsequent nested packages and instantiations.
2417 2007-08-14 Jose Ruiz <ruiz@adacore.com>
2419 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2420 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2421 representing absolute path names.
2422 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2424 * cstreams.c (__gnat_full_name for VxWorks): Use
2425 __gnat_is_absolute_path to detect whether we need to add the current
2426 directory to normalize the path.
2428 2007-08-14 Javier Miranda <miranda@adacore.com>
2431 a-tags.adb (Displace): Associate a message with the raised CE
2433 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2434 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2435 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2437 (Default_Prim_Op_Count): Removed.
2438 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2439 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2440 Remove pragma Inline_Always.
2442 * rtsfind.ads (Default_Prim_Op_Count): Removed
2443 (Max_Predef_Prims): New entity
2444 (RE_Expanded_Name): Removed
2445 (RE_HT_Link): Removed
2446 (RE_Iface_Tag): Remmoved
2447 (RE_Ifaces_Table): Removed
2448 (RE_Interfaces_Array): Removed
2449 (RE_Interface_Data_Element): Removed
2450 (RE_Nb_Ifaces): Removed
2451 (RE_RC_Offset): Removed
2452 (RE_Static_Offset_To_Top): Removed
2454 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2456 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2457 Prim_Op_Count by Max_Predef_Prims.
2459 2007-08-14 Thomas Quinot <quinot@adacore.com>
2460 Vincent Celier <celier@adacore.com>
2462 * binde.adb (Elab_All_Links): Remove unnecessary call to
2463 Generic_Separately_Compiled (if a unit satisfies this predicate, there
2464 won't be an associated Afile).
2465 (Elab_All_Links): Fail if a referenced unit cannot be found
2468 Fix comments in bindgen regarding consistency checks done in Bcheck:
2469 the checks are made across units within a partition, not across several
2471 Fix generation of C binder file for VxWorks.
2473 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2474 Generic_May_Lack_ALI, more descriptive of the current use of the
2475 predicate, and update documentation.
2477 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2478 reorganization and documentation update for the case of predefined
2479 library generics (for which we do not reference an Afile).
2481 2007-08-14 Robert Dewar <dewar@adacore.com>
2483 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2484 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2485 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2486 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2487 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2488 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2489 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2490 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2491 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2492 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2493 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2494 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2495 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2496 g-altcon.adb: Minor reformatting
2498 ada-tree.h: Delete empty line.
2500 ali.ads: Minor reformatting
2501 Clarification of comments.
2502 Minor spelling correction
2504 * exp_dbug.adb: Add Warnings Off to suppress new warning
2506 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2509 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2512 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2514 * a-textio.ads: Reorder the standard input/output/error declarations
2517 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2519 * par-ch2.adb: Recognize RM specially in errout
2520 Change 'R'M to RM in all error messages
2522 * scng.adb: Recognize RM specially in errout
2524 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2525 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2527 * s-direio.adb: Add missing routine header box.
2529 * sem_attr.ads: Add ??? comments
2531 * sem_eval.adb: Recognize RM specially in errout
2532 Change 'R'M to RM in all error messages
2534 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2536 * s-tasinf.ads: Fix minor comment typo.
2538 * a-cihama.adb: Minor comment addition
2540 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2543 * s-tasinf-tru64.ads: Fix minor comment typo.
2545 * itypes.ads: Comment update.
2547 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2550 * argv.c: Added protection against null gnat_argv and gnat_envp.
2552 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2553 warning message when Tolerate_Consistency_Errors is True.
2555 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2556 Any_Id, as this subprogram is only applicable to *type* entities (it
2557 sets RM_Size). Instead initialize just Esize and Alignment.
2559 2007-08-14 Bob Duff <duff@adacore.com>
2561 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
2562 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
2563 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
2564 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2565 a-coorse.ads (Next): Applied pragma Inline.
2566 Make all Containers packages Remote_Types (unless they are already
2568 (Previous): applied pragma Inline
2569 (Elements_Type): is now a record instead of an array
2571 2007-08-14 Thomas Quinot <quinot@adacore.com>
2573 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2575 (Set_Item): When the new item is an element of the currently allocated
2576 table passed by reference, save a copy on the stack if we're going
2577 to reallocate. Also, in Table.Set_Item, make sure we test the proper
2578 variable to determine whether to call Set_Last.
2580 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2581 symbols-vms.adb, symbols-processing-vms-alpha.adb,
2582 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2583 some occurrences of the pattern
2585 T.Table (T.Last) := Value;
2586 with a cleaner call to
2589 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2590 Gary Dismukes <dismukes@adacore.com>
2591 Thomas Quinot <quinot@adacore.com>
2593 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2594 derived type with interface progenitors use the analyzed formal as the
2595 parent of the actual, to create renamings for all the inherited
2596 operations in Derive_Subprograms.
2597 (Collect_Previous_Instances): new procedure within of
2598 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2599 unit being loaded, to ensure that the generation of global symbols is
2600 consistent in different compilation modes.
2601 (Is_Tagged_Ancestor): New function testing the ancestor relation that
2602 takes progenitor types into account.
2603 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2604 traversing over the primitives of the formal and actual types to locate
2605 any abstract subprograms of the actual type that correspond to a
2606 nonabstract subprogram of the formal type's ancestor type(s), and issue
2607 an error if such is found.
2608 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2609 Instantiate_Package_Body, Instantiate_Subprogram_Body):
2610 Remove bogus guard around calls to Inherit_Context.
2611 (Reset_Entity): If the entity is the selector of a selected component
2612 that denotes a named number, propagate constant-folding to the generic
2613 template only if the named number is global to the generic unit.
2614 (Set_Instance_Env): Only reset the compilation switches when compiling
2615 a predefined or internal unit.
2617 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2619 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2620 parameter to determine whether operation applies to the prefix.
2621 (Complete_Object_Operation): If actual has an access type and
2622 controlling formal is not an in_parameter, reject the actual if it is
2623 an access_to_constant type.
2624 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2625 type, the candidate operations are found in the scope of declaration of
2626 the type, because the type has no primitive subprograms.
2627 (Analyze_Selected_Component): If prefix is class-wide, and root type is
2628 a private extension, only examine visible components before trying to
2629 analyze as a prefixed call.
2630 Change Entity_List to Type_To_Use, for better readability.
2631 (Has_Fixed_Op): Use base type when checking whether the type of an
2632 operator has a user-defined multiplication/division
2633 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2634 user-defined operators are available for fixed-point types.
2636 2007-08-14 Thomas Quinot <quinot@adacore.com>
2637 Ed Schonberg <schonberg@adacore.com>
2639 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2640 formal At_Any_Place indicating, when True, that we want to test for
2641 availability of the stream attribute at any place (as opposed to the
2642 current visibility context only).
2643 (Missing_Read_Write_Attributes): A stream attribute is missing for the
2644 purpose of enforcing E.2.2(8) only if it is not available at any place.
2645 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2646 when checking the legality of an extension aggregate in a preelaborable
2647 package. Treat the literal null as a valid default expression in a
2648 component declaration for a type with preelaborable initialization.
2649 A limited interface is a legal progenitor for the designated type of a
2650 remote access to class-wide type.
2652 2007-08-14 Thomas Quinot <quinot@adacore.com>
2653 Ed Schonberg <schonberg@adacore.com>
2655 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2656 reference): Use correct entity as denoted entity for the selector of
2658 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2659 setting the Referenced_As_LHS flag for entities that are implicitly
2661 (Find_Type): If the type is an internally generated incomplete type,
2662 mark the full view as referenced, to prevent spurious warnings.
2663 (Find_Selected_Component, Has_Components): Handle properly non-limited
2664 views that are themselves incomplete types.
2665 Handle interfaces visible through limited-with clauses.
2666 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2667 subprogram generic actual for which we have generated a renaming.
2668 Warn when the renaming introduces a homonym of
2669 the renamed entity, and the renamed entity is directly visible.
2671 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2672 Hristian Kirtchev <kirtchev@adacore.com>
2674 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2675 appear in the subtree to the current allocator if it is not a static
2677 (Resolve_Allocator): Perform cleanup if resolution has determined that
2678 the allocator is not a coextension.
2679 (Resolve): Skip an interpretation hidden by an abstract operator only
2680 when the type of the interpretation matches that of the context.
2681 (Resolve): When looping through all possible interpretations of a node,
2682 do not consider those that are hidden by abstract operators.
2683 (Resolve_Actuals): When verifying that an access to class-wide object
2684 is an actual for a controlling formal, ignore anonymous access to
2685 subprograms whose return type is an access to class_wide type.
2686 (Resolve_Slice): If the prefix of the slice is a selected component
2687 whose type depends on discriminants, build its actual subtype before
2688 applying range checks on the bounds of the slice.
2689 (Valid_Conversion): In an instance or inlined body, compare root types,
2690 to prevent anomalies between private and public views.
2691 (Resolve): Improve error message for ambiguous fixed multiplication
2692 expressions that involve universal_fixed multiplying operations.
2694 2007-08-14 Javier Miranda <miranda@adacore.com>
2695 Hristian Kirtchev <kirtchev@adacore.com>
2697 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2698 location to allow the correct generation of errors in case of
2699 restrictions applied to the expanded code.
2700 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2701 function if the condition does not reference them.
2702 (Expand_Entry_Body_Declarations): Mark the index constant as having a
2705 2007-08-14 Thomas Quinot <quinot@adacore.com>
2707 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2708 typecode parameters for a union (in a variant record), remove
2709 extraneous layer of Any wrapping for member label.
2710 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2711 elabration statements, register the package with the name server
2712 at the beginning, not at the end, of the elaboration statements so
2713 that they can create remote access to subprogram values that designate
2714 remote subprograms from the package.
2716 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
2718 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2719 values to compute the number of seconds since the Unix Epoc in order to
2720 account for Daylight Savings Time. Perform special processing for dates
2721 that are earlier than the Unix Epoc to obtain a negative number.
2723 2007-08-14 Emmanuel Briot <briot@adacore.com>
2725 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2728 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
2730 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2731 binder-generated file is not in Ada.
2732 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2733 recorded in the ALI file.
2734 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2736 2007-08-14 Vincent Celier <celier@adacore.com>
2738 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2739 (Output_Source): Do nothing if parameter is No_Sdep_Id
2741 * make.adb (Gnatmake): Do not rebuild an archive simply because a
2742 shared library it imports has a later time stamp.
2743 (Check): Resolve the symbolic links in the path name of the object
2745 Check that the ALI file is in the correct object directory
2746 Check if a file name does not correspond to the mapping of units
2748 (Display_Version): New procedure
2749 (Initialize): Process switches --version and --help
2750 Use type Path_Name_Type for path name
2752 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
2754 * impunit.adb: Re-organize System.Random_Numbers and
2755 GNAT.Random_Numbers and add to builds.
2757 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2759 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2761 * a-assert.ads, a-assert.adb: New files.
2763 2007-08-14 Gary Dismukes <dismukes@adacore.com>
2765 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2766 if AAMP_On_Target is True, then the size of the type encompasses two
2767 addresses (a static link and a subprogram address), except in the case
2768 of library-level access types.
2770 2007-08-14 Vincent Celier <celier@adacore.com>
2772 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2774 (Write_Eol_Keep_Blanks): New procedure to write a line, including
2775 possible trailing spaces.
2776 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2778 2007-08-14 Javier Miranda <miranda@adacore.com>
2780 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2781 null-excluding access types.
2783 2007-08-14 Javier Miranda <miranda@adacore.com>
2785 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2786 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2787 of private types add missing check on matching interfaces in the
2788 partial and full declarations.
2789 (Analyze_Protected_Type): Code cleanup.
2790 (Analyze_Task_Type): Code cleanup.
2792 2007-08-14 Javier Miranda <miranda@adacore.com>
2794 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2795 generated interface thunk.
2797 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2799 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2800 obsolescent warning on application of 'Class to an incomplete type.
2802 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2803 prevent obsolescent warning on application of 'Class to an incomplete
2806 2007-08-14 Pascal Obry <obry@adacore.com>
2808 * s-fileio.adb (Is_Open): Add check for usability of the underlying
2811 2007-08-14 Cyrille Comar <comar@adacore.com>
2813 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2814 since it is potentially used in cases implying double finalization of
2817 2007-08-14 Jose Ruiz <ruiz@adacore.com>
2819 * s-tasini.adb (Get_Stack_Info): Move this function to
2820 System.Soft_Links.Tasking because it is common to the full and the
2821 restricted run times.
2822 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2823 in SSL.Tasking.Init_Tasking_Soft_Links.
2825 * s-solita.adb (Get_Stack_Info): Function moved from
2826 System.Tasking.Initialization because it is common to the full and the
2827 restricted run times.
2828 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2830 2007-08-14 Arnaud Charlet <charlet@adacore.com>
2832 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2833 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2834 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2837 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2840 2007-08-14 Gary Dismukes <dismukes@adacore.com>
2842 * s-veboop.adb (SU): New named number initialized to
2843 System.Storage_Unit.
2844 (True_Val): The initialization expression is revised to use SU (=
2845 Storage_Unit) rather than assuming 8 for the component size of an
2846 unpacked Boolean array.
2848 2007-08-14 Tristan Gingold <gingold@adacore.com>
2850 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2852 * tb-ivms.c: New file.
2854 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2856 2007-08-14 Geert Bosch <bosch@adacore.com>
2858 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2859 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2860 Add required linker pragmas for automatically linking with the gnalasup
2861 linear algebra support library, and the systems math library.
2862 Rename cdot to cdotu and zdot to zdotu.
2863 Update header comment to describe purpose of package.
2865 2007-08-14 Thomas Quinot <quinot@adacore.com>
2867 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
2868 an explicitly specified Associated_Final_Chain, use that list.
2869 (Expand_N_Package_Body): Build dispatch tables of library level tagged
2871 (Expand_N_Package_Declaration): Build dispatch tables of library level
2872 tagged types. Minor code cleanup.
2874 2007-08-14 Vincent Celier <celier@adacore.com>
2876 * gnatchop.adb (Terminate_Program): Remove exception and use
2877 Types.Terminate_Program instead.
2879 * osint.ads, osint.adb (Current_Exit_Status): New global variable
2880 (Find_Program_Name): Added protection against empty name.
2881 (OS_Exit_Through_Exception): New procedure
2883 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
2884 (OS_Exit_Default): New procedure that contains the previous
2885 implementation of procedure OS_Exit.
2886 (Final_Value): Remove obsolete Interix stuff.
2888 2007-08-14 Thomas Quinot <quinot@adacore.com>
2890 * g-socket.ads: Reorganize example code so that it also works on
2893 2007-08-14 Tristan Gingold <gingold@adacore.com>
2895 * g-trasym.ads: AIX now supports symbolic backtraces.
2897 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2899 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
2900 units being loaded to detect circularities. A circularity may be
2901 present even if the current chain of pending units to load starts from
2902 a limited_with_clause.
2904 * lib-load.ads: Change profile of Load_Unit to use a with_clause
2905 rather than a boolean flag, in order to detect circularities in
2908 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
2909 than propagating the From_Limited_With flag, in order to handle
2910 properly circularities involving with_clauses.
2912 2007-08-14 Nicolas Setton <setton@adacore.com>
2914 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
2917 2007-08-14 Arnaud Charlet <charlet@adacore.com>
2919 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
2920 to build for libgnala.
2921 libgnat: Add rules to build libgnala.a
2922 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
2923 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
2924 Add s-osinte-vxworks-kernel.adb to the target pairs of the
2925 kernel run-time lib for VxWorks 6, which would provide a different
2926 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
2927 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
2928 running ZCX by default.
2929 Add g-sttsne-locking to LynxOS version.
2930 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
2931 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
2933 * system-darwin-x86.ads: New file.
2935 * Make-lang.in: Delete files before copying onto them, so if they are
2936 read-only, the copy won't fail.
2939 2007-08-14 Pascal Obry <obry@adacore.com>
2941 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
2944 2007-08-14 Vincent Celier <celier@adacore.com>
2946 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
2947 (Gcc): Initialize Gcc_Name at the first call
2949 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2951 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
2952 with_clauses of the enclosing unit when analyzing the package
2953 specification of a nested instance.
2955 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
2957 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
2958 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
2959 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
2960 layout of N_Allocator.
2962 2007-08-14 Thomas Quinot <quinot@adacore.com>
2964 * rtsfind.adb (Check_RPC): Add PCS version check.
2966 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
2967 (Gnat_Free_Software): New function.
2969 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
2970 the PCS_Version value from s-parint, used to check that it is consistent
2971 with what exp_dist expects.
2973 * s-parint.ads (PCS_Version): New entity for checking consistency
2974 between exp_dist and PCS.
2976 * gen-soccon.c: (SO_REUSEPORT): New constant.
2978 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
2980 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
2981 variable Sub_Second to Duration in order to accomodate a larger range
2982 of arithmetic operations.
2984 2007-08-14 Bob Duff <duff@adacore.com>
2986 * g-sttsne-locking.ads: Move comments from spec to body.
2987 * g-sttsne-locking.adb: Move comments from spec to body.
2988 * g-sttsne-vxworks.ads: Removed.
2989 * g-sttsne-vxworks.adb: Removed.
2991 2007-08-11 Ian Lance Taylor <iant@google.com>
2993 * misc.c (gnat_get_alias_set): Change return type to
2996 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2998 * decl.c, utils2.c: Fix whitespace in last change.
3000 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3002 * decl.c (compare_field_bitpos): Constify.
3003 * utils2.c (compare_elmt_bitpos): Likewise.
3005 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
3007 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
3008 anonymous access type.
3009 (pthread_sigmask): Now take an access sigset_t.
3011 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
3013 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
3015 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
3017 PR tree-optimization/25737
3018 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
3020 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3022 * trans.c (Attribute_to_gnu): When subtracting an
3023 offset from a pointer, use POINTER_PLUS_EXPR with
3024 NEGATE_EXPR instead of MINUS_EXPR.
3025 (gnat_to_gnu): Likewise.
3026 * utils.c (convert): When converting between
3027 thin pointers, use POINTER_PLUS_EXPR and sizetype
3029 * utils2.c (known_alignment): POINTER_PLUS_EXPR
3030 have the same semantics as PLUS_EXPR for alignment.
3031 (build_binary_op): Add support for the semantics of
3032 POINTER_PLUS_EXPR's operands.
3033 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
3035 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
3037 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
3038 of get_signed_or_unsigned_type.
3039 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
3041 2007-06-11 Bob Duff <duff@adacore.com>
3042 Thomas Quinot <quinot@adacore.com>
3044 * g-stsifd-sockets.adb (Create): Work around strange behavior of
3045 'bind' on windows that causes 'connect' to fail intermittently, by
3046 retrying the 'bind'.
3047 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3049 2007-06-10 Duncan Sands <baldrick@free.fr>
3051 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
3052 than to void, for the fields when making a new fat pointer type.
3053 (gnat_substitute_in_type): Now substitute_in_type.
3054 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
3055 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
3056 * utils.c (update_pointer_to): Update fat pointers by updating the
3057 dummy node pointers used for the fields.
3059 2007-06-06 Thomas Quinot <quinot@adacore.com>
3060 Bob Duff <duff@adacore.com>
3062 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
3063 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
3064 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
3065 constant Thread_Blocking_IO, always True by default, set False
3066 on a per-runtime basis.
3067 (Need_Netdb_Buffer): New constant.
3069 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
3070 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
3073 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
3074 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
3075 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3076 child package Task_Safe_NetDB
3077 (Host_Error_Messages): Add stub body.
3078 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3080 * g-soccon-mingw.ads: Add Windows-specific constants.
3081 (Need_Netdb_Buffer): New constant.
3082 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3083 wrapper and import inet_addr(3) from the standard sockets library
3085 (In_Addr): Add alignment clause.
3086 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3088 2007-06-06 Robert Dewar <dewar@adacore.com>
3090 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3091 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3092 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3093 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3094 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3095 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3096 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3097 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3098 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3099 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3100 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3101 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3102 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3103 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3104 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3105 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3106 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3107 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3108 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3109 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3110 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3111 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3112 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3113 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3114 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3115 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3116 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3117 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3118 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3119 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3120 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3121 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3122 Unchecked_* by Ada.Unchecked_*
3124 2007-06-06 Robert Dewar <dewar@adacore.com>
3126 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3127 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3128 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3129 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3130 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3131 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3133 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3134 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3135 s-tasloc.adb, s-tasloc.ads: New files.
3137 2007-06-06 Bob Duff <duff@adacore.com>
3140 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3141 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3142 (Send_Signal, Close): Raise Invalid_Process if the process id is
3144 (Pattern_Matcher_Access): Is now a general access type to be able to
3147 2007-06-06 Thomas Quinot <quinot@adacore.com>
3148 Arnaud Charlet <charlet@adacore.com>
3150 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3151 (SIGEMT is now used instead of SIGTERM on AIX).
3153 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
3154 (Time_Slice_Supported): Set to True.
3155 Use SIGEMT instead of SIGTERM as SIGADAABORT.
3157 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
3159 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
3160 (Time, Time)): Use To_Relative_Time rather than manual calculation to
3161 express the bounds of Duration as Time. Raise Time_Error when the
3162 result is greater or equal to the higher bound of Duration (on the
3164 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
3166 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
3168 ("-" (Time, Time)): Reorder code.
3169 (All_Leap_Seconds): Removed.
3170 (Arithmetic_Operations.Add): Remove sign related kludge.
3171 (Arithmetic_Operations.Difference): Control the leaps seconds processing
3172 with flag Leap_Support.
3173 (Arithmetic_Operations.Subtract): Remove sign related kludge.
3174 (Check_Within_Time_Bounds): New procedure.
3175 (Clock): Control the leap seconds processing with flag Leap_Support.
3176 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
3177 (Formatting_Operations.Split): Control the leap seconds processing with
3179 (Formatting_Operations.Time_Of): Control the leaps seconds processing
3180 with flag Leap_Support. Adjust the year, month and day (if applicable)
3181 when the value of day seconds designates a new day.
3182 (Split): Use parameter associations for better readability. Integrate
3184 (Time_Of): Use parameter associations for better readability. Integrate
3187 * a-calfor.adb (Split): Use parameter associations for better
3188 readability. Integrate flag Is_Ada_05.
3189 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
3190 better readability. Integrate flag Is_Ada_05.
3192 2007-06-06 Arnaud Charlet <charlet@adacore.com>
3194 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
3195 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
3196 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
3197 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
3198 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
3199 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
3200 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
3201 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
3202 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
3203 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
3204 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
3205 time when entering this routine to detect a backward clock setting
3206 (manual setting or DST adjustment), to avoid waiting for a longer delay
3208 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
3209 Remove handling of deferred priority change, and replace by setting the
3210 task priority directly, as required by AI-188.
3212 (Max_Task_Image_Length): New constant.
3213 Replace Warnings (Off) by Unreferenced pragma, cleaner.
3214 (Dynamic_Priority_Support): Removed, no longer needed.
3215 (Poll_Base_Priority_Change): Ditto.
3216 (Set_Ceiling): Add this procedure to change the ceiling priority
3217 associated to a lock. This is a dummy implementation because dynamic
3218 priority ceilings are not supported by the underlying system.
3220 * a-dynpri.adb (Set_Priority): Take into account case where Target is
3221 accepting a RV with its priority boosted.
3222 Remove handling of deferred priority change, and replace by setting the
3223 task priority directly, as required by AI-188.
3225 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
3227 Remove handling of deferred priority change, and replace by setting the
3228 task priority directly, as required by AI-188.
3229 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
3232 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
3233 (Poll_Base_Priority_Change): Removed.
3234 Code clean up: use SSL.Current_Target_Exception.
3236 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
3237 to run as this is a potentially dispatching point.
3238 (Call_Synchronous): Use Local_Defer_Abort.
3239 (Callable): Relax assertion.
3240 (Selective_Wait): Relax assertion in case abort is not allowed.
3241 Remove handling of deferred priority change, and replace by setting the
3242 task priority directly, as required by AI-188.
3244 * s-tasuti.adb (Make_Passive): Adjust assertions.
3245 Remove handling of deferred priority change, and replace by setting the
3246 task priority directly, as required by AI-188.
3248 2007-06-06 Arnaud Charlet <charlet@adacore.com>
3250 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
3251 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
3252 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
3253 system-vxworks-mips.ads, system-vxworks-alpha.ads,
3254 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
3255 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
3256 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
3257 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
3258 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
3259 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
3260 system-linux-ia64.ads: Document mapping between Ada and OS priorities.