1 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
3 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
4 of Empty_String'Unchecked_Access.
6 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
9 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
10 and its argument must not be free()ed.
12 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
14 * decl.c (make_packable_type): Retrieve the real name of the type.
15 (maybe_pad_type): Simplify similar code.
17 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
20 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
21 than an identifier is used after "case" in a variant_part.
24 * par-ch4.adb (Is_Parameterless_Attribute): New map.
25 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
26 attribute name or not depending on the new map.
28 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
29 returning a string or a type will not be called with improper
32 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
34 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
37 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
38 Signal an error when attribute argument is a fixed-point value of
42 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
43 a derived ordinary fixed point type.
45 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
46 RM_Size when a Small clause is found.
48 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
51 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
52 Pass 'false' for the new allocate_struct_function parameter.
53 * utils.c (build_function_stub): Likewise.
55 2007-11-25 Richard Guenther <rguenther@suse.de>
57 utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
58 (gnat_poplevel): Likewise.
60 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
62 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
63 strict alignment, no alignment clause and a known static size, cap
64 the type alignment to the greatest power of 2 factor of the size.
65 (gnat_to_gnu_field): If the field has a component clause, is aliased
66 or of a type with strict alignment, require that its size be equal to
68 (validate_size): Use the type size as the minimum size for a type with
71 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
73 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
74 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
75 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
76 Use 'Access instead of 'Unchecked_Access in second and third
77 arguments of pthread_sigmask.
79 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
81 * decl.c (ceil_alignment): New function.
82 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
83 (make_packable_type): Likewise.
85 2007-11-22 Olivier Hainque <hainque@adacore.com>
87 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
90 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
92 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
93 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
95 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
98 * misc.c (gnat_adjust_rli): Delete.
99 (gnat_init): Do not initialize the translation code here.
100 Do not call set_lang_adjust_rli.
101 * trans.c (init_code_table): Make static.
102 (gnat_init_stmt_group): Delete.
103 (gigi): Initialize the translation code entirely here.
104 Emit debug info for the common types here instead of...
105 * utils.c (gnat_init_decl_processing): ...here.
106 * gigi.h (init_code_table): Delete.
107 (gnat_init_stmt_group): Likewise.
109 2007-11-16 Olivier Hainque <hainque@adacore.com>
111 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
112 retrieving an allocator return value from a super-aligned address from
114 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
115 expect a super-aligned address for a fat or thin pointer.
117 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
119 * trans.c (call_to_gnu): Always set the source location on the call
120 expression. If the function returns-by-target, also set it on the
123 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
125 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
126 sections of non-supported Interix target.
128 * s-osinte-interix.ads: Removed.
130 * i-cstrin.ads (chars_ptr): Make it a C convention type.
132 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
134 * a-tasatt.adb: Add a comment at the beginning of the package
135 explaining why in general 'Unchecked_Access must be used instead
138 * sem_prag.adb (Process_Convention): Move the test for the
139 entity on which the Convention pragma applies down to also
140 forbid pragma Convention on enumeration literals reached
143 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
145 * a-tasatt.adb: Revert previous change for this file as it will
146 generate an error when this package is instantiated from a
149 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
151 * a-tasatt.adb: Type Wrapper should be declared in comment instead
152 of already declared type Node_Access.
153 Use 'Access instead of 'Unchecked_Access when applicable. Local
154 lifetime is the one of the package.
155 (Set_Value): W is allocated on the heap.
157 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
159 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
161 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
164 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
166 (elaboration code): Timer_Queue lifetime is the one of the
169 * tracebak.c (i386 alternative): Remove useless comparaison
170 which is always false; LOWEST_ADDRESS is 0 and is never greater
171 than an unsigned integer.
173 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
174 embedded check for "Ada_Version >= Ada_05".
176 2007-11-07 Olivier Hainque <hainque@adacore.com>
178 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
179 craft and expand comment.
181 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
183 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
185 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
187 * misc.c (gnat_handle_option): Replace call to abort with
188 call to gcc_unreachable.
189 (gnat_init): Likewise.
190 (gnat_expand_expr): Likewise.
191 (fp_prec_to_size): Likewise.
192 (fp_size_to_prec): Likewise.
194 2007-10-23 Richard Guenther <rguenther@suse.de>
197 * tracebak.c: #undef abort after including system.h.
199 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
201 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
202 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
204 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
206 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
208 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
209 Set the protection status of the guard page based on the value of On.
211 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
213 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
214 (Exit_Task): Pass False to Hide_Yellow_Zone.
216 2007-10-15 Robert Dewar <dewar@adacore.com>
218 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
219 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
220 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
221 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
222 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
223 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
224 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
225 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
226 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
227 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
228 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
229 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
230 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
231 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
232 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
233 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
235 Add Unreferenced and Warnings (Off) pragmas for cases of
236 variables modified calls where they are IN OUT or OUT parameters and
237 the resulting values are not subsequently referenced. In a few cases,
238 we also remove redundant code found by the new warnings.
240 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
241 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
242 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
243 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
244 warning controlled by -gnatw.o that warns on cases of out parameter
245 values being ignored.
247 2007-10-15 Geert Bosch <bosch@adacore.com>
249 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
251 * expect.c: Initial port to arm-mentor-nucleus.
252 Use kill for __gnat_kill() on VMS.
254 2007-10-15 Emmanuel Briot <briot@adacore.com>
256 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
258 (Xref_Record): Change type for Line, since in the case of a reference to
259 a predefined entity (as happens for array index types), the line is set
261 Add support for parsing multiple array index types info, or
262 multiple inherited interfaces info. This information cannot be stored
263 in Xref_Entity_Record, which only supports a single instance of Tref_*,
264 and is therefore stored in the list of references instead. It has a
265 special treatement later on in tools that use this information.
267 2007-10-15 Tristan Gingold <gingold@adacore.com>
269 * debug.adb: Document use of -gnatd.a and -gnatd.I
271 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
273 2007-10-15 Javier Miranda <miranda@adacore.com>
275 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
276 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
277 care of access to class-wide interface types plus removal of bizarre
278 conversion of tagged object to access type (reported by Gary
279 Dismukes). After this patch there is no need to perform any
280 additional management on these nodes in Expand_Interface_Actuals.
282 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
283 that handles use of 'Access and 'Unchecked_Access applied to
284 actuals covering interface types. Such code is now
285 centralized in Expand_N_Attribute_Reference.
287 2007-10-15 Ed Schonberg <schonberg@adacore.com>
289 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
290 of tagged types whose ultimate ancestor is a CPP type.
291 (Freeze_Array_Type): For a packed array type, generate an initialization
292 procedure if the type is public, to handle properly a client that
293 specifies Normalize_Scalars.
295 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
297 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
298 inside a generic body, retrieve the full view of the entry family
299 discrete subtype if available.
301 2007-10-15 Thomas Quinot <quinot@adacore.com>
303 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
304 attempt to generate stubs for hidden primitive operations.
306 2007-10-15 Vincent Celier <celier@adacore.com>
308 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
309 returning None, used when there is no platform specific body for
312 2007-10-15 Bob Duff <duff@adacore.com>
314 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
315 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
316 the generic Heap_Sort_G, in order to avoid trampolines.
318 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
319 Jose Ruiz <ruiz@adacore.com>
321 * vx_stack_info.c: New file.
323 * i-forbla-unimplemented.ads: New file.
325 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
326 for unsupported configurations; use it on VMS targets instead of the
328 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
329 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
330 used by VxWorks targets to have access to task-specific data and be
331 able to extract the stack boundaries for stack checking.
332 Use system-vms-ia64.ads on ivms.
334 * Make-lang.in: Update dependencies.
336 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
339 2007-10-15 Vincent Celier <celier@adacore.com>
341 * snames.adb, snames.ads: Add new standard name runtime_library_dir
343 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
345 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
347 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
348 the source is unknown.
350 * prj-ext.adb: Spelling error fix
352 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
353 95 reserved word in its name.
354 (Process_Project_Level_Array_Attributes): Process new attribute
357 * prj-part.adb (Parse_Single_Project): Do not check the name of the
358 config project against the user project names.
360 * prj-proc.adb (Expression): In multi-language mode, indexes that do
361 not include a dot are always case insensitive.
362 (Process_Declarative_Items): Ditto
363 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
366 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
367 True, compare both indexes in lower case.
369 2007-10-15 Robert Dewar <dewar@adacore.com>
371 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
373 2007-10-15 Gary Dismukes <dismukes@adacore.com>
375 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
376 association for an access component, add an association with null as
377 the expression. Remove testing for array subtypes and the setting in
378 that case of Ctyp to the array component type, which prevented proper
379 inclusion of an association for null-initialized arrays. Collapse
380 condition that tests for array subtypes into just a test of
381 Is_Partially_Initialized_Type (which already covers arrays anyway).
383 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
385 * sem_ch12.adb: Minor code reformatting.
386 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
387 find the parent package which may have been hidden by local
390 2007-10-15 Gary Dismukes <dismukes@adacore.com>
392 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
393 flag of derived concurrent types, taking into account the flag setting
394 on the parent subtype and any new set of discriminants.
396 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
398 * sem_ch4.adb: Minor code and comment reformatting.
399 (Analyze_Allocator): When the designated type of an unconstrained
400 allocator is a record with unknown discriminants or an array with
401 unknown range bounds, emit a detailed error message depending on the
402 compilation mode and whether the designated type is limited.
404 2007-10-15 Tristan Gingold <gingold@adacore.com>
406 * system-vms-ia64.ads: New file.
408 * system-vms_64.ads: Minor comment fix.
410 2007-10-15 Ed Schonberg <schonberg@adacore.com>
412 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
413 body generated for a function with a controlling result that is a null
414 extension, discard the generated body in favor of the current explicit
417 2007-10-15 Ed Schonberg <schonberg@adacore.com>
419 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
420 examining its original form, to handle properly operator calls that
423 2007-10-15 Olivier Hainque <hainque@adacore.com>
425 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
426 instead of a procedure value in each traceback entry.
428 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
429 instead of procedure value to TBK$SYMBOLIZE.
431 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
433 (TB_Entry_For): Account for the PV/FP renaming.
435 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
437 (Null_TB_Entry): Account for change of component name.
438 (PV_For): Rename as FP_For.
440 2007-10-15 Tristan Gingold <gingold@adacore.com>
442 * trans.c (gnat_to_gnu): Remove the padding structure more often.
443 This optimize assignment to over-aligned record.
445 2007-10-15 Emmanuel Briot <briot@adacore.com>
447 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
450 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
451 type, for dispatching calls.
453 2007-10-15 Vincent Celier <celier@adacore.com>
454 Robert Dewar <dewar@adacore.com>
456 * gnat_ugn.texi: Add documentation for switches --version and --help
457 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
458 gnatxref, gnatfind, gnatls, and gnatclean.
460 Mention attribute Excluded_Source_Dirs
461 Replace obsolescent attribute Locally_Removed_Files with attribute
462 Excluded_Source_Files.
463 Improve documentation of -u (gnatbind)
464 Document how to do reliable stack checking for the environmental task
467 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
468 Document attribute Excluded_Source_Files and indicate that attribute
469 Locally_Removed_Files is obsolescent.
471 2007-10-15 Thomas Quinot <quinot@adacore.com>
473 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
476 Update documentation to note that OpenVMS 8.3 or later must be used
477 to generate g-soccon-vms.ads.
479 * atree.adb: Add ??? comment
481 * exp_util.adb: Minor reformatting.
482 Add ??? comment in Kill_Dead_Code.
484 2007-10-15 Robert Dewar <dewar@adacore.com>
486 * errout.ads: Comment clarification
488 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
489 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
491 * lib.ads: Comment update
493 * init.c: Minor reformatting.
495 * sem_attr.adb: Minor formatting
497 * osint-b.ads: Minor reformatting
499 * sem_ch9.adb: Implement -gnatd.I switch
501 * g-comlin.adb: (Start): Fix handling of empty command line.
503 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
504 even when -rules follows the -cargs section.
506 2007-10-08 Ollie Wild <aaw@google.com>
508 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
510 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
512 (gnat_eh_runtime_type): Removed.
513 (gnat_return_tree): New function.
515 2007-10-08 Ben Elliston <bje@au.ibm.com>
519 2007-08-31 Ben Elliston <bje@au.ibm.com>
521 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
522 when compiling for powerpc64-*-linux.
523 * system-linux-ppc64.ads: New file.
525 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
527 Mapped location support
528 * back_end.adb (Call_Back_End): Pass information about source
529 files instead of units to gigi.
530 * gigi.h (struct File_Info_Type): New.
531 (gigi): Rename and change type of number_units parameter, change
532 type of file_info_ptr parameter.
533 * trans.c (number_files): New global variable.
534 (gigi): Rename and change type of number_units parameter, change
535 type of file_info_ptr parameter.
536 If mapped location support is enabled, create the isomorphic mapping
537 between source files and line maps.
538 (Sloc_to_locus): If mapped location support is enabled, translate
539 source location into mapped location.
540 (annotate_with_node): Rename into set_expr_location_from_node.
541 Call set_expr_location instead of annotate_with_locus.
542 (Pragma_to_gnu): Adjust for above change.
543 (Loop_Statement_to_gnu): Likewise.
544 (call_to_gnu): Likewise.
545 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
546 (gnat_to_gnu): Likewise.
547 (add_stmt_with_node): Likewise.
548 (add_cleanup): Likewise.
549 * utils.c (gnat_init_decl_processing): Do not set input_line.
551 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
553 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
554 (Applicable_Use): Emit a warning when a package tries to use itself.
555 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
556 is already in use or the package where it is declared is in use or is
557 declared in the current package.
558 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
560 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
561 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
562 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
564 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
566 * a-calend-vms.adb, a-calend.adb:
567 Add a section on leap seconds control along with two entities used to
568 enable and disable leap seconds support. The array Leap_Second_Times is
569 now constant and contains hard time values pre-generated. Remove
570 all elaboration code used to populate the table of leap seconds.
573 Add entity Leap_Seconds_Support to the list of global run-time variables
574 along with a comment on its usage and values.
575 (Gen_Adainit_Ada): Add code to generate the declaration and import of
576 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
577 or one (enabled) depending on the presence of binder switch "-y".
578 (Gen_Adainit_C): Add code to generate the declaration of external int
579 __gl_leap_seconds_support. Set is value to zero (disabled) or one
580 (enabled) depending on the presence of binder switch "-y".
582 * init.c: Add __gl_leap_seconds_support to the list of global values
583 computed by the binder.
585 2007-09-26 Jerome Guitton <guitton@adacore.com>
587 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
588 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
589 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
590 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
592 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
594 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
595 function which can be called by the debugger to interrupt the tasks of
596 an Ada application asynchronously, as needed on VxWorks.
597 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
599 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
600 renamed from Stop_All_Tasks. Update comments.
601 (Stop_All_tasks): New function declaration.
603 2007-09-26 Olivier Hainque <hainque@adacore.com>
605 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
606 #include <utime.h> and #define GCC_RESOURCE_H before
607 #include <sys/wait.h>.
608 Add more protections in __gnat_translate_vms.
610 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
611 #include <sys/wait.h>.
613 2007-09-26 Thomas Quinot <quinot@adacore.com>
614 Sergey Rybin <rybin@adacore.com>
616 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
618 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
621 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
623 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
626 * sem_dist.ads: Minor comment fix
628 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
630 2007-09-26 Javier Miranda <miranda@adacore.com>
631 Eric Botcazou <ebotcazou@adacore.com>
634 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
635 indirection added to the HT_Link component of the TSD. This is required
636 to statically allocate the TSD.
639 Minor reordering of the declarations in the private part. Required to
640 add a level of indirection to the contents of the TSD component HT_Link.
641 This is required to statically allocate the TSD.
643 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
644 Is_Statically_Allocated set from constant objects.
645 Do not make exported constants created by the compiler volatile.
646 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
649 * trans.c (Identifier_to_gnu): For constants, unshare initializers
650 before returning them.
652 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
653 public part of the package.
654 (Make_DT): Move HT_Link component out of the TSD record. For this
655 purpose Make_DT now declares a separate object that stores the
656 HT_Link value, and initializes the TSD component with the address
657 of this new object. The addition of this level of indirection is
658 required to statically allocate the TSD because the TSD cannot
659 have variable components.
660 (Expand_Interface_Conversion): Improve the expanded code.
661 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
663 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
664 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
665 if we are building static dispatch tables then we must not generate
666 extra code to register the primitive because the dispatch table will
667 be built at the end of the library package; otherwise we notify that
668 we cannot build the static dispatch table.
670 2007-09-26 Robert Dewar <dewar@adacore.com>
672 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
675 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
676 (Analyze_Record_Representation_Clause): Suppress junk warning for
677 missing component clause.
678 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
679 tests for controlled type overlay to composites with controlled
681 (Analyze_Record_Representation_Clause): Add reference for component name
683 2007-09-26 Javier Miranda <miranda@adacore.com>
684 Gary Dismukes <dismukes@adacore.com>
686 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
687 for thunks associated with interface types.
689 * einfo.ads: Improve documentatation of Is_Internal
690 (Is_Thunk): New attribute applicable to subprograms. True for thunks
691 associated with interface types.
692 Extensive comment fixes regarding flags that appear in all entities. The
693 documentation is now consistent for all such flags (there were a number
694 of errors in the documentation in this regard).
696 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
698 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
699 of these procedures are passed a function call that already has
700 build-in-place actuals (testing new flag
701 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
702 the case where processing continues.
703 (Expand_Call): If the call is generated from a thunk body then we
704 propagate the extra actuals associated with the accessibility
705 level of the access type actuals.
707 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
708 of each extra formal of a protected operation to reference the
709 corresponding extra formal of the subprogram denoted by the
710 operation's Protected_Body_Subprogram.
712 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
713 N_Function_Call nodes.
715 2007-09-26 Robert Dewar <dewar@adacore.com>
717 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
719 * debug.adb: Add d.s flag.
721 2007-09-26 Gary Dismukes <dismukes@adacore.com>
723 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
724 debug variable so that it won't be initialized when pragma
725 Initialize_Scalars is in effect.
727 2007-09-26 Gary Dismukes <dismukes@adacore.com>
729 * freeze.adb (Freeze_Entity): Remove check for preelaborable
730 initialization of a full view. This is moved to
731 Analyze_Package_Specification.
733 * sem_ch7.adb (Analyze_Package_Specification): Add check for
734 preelaborable initialization of a full view in entity loop.
735 (Uninstall_Declarations): If entity is a use-visible compilation unit,
736 its child units are use-visible only if they are visible child units.
738 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
739 whether an expression can be used within a type declaration that
740 requires preelaborable init.
741 (Check_Components): Replace inline code that does partial checking for
742 preelaborable default expressions with call to
743 Is_Preelaborable_Expression.
744 (Has_Preelaborable_Initialization): In the case of a generic actual
745 subtype, (that is, Is_Generic_Actual is True), return the result of
746 applying Has_Preelaborable_Initialization to the generic actual's base
749 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
751 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
752 call to Jan_1_Day _Of_Week to optimize its performance.
753 (Is_Leap): Move the routine to the scope of Week_In_Year.
754 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
755 weekday on which January 1 falls of Year - 1 and Year + 1. This function
756 avoids calling Time_Of and Split, thus making it more efficent.
757 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
759 * g-calend.ads (Week_In_Year): Change comment to reflect new
762 2007-09-26 Emmanuel Briot <briot@adacore.com>
764 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
765 Command_Line): New types
766 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
767 support for defining how switches can be grouped on a command line (as
768 is the case for -gnatw... for GNAT), and how simple switches can be
769 used as aliases for more complex switches (-gnatwa is same as
771 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
772 (Start, Current_*): New subprograms
773 Added support for parsing an array of strings in addition to the real
775 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
776 be moved from the body to the private part of the spec.
777 (*): All subprograms now have an extra parameter with default value to
778 specify which parser should be used. For backward compatibility, it
779 defaults to parsing the command line of the application. They were also
780 modified to properly handle cases where each of the argument does not
781 start at index 1 (which is always true for Ada.Command_Line, but not
782 when processing any Argument_List).
783 (Free): New subprogram
784 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
785 Argument): New subprograms
786 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
787 special characters like ':', '=',... are now handled in a single place,
788 which makes the code more extensible eventually.
789 (Getopt, Full_Switch): When the switch was returned as part of the
790 special character '*', make sure it is prepended by the switch character
791 ('-' in general), so that the application knows whether "foo" or "-foo"
792 was specified on the command line.
794 2007-09-26 Florian Villoing <villoing@adacore.com>
796 * g-dirope.adb (Remove_Dir): In case we are removing directories
797 recursively, make sure that if an exception is raised during the
798 processing, the current working directory is reset to its initial
799 value before propagating the exception.
801 2007-09-26 Vincent Celier <celier@adacore.com>
803 * gnatbind.adb: If there are several ALI files specified and there is
804 a main program to bind, the first ALI is expected to contain the main
805 subprogram and the names of the binder generated files will be derived
806 from the first ALI file name.
807 (Gnatbind): Fix insertion character in invocation of Error_Msg
809 2007-09-26 Vincent Celier <celier@adacore.com>
811 * gnatcmd.adb (Check_Files): Do not include sources that have been
812 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
814 2007-09-26 Ed Schonberg <schonberg@adacore.com>
816 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
817 information about each of its index types, following the type
818 reference for its component type.
820 2007-09-26 Vincent Celier <celier@adacore.com>
822 * make.adb: (Kill): New procedure (__gnat_kill imported)
823 (Running_Compile, Outstanding_Compiles): Global variables that
824 were previously local to procedure Compile_Sources.
825 (Sigint_Intercepted): Send signal SIGINT to all outstanding
826 compilation processes.
828 (Gnatmake): If project files are used, create the mapping of all the
829 sources, so that the correct paths will be found.
831 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
833 2007-09-26 Vincent Celier <celier@adacore.com>
835 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
837 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
838 Replace components Compiler_Min_Options and Binder_Min_Options with
839 Compiler_Required_Switches and Binder_Required_Switches in record
841 Remove components Default_Language and Config in Project_Tree_Data,
844 * prj-attr.adb: New attributes Required_Switches (<language>) in
845 packages Compiler and Binder.
847 * prj-nmsc.adb: Major rewrite of the processing of configuration
848 attributes for gprbuild. No impact on GNAT tools.
850 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
851 process configuration attributes: this is done in Prj.Nmsc.Check.
852 (Recursive_Process): Make a full copy of packages inherited from project
853 being extended, instead of a shallow copy.
854 (Process_Project_Tree_Phase_1): New procedure
855 (Process_Project_Tree_Phase_1): New procedure
856 (Process): Implementation now uses the two new procedures
858 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
859 from the project config, not the tree config that no longer exists.
861 2007-09-26 Vincent Celier <celier@adacore.com>
863 * Make-lang.in: Update dependencies..
865 2007-09-26 Vincent Celier <celier@adacore.com>
867 * osint.adb, osint.ads: Minor reformatting
869 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
871 2007-09-26 Gary Dismukes <dismukes@adacore.com>
873 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
874 message to cite use of <> in aggregate component associations rather
875 than wrongly indicating use of limited aggregates.
877 2007-09-26 Robert Dewar <dewar@adacore.com>
879 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
882 2007-09-26 Ed Schonberg <schonberg@adacore.com>
884 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
885 ancestor of the derived type, the operations are inherited from the
886 primary dispatch table of the parent.
887 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
888 when the context is an explicit type conversion.
890 2007-09-26 Ed Schonberg <schonberg@adacore.com>
892 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
893 rule for qualified expressions properly, to detect improper conversions
894 and resolve some cases of overloading.
896 2007-09-26 Ed Schonberg <schonberg@adacore.com>
898 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
899 proper kind of reference to the primitive operation, for better source
901 (Valid_Conversion): A tagged conversion is legal if both operands are
904 2007-09-26 Robert Dewar <dewar@adacore.com>
906 * sem_warn.adb (Check_References): Catch more cases of unreferenced
909 2007-09-26 Vincent Celier <celier@adacore.com>
911 * snames.adb, snames.ads: Change Include_Option to Include_Switches
913 2007-09-26 Robert Dewar <dewar@adacore.com>
915 * s-wchstw.adb: provide messages for run time unit exceptions
917 * a-witeio.adb: Minor reformatting
919 * exp_ch13.adb: Minor reformatting
921 2007-09-26 Sergey Rybin <rybin@adacore.com>
923 * vms_data.ads: Revise gnatmetric qualifiers.
924 Add qualified for the new gnatbind option '-y'
926 * gnat_ugn.texi: Revise the gnatmetric section.
927 Add entry for new gnatbind option '-y'.
929 * gnat_rm.texi: Minor spelling correction.
930 Document restriction on overlaying controlled types
932 2007-09-26 Vincent Celier <celier@adacore.com>
934 * makegpr.adb (Link_Executables): Do not fail when the root project has
935 no sources, but is an extending project.
937 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
939 * trans.c: Fix misplaced #define.
941 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
943 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
944 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
946 2007-09-21 Olivier Hainque <hainque@adacore.com>
948 * utils.c (type_for_nonaliased_component_p): Return false for
951 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
953 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
954 object covered by 13.3(19) volatile.
956 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
960 * utils.c (unchecked_convert): Use a subtype as the intermediate type
961 in the special VIEW_CONVERT_EXPR case.
963 2007-09-12 Robert Dewar <dewar@adacore.com>
965 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
967 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
968 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
969 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
970 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
971 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
972 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
973 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
974 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
975 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
976 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
977 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
978 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
979 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
980 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
981 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
982 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
983 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
984 pragma Compiler_Unit and adds it to relevant library units.
986 2007-09-12 Ed Schonberg <schonberg@adacore.com>
988 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
989 a box need not correspond to any component.
991 2007-09-12 Robert Dewar <dewar@adacore.com>
993 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
994 the tasking version of the Ada run time when foreign threads are
995 present and there are no explicit Ada tasks or tasking constructs.
997 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
999 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
1001 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
1002 the usage of switch -y.
1004 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
1005 when switch -y is present.
1007 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
1008 leap seconds in Ada.Calendar and its children.
1010 2007-09-12 Jose Ruiz <ruiz@adacore.com>
1012 * a-extiti.ads (Timer): The discriminant is a "not null access
1013 constant" in the Reference Manual.
1014 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
1016 2007-09-12 Robert Dewar <dewar@adacore.com>
1018 * a-swuwha.adb: Remove junk RM header
1020 2007-09-12 Vincent Celier <celier@adacore.com>
1022 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
1025 * g-bytswa.ads: Minor reformatting
1027 2007-09-12 Thomas Quinot <quinot@adacore.com>
1029 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
1030 Add new constant Thread_Blocking_IO, always True by default, set False
1031 on a per-runtime basis.
1032 (Need_Netdb_Buffer): New constant.
1034 2007-09-12 Arnaud Charlet <charlet@adacore.com>
1036 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
1037 Added renames for corresponding functions in System.Partition_Interface.
1039 2007-09-12 Doug Rupp <rupp@adacore.com>
1041 * Makefile.in: Remove VMS specific System.CRTL packages which are no
1044 * s-crtl-vms64.ads: Removed.
1046 2007-09-12 Olivier Hainque <hainque@adacore.com>
1048 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
1049 with discriminant constraints, generalize the code for BIT_FIELDs
1050 to PACKED fields of constant size and propagate DECL_PACKED.
1052 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
1054 * decl.c (array_type_has_nonaliased_component): New predicate.
1055 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
1056 set the TYPE_NONALIASED_COMPONENT flag on the type.
1057 <E_Array_Subtype>: Likewise.
1058 * gigi.h (type_for_nonaliased_component_p): Declare.
1059 * utils.c (type_for_nonaliased_component_p): New predicate.
1060 (create_field_decl): Invoke the above predicate to set the
1061 DECL_NONADDRESSABLE_P flag on the field.
1063 2007-09-11 Javier Miranda <miranda@adacore.com>
1065 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
1066 in library level record type entities if we are generating statically
1067 allocated dispatch tables.
1069 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
1070 importing/exporting the _tag declaration by new code
1071 importing/exporting the dispatch table wrapper. This change allows us
1072 to statically allocate of the TSD.
1073 (Make_DT.Export_DT): New procedure.
1074 (Build_Static_DT): New function.
1075 (Has_DT): New function.
1077 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
1078 True_Constant and Current_Value. Required to statically
1079 allocate the dispatch tables.
1080 (Check_Allocator): Make function iterative instead of recursive.
1081 Also return inner allocator node, when present, so that we do not have
1082 to look for that node again in the caller.
1084 2007-09-11 Jan Hubicka <jh@suse.cz>
1086 * misc.c (gnat_expand_body): Kill.
1087 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1089 2007-09-10 Robert Dewar <dewar@adacore.com>
1091 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
1092 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
1093 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
1094 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
1095 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
1096 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
1097 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
1098 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
1099 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
1100 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
1101 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
1102 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
1103 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
1104 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
1105 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
1106 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
1107 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
1108 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
1109 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
1110 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
1111 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
1112 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
1113 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
1114 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
1115 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
1116 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
1117 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
1118 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
1119 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
1120 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
1121 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
1122 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
1123 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
1124 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
1125 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
1126 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
1127 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
1128 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
1129 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
1130 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
1131 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
1132 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1133 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
1134 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
1135 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
1136 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
1137 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
1138 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
1139 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
1140 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
1141 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
1142 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
1143 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
1144 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
1145 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
1146 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
1147 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
1148 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
1149 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1150 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
1151 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
1152 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1153 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
1154 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
1155 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
1156 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
1157 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
1158 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
1159 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
1160 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
1161 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
1162 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
1163 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
1164 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
1165 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
1166 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
1167 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
1168 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
1169 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
1170 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
1171 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
1172 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
1173 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
1175 2007-09-10 Emmanuel Briot <briot@adacore.com>
1177 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
1180 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
1182 * adaint.c (__gnat_translate_vms): new function.
1184 2007-09-10 Gary Dismukes <dismukes@adacore.com>
1185 Thomas Quinot <quinot@adacore.com>
1187 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
1188 create an abstract subprogram in the case of 'Input. For 'Output we now
1189 create a real spec/body when the type is abstract, since it can
1190 potentially be called.
1191 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
1192 body for 'Output when the type is abstract (only the creation of the
1193 body for 'Input is excluded when the type is abstract).
1194 (Stream_Operation_OK): Add an additional condition in the return
1195 statement, so that False will be returned for TTS_Stream_Input if the
1196 associated tagged type is an abstract extension. Add comments for
1198 (Expand_N_Object_Declaration): For the case of a shared passive
1199 variable, insert init proc call only after the shared variable
1200 procedures have been processed, because the IP call needs to undergo
1201 shared passive variable reference expansion, which requires these
1202 procedures to be available (and elaborated).
1204 2007-09-10 Vincent Celier <celier@adacore.com>
1206 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1207 parameter Runtime_Project.
1209 2007-09-10 Ed Schonberg <schonberg@adacore.com>
1211 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1212 given a box association, the type of the component is discriminated,
1213 and the value of the discriminant is the discriminant of the enclosing
1214 type, retrieve its value from the aggregate itself, where it must have
1217 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1218 to remove other spurious ambiguities on arithmetic operations involving
1219 literals and addresses, on systems where Address is a visible integer
1220 type, when the operator is called in functional notation.
1221 (Try_Primitive_Operation): Within an instance, a call in prefixed form
1222 is legal when the types match, even if the operation is currently
1225 2007-09-10 Ed Schonberg <schonberg@adacore.com>
1227 * sem_ch12.adb (Build_Local_Package): A formal package with no
1228 associations is legal if all formals have defaults. It is not
1229 equivalent to a formal declared with a box.
1231 2007-09-10 Sergey Rybin <rybin@adacore.com>
1233 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1235 2007-09-10 Sergey Rybin <rybin@adacore.com>
1237 * gnat_ugn.texi: Add description of the new '-lratio' option
1238 Update 7.3.1 section about availability of the feature.
1240 2007-09-10 Thomas Quinot <quinot@adacore.com>
1242 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1245 2007-09-10 Olivier Hainque <hainque@adacore.com>
1247 * Makefile.in: (mips-irix section): Activate build of libgmem.
1249 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1251 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1254 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1256 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1257 a debug renaming declaration specially.
1259 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1261 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1262 which a constant renaming is treated as a normal object declaration.
1263 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1264 the N_Indexed_Component case.
1265 <N_Indexed_Component>: Fall through to above case.
1266 <N_Object_Renaming_Declaration>: Return true for all composite types.
1268 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1270 * decl.c (make_packable_type): If the new type has been given BLKmode,
1271 try again to get an integral mode for it.
1273 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
1275 Re-apply accidentally reverted change:
1277 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
1279 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1280 get_action_description_for): Replace _Unwind_Word with _uleb128_t
1281 and _Unwind_SWord with _sleb128_t.
1283 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
1285 * trans.c (convert_with_check): Update call to real_2expN.
1287 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1289 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1290 * utils.c (end_subprog_body): Likewise.
1292 2007-09-03 Nick Clifton <nickc@redhat.com>
1294 * Make-lang.in: Change copyright header to refer to version 3 of
1295 the GNU General Public License and to point readers at the
1296 COPYING3 file and the FSF's license web page.
1297 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1298 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1299 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1300 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1303 2007-08-31 Vincent Celier <celier@adacore.com>
1307 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
1308 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1309 (Check_Version_And_Help): New procedure in package Switch to process
1310 switches --version and --help.
1311 Use Check_Version_And_Help in GNAT tools
1314 (Compile_Sources): Make sure that sources that are "excluded" are not
1316 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1317 project file is used.
1318 (Version_Switch): Remove, moved to Switch
1319 (Help_Switch): Remove, moved to Switch
1320 (Display_Version): Remove, moved to Switch
1322 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1323 package Switch to process switches --version and --help.
1324 (Display_Version): New procedure
1326 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1328 2007-08-31 Javier Miranda <miranda@adacore.com>
1330 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1333 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1335 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1336 (Mark_Non_Null): If the node for which we just generated an access check
1337 is a reference to an *in* parameter and the reference appears in the
1338 declarative part of a subprogram body, mark the node as known non null.
1340 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1342 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1343 structure of E_Exception to reflect the new flag.
1344 (Is_Raised, Set_Is_Raised): New inlined routines.
1345 Update the usage of available flag to reflect the addition of Is_Raised.
1346 (Is_Raised, Set_Is_Raised): Bodies of new routines.
1347 (Write_Entity_Flags): Write the status of flag Is_Raised.
1348 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1349 spurious ambiguities when integer literals appear in the context of an
1350 address type that is a visible integer type.
1352 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1353 exceptions never being raised.
1354 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1357 2007-08-31 Javier Miranda <miranda@adacore.com>
1359 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1360 statement when compiling under restriction No_Exceptions_Proparation.
1362 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1364 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1365 initialization aggregate for the type, generate itype references for
1366 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1368 2007-08-31 Gary Dismukes <dismukes@adacore.com>
1370 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1371 library-level package renaming, pass the declaration associated with
1372 the renaming's special debug variable to Qualify_Entity_Names to ensure
1373 that its encoded name is properly qualified.
1375 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1376 occurring in the list of entities to qualify, and do not attempt to
1377 traverse an entity list in that case. Variables associated with
1378 ` library-level package renamings can now occur in the table.
1380 * exp_dbug.ads: Revise documentation of the encoding for renaming
1383 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1385 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1386 access type points to an unconstrained array.
1388 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1390 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1393 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1394 simple redundant qualifications. The check is performed whenever the
1395 expression is a non-overloaded identifier.
1396 (Resolve_Type_Conversion): Enchance the redundant type conversion check
1397 to include loop parameters.
1398 (Valid_Conversion): Avoid generation of spurious error message.
1400 2007-08-31 Bob Duff <duff@adacore.com>
1402 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1403 concatenations of string literals into a single literal, in order to
1404 avoid very deep recursion in the front end, which was causing stack
1407 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1408 string, and the right operand is a string literal (the case of "" &
1409 "..."), optimize by avoiding copying the right operand -- just use the
1410 value of the right operand directly.
1412 * stringt.adb (Store_String_Chars): Optimize by growing the
1413 String_Chars table all at once, rather than appending characters one by
1415 (Write_String_Table_Entry): If the string to be printed is very long,
1416 just print the first few characters, followed by the length. Otherwise,
1417 doing "pn(n)" in the debugger can take an extremely long time.
1419 * sem_prag.adb (Process_Interface_Name): Replace loop doing
1420 Store_String_Char with Store_String_Chars.
1422 2007-08-31 Vincent Celier <celier@adacore.com>
1424 * prj-attr.adb: Add new attribute Excluded_Source_Files
1426 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1427 Locally_Removed_Files.
1429 * snames.ads, snames.adb: New standard name Excluded_Source_Files
1431 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1433 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1434 clauses of subunits, ignore limited_with_clauses that are illegal and
1435 have not been fully analyzed.
1437 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1439 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1440 flag, for effiency. It is called when analyzing arithmetic operators
1441 and also for actuals in calls that are universal_integers. The flag is
1442 set for the predefined type address, and for any type or subtype
1445 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1446 Universal_Integer, when the formal is a descendent of address and the
1447 call appears in user code.
1448 (Analyze_Selected_Component): if the prefix is a private extension, the
1449 tag component is visible.
1451 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1454 2007-08-31 Robert Dewar <dewar@adacore.com>
1456 * s-fileio.adb (Open): Normalize file name to lower case in non-case
1457 sensitive file name systems to avoid unexpected mismatch in Vista.
1459 2007-08-31 Vincent Celier <celier@adacore.com>
1461 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1463 2007-08-31 Vincent Celier <celier@adacore.com>
1465 * symbols-vms.adb (Initialize): Read symbol files with continuation
1467 (Finalize): If symbol is long, split the line
1469 2007-08-31 Vincent Celier <celier@adacore.com>
1471 * fmap.ads: Minor comment updates
1473 2007-08-31 GNAT Script <nobody@adacore.com>
1475 * Make-lang.in: Makefile automatically updated
1477 2007-08-31 Bob Duff <duff@adacore.com>
1479 * sinfo.ads: Minor comment fix.
1481 2007-08-31 Thomas Quinot <quinot@adacore.com>
1483 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1484 with implementation.
1485 Documentation cleanup only.
1487 2007-08-31 Sergey Rybin <rybin@adacore.com>
1489 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1490 gnatpp '--separate-stmt-name' option.
1491 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1494 * gnat_ugn.texi: Add description for the new gnatpp
1495 '--separate-stmt-name' and '--use-on-new-line' options.
1497 2007-08-31 Ben Elliston <bje@au.ibm.com>
1499 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1500 when compiling for powerpc64-*-linux.
1501 * system-linux-ppc64.ads: New file.
1503 2007-08-22 Krister Walfridsson <cato@df.lth.se>
1505 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1508 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1510 * misc.c (gnat_type_max_size): Constify.
1512 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1514 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1515 associated with Standard_Debug_Renaming_Type, to be used as the type of
1516 the special variables whose names provide debugger encodings for
1517 renaming declarations.
1519 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1520 (Set_Debug_Renaming_Link): Change to set Node25.
1521 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1522 (Write_Field25_Name): Add case for E_Variable to output
1523 "Debug_Renaming_Link".
1524 (Write_Field23_Name): Correct the output string for "Limited_View".
1526 * exp_dbug.adb: Add with and use of Tbuild.
1527 (Debug_Renaming_Declaration): Replace creation of an enumeration type
1528 and literal with creation of a variable of type
1529 Standard_Debug_Renaming_Type whose name encodes both the renamed object
1530 and the entity of the renaming declaration.
1531 (Qualify_Entity_Name): Add the delayed qualification of the entity name
1532 part of the name of a variable that has a Debug_Renaming_Link.
1534 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1535 special type to be associated with variables that provide debugger
1536 encodings for renaming declarations.
1538 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1539 Ed Schonberg <schonberg@adacore.com>
1540 Javier Miranda <miranda@adacore.com>
1542 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1543 ancestor part given by an aggregate to test for an unchecked conversion,
1544 since this can occur in some cases when the ancestor part is a function
1545 call, and we don't want to fall into the recursive call to this
1546 procedure in that case.
1548 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1549 stream attributes on limited types to account for user-specified
1550 attributes as well as whether Input (resp. Output) becomes available
1551 due to Read (resp. Write) being available for the type. Change Boolean
1552 variable to the more accurate name
1553 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1554 double-"not" predicate at beginning of return statement to more
1555 understandable form.
1557 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1558 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1559 in a block statement and use that as the first statement of the
1560 expanded return rather than incorrectly using the handled sequence as
1561 the first statement.
1563 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1564 operation, generate an explicit freeze node for it rather than
1565 generating extra formals, to ensure that gigi has the proper order of
1566 elaboration for anonymous subtypes in the signature of the subprograms.
1567 (Build_In_Place_Formal): Move assertion to beginning of loop.
1568 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1569 applied to a function call (occurs for some cases of 'Input).
1570 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1571 applied to a function call (occurs for some cases of 'Input).
1573 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1574 2005, generate an extended return statement enclosing the result object
1577 * freeze.adb (Freeze_Record_Type): Extend the current management of
1578 components that are access type with an allocator as default value: add
1579 missing support to the use of qualified expressions of the
1580 allocator (which also cause freezing of the designated type!)
1581 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1582 dispatching operation, since extra formals may be needed by calls to
1583 build-in-place functions (such as stream 'Input).
1585 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1586 formals for 'Constrained and accessibility level in the case of a
1587 predefined dispatching operation.
1589 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1590 point, no need to find the parent node.
1592 2007-08-16 Javier Miranda <miranda@adacore.com>
1594 * exp_attr.adb (Attribute_Priority): Add missing support for entries
1597 2007-08-16 Javier Miranda <miranda@adacore.com>
1599 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1600 is not really required and can introduce regression with the debugger.
1601 The original problem is fixed with the patch written for checks.adb.
1603 2007-08-16 Thomas Quinot <quinot@adacore.com>
1605 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1606 Range_Check on Allocated_Table.
1608 2007-08-16 Vincent Celier <celier@adacore.com>
1610 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1611 Including_Non_Switch set to False.
1612 (Gnatmake): For the compiler, call Test_If_Relative_Path with
1613 Including_Non_Switch set to False.
1615 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1616 parameter Including_Non_Switch, defaulted to True. When
1617 Including_Non_Switch is False, options that are not switches and
1618 appear as relative path are not converted to absolute paths.
1620 2007-08-16 Nicolas Roche <roche@adacore.com>
1622 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1625 * Make-lang.in: Update dependencies
1627 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1629 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1630 currently inspected is a selected component, retrieve the entity of
1632 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1633 from the immediate ancestor of Main_Unit_Entity.
1634 (Install_Limited_Withed_Unit): Do not install the limited view of
1635 package P if P is reachable through an ancestor chain from package C
1636 and C also has a with clause for P in its body.
1637 (Has_Limited_With_Clause): New routine.
1638 (Has_With_Clause): New routine.
1640 2007-08-16 Ed Schonberg <schonberg@adacore.com>
1642 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1643 generic for an enclosing instance is a global reference, even though
1644 its scope is the enclosing instance.
1646 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1647 Javier Miranda <miranda@adacore.com>
1649 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1650 initialize a limited object.
1651 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1653 Make sure Has_Complex_Representation is inherited by derived type.
1655 2007-08-16 Robert Dewar <dewar@adacore.com>
1657 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1660 2007-08-16 Ed Schonberg <schonberg@adacore.com>
1662 * sem_disp.adb (Check_Dispatching_Operation): If the operation
1663 implements an operation inherited from a progenitor interface, verify
1664 that they are subtype-conformant.
1666 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1667 Bob Duff <duff@adacore.com>
1668 Nicolas Setton <setton@adacore.com>
1670 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1671 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1672 the statement which is being resolved comes from a predefined library
1673 unit, all non-predefined library interpretations are skipped.
1674 (Resolve_Op_Concat): If string concatenation was folded in the parser,
1675 but the "&" is user defined, give an error, because the folding would
1678 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1679 the parser has folded a long sequence of concatenations of string
1682 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1683 and "JMP_BUF" variables as artificial.
1684 (N_String_Literal): Do not use alloca for very long string literals. Use
1685 xmalloc/free instead. Otherwise the stack might overflow.
1687 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1690 2007-08-16 Vincent Celier <celier@adacore.com>
1692 * vms_conv.adb (Process_Argument): Ensure that project related options
1693 are not put in the -cargs section when using GNAT COMPILE.
1695 2007-08-16 Robert Dewar <dewar@adacore.com>
1697 * gnat_ugn.texi: Add note on preprocessing (output file not written)
1699 2007-08-16 Thomas Quinot <quinot@adacore.com>
1701 * a-tags.adb: Minor reformatting.
1703 2007-08-16 Bob Duff <duff@adacore.com>
1705 * sem_type.ads, sem_ch4.adb: Minor reformatting.
1707 2007-08-14 Thomas Quinot <quinot@adacore.com>
1709 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
1710 s-osinte-interix.ads, system-interix.ads: Removed.
1712 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
1714 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1715 calls to Check_Within_Time_Bounds.
1716 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1717 (Difference): Account for possible rounding of the resulting difference
1719 2007-08-14 Robert Dewar <dewar@adacore.com>
1721 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1722 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1723 s-osinte-solaris.adb, s-osinte-solaris.ads,
1724 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1726 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1727 switch -gnatyS. Enable -gnatyS in GNAT style check mode
1729 2007-08-14 Robert Dewar <dewar@adacore.com>
1730 Ed Schonberg <schonberg@adacore.com>
1732 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
1733 Suppress unmodified in-out parameter warning in some cases
1734 This patch is a also fairly significant change to the way suppressible
1737 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1738 needed for access to concurrent record types generated by the expander.
1739 (Generate_Range_Check): When generating a temporary to capture the
1740 value of a conversion that requires a range check, set the type of the
1741 temporary before rewriting the node, so that the type is always
1742 properly placed for back-end use.
1743 (Apply_Float_Conversion_Check): Handle case where the conversion is
1745 (Get_Discriminal): Code reformatting. Climb the scope stack looking
1746 for a protected type in order to examine its discriminants.
1748 2007-08-14 Robert Dewar <dewar@adacore.com>
1749 Gary Dismukes <dismukes@adacore.com>
1750 Ed Schonberg <schonberg@adacore.com>
1751 Thomas Quinot <quinot@adacore.com>
1753 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
1754 a-stwisu.adb, a-strsup.adb: Fix warnings for range
1755 tests optimized out.
1757 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1758 (Get_Allocator_Final_List): For the case of an anonymous access type
1759 that has a specified Associated_Final_Chain, do not go up to the
1761 (Expand_N_Type_Conversion): Test for the case of renamings of access
1762 parameters when deciding whether to apply a run-time accessibility
1764 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1765 aggregate code before allocator, and ahead of declaration for
1766 temporary, to prevent access before elaboration when the allocator is
1767 an actual for an access parameter.
1768 (Expand_N_Type_Conversion): On an access type conversion involving an
1769 access parameter, do not apply an accessibility check when the
1770 operand's original node was an attribute other than 'Access. We now
1771 create access conversions for the expansion of 'Unchecked_Access and
1772 'Unrestricted_Access in certain cases and clearly accessibility should
1773 not be checked for those.
1775 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1776 includes a type conversion of a packed component that has been expanded,
1777 recover the original expression for the object, and use this expression
1778 in the post-call assignment statement, so that the assignment is made
1779 to the object and not to a back-end temporary.
1780 (Freeze_Subprogram): In case of primitives of tagged types not defined
1781 at the library level force generation of code to register the primitive
1782 in the dispatch table. In addition some code reorganization has been
1783 done to leave the implementation clear.
1784 (Expand_Call): When expanding an inherited implicit conversion,
1785 preserve the type of the inherited function after the intrinsic
1786 operation has been expanded.
1788 * exp_ch2.ads, exp_ch2.adb
1789 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1790 of an entry formal appearing in an assignment statement does not assign
1792 (Expand_Current_Value): Instead of calling a routine to determine
1793 whether the prefix of an attribute reference should be optimized or
1794 not, prevent the optimization of such prefixes all together.
1796 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1797 component whose prefix is known to be of an access type is an implicit
1798 dereference and does not assign to the prefix.
1800 2007-08-14 Ed Schonberg <schonberg@adacore.com>
1801 Robert Dewar <dewar@adacore.com>
1803 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1804 itype is visited, make an entry into table to link associated node and
1806 Add comments and correct harmless error in Build_NCT_Hash_Tables
1807 (Array_Aggr_Subtype): Associate each itype created for an index type to
1808 the corresponding range construct, and not to the aggregate itself. to
1809 maintain a one-to-one correspondence between itype and its associated
1810 node, to prevent errors when complex expression is copied.
1811 Fix mishandling of multiple levels of parens
1813 * sem_aggr.adb: Create a limited view of an incomplete type, to make
1814 treatment of limited views uniform for all visible declarations in a
1815 limited_withed package.
1816 (New_Copy_Tree): If hash table is being used and itype is visited,
1817 make an entry into table to link associated node and new itype.
1818 (Resolve_Record_Aggregate): Do not add an others box association for a
1819 discriminated record component that has only discriminants, when there
1820 is a box association for the component itself.
1822 * par-ch4.adb: Fix mishandling of multiple levels of parens
1824 2007-08-14 Robert Dewar <dewar@adacore.com>
1826 * comperr.adb: Fix problem with suppressing warning messages from gigi
1828 * erroutc.ads, erroutc.adb, errout.ads,
1829 errout.adb (Write_Eol): Remove trailing spaces before writing the line
1830 (Write_Eol_Keep_Blanks): New procedure to write a line, including
1831 possible trailing spaces.
1832 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1833 Fix problem with suppressing warning messages from back end
1834 Improve handling of deleted warnings
1837 Fix problem with suppressing warning messages from back end
1838 Handle setting of Static_Dispatch_Tables flag.
1841 Fix problem with suppressing warning messages from back end
1843 * exp_intr.adb: Improve handling of deleted warnings
1845 2007-08-14 Robert Dewar <dewar@adacore.com>
1847 * debug.adb: Improve -gnatdI to cover all cases of serialization
1848 Add documentation of dZ, d.t
1850 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1852 (Sprint_Node_Actual): Generate new output associated with implicit
1853 importation and implicit exportation of object declarations.
1855 2007-08-14 Ed Schonberg <schonberg@adacore.com>
1856 Robert Dewar <dewar@adacore.com>
1857 Javier Miranda <miranda@adacore.com>
1858 Gary Dismukes <dismukes@adacore.com>
1860 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1861 to make treatment of limited views uniform for all visible declarations
1862 in a limited_withed package.
1863 Improve warnings for in out parameters
1864 (Set_Related_Interaface/Related_Interface): Allow the use of this
1865 attribute with constants.
1866 (Write_Field26_Name): Handle attribute Related_Interface in constants.
1867 Warn on duplicate pragma Preelaborable_Initialialization
1869 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1870 generation of a freezing node to ensure proper management of null
1871 excluding access types in the backend.
1872 (Create_Extra_Formals): Test base type of the formal when checking for
1873 the need to add an extra accessibility-level formal. Pass the entity E
1874 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1875 originally being done in a couple of cases), to ensure that the
1876 Extra_Formals list gets set on the entity E when the first entity is
1878 (Conforming_Types): Add missing calls to Base_Type to the code that
1879 handles anonymous access types. This is required to handle the
1880 general case because Process_Formals builds internal subtype entities
1881 to handle null-excluding access types.
1882 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1883 functions that need it, even when not marked Requires_Overriding.
1884 Improve warnings for in out parameters
1885 (Analyze_Function_Return): Warn for disallowed null return
1886 Warn on return from procedure with unset out parameter
1887 Ensure consistent use of # in error messages
1888 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1889 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1890 the implicit conversion of the expression done for anonymous access
1891 types. This is required to generate the code of the null excluding
1892 check (if required).
1894 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1895 A formal parameter is never publicly referenceable outside of its body.
1896 (Check_References): For an unreferenced formal parameter in an accept
1897 statement, use the same warning circuitry as for subprogram formal
1899 (Warn_On_Unreferenced_Entity): New subprogram, taken from
1900 Output_Unreferenced_Messages, containing the part of that routine that
1901 is now reused for entry formals as described above.
1902 (Goto_Spec_Entity): New function
1903 (Check_References): Do not give IN OUT warning for dispatching operation
1904 Improve warnings for in out parameters
1905 (Test_Ref): Check that the entity is not undefinite before calling
1906 Scope_Within, in order to avoid infinite loops.
1907 Warn on return from procedure with unset out parameter
1908 Improved warnings for unused variables
1910 2007-08-14 Robert Dewar <dewar@adacore.com>
1911 Javier Miranda <miranda@adacore.com>
1912 Gary Dismukes <dismukes@adacore.com>
1914 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1915 (Expand_N_Attribute_Reference): Further unify the handling of the
1916 three forms of access attributes, using common code now for all three
1917 cases. Add a test for the case of applying an access attribute to
1918 an explicit dereference when the context is an access-to-interface
1919 type. In that case we need to apply the conversion to the prefix
1920 of the explicit dereference rather than the prefix of the attribute.
1921 (Attribute_Version, UET_Address): Set entity as internal to ensure
1922 proper dg output of implicit importation.
1923 (Expand_Access_To_Type): Removed.
1924 (Expand_N_Attribute_Reference): Merge the code from the three cases
1925 of access attributes, since the processing is largely identical for
1926 these cases. The substantive fix here is to process the case of a
1927 type name prefix (current instance case) before handling the case
1928 of interface prefixes.
1930 2007-08-14 Thomas Quinot <quinot@adacore.com>
1931 Ed Schonberg <schonberg@adacore.com>
1932 Javier Miranda <miranda@adacore.com>
1933 Robert Dewar <dewar@adacore.com>
1935 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1936 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1937 type that is an anonymous access to controlled object, establish
1938 an associated finalization chain to avoid corrupting the global
1939 finalization list when a dynamically allocated object designated
1940 by such a component is deallocated.
1941 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1942 functions that need it, even when not marked Requires_Overriding.
1943 (Initialize_Tag): Replace call to has_discriminants by call to
1944 Is_Variable_Size_Record in the circuitry that handles the
1945 initialization of secondary tags.
1946 (Is_Variable_Size_Record): New implementation.
1947 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1948 Suppress_Initialization pragma for a derived type.
1949 (Is_Variable_Size_Record): New subprogram.
1950 (Build_Offset_To_Top_Functions): New implementation that simplifies the
1951 initial version of this routine and also fixes problems causing
1952 incomplete initialization of the table of interfaces.
1953 (Build_Init_Procedure): Improve the generation of code to initialize the
1954 the tag components of secondary dispatch tables.
1955 (Init_Secondary_Tags): New implementation that simplifies the previous
1956 version of this routine.
1957 (Make_DT): Add parameter to indicate when type has been frozen by an
1958 object declaration, for diagnostic purposes.
1959 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1960 diagnose attemps to freeze a subprogram when some untagged type of its
1961 profile is a private type whose full view has not been analyzed yet.
1962 (Freeze_Array_Type): Generate init proc for packed array if either
1963 Initialize or Normalize_Scalars is set.
1964 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1965 constructing the new profile, copy the null_exclusion indicator for each
1966 parameter, to ensure full conformance of the new body with the spec.
1968 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1969 Create wrappers for constructor functions that need it, even when not
1970 marked Requires_Overriding.
1971 (Covers): Handle properly designated types of anonymous access types,
1972 whose non-limited views are themselves incomplete types.
1973 (Add_Entry): Use an entity to store the abstract operation which hides
1975 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1976 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1977 initialization aggregate.
1978 (Function_Interp_May_Be_Hidden): Rename to
1979 Function_Interp_Has_Abstract_Op.
1980 (Has_Compatible_Type): Remove machinery that skips interpretations if
1981 they are labeled as potentially hidden by an abstract operator.
1982 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
1983 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
1984 (Write_Overloads): Output the abstract operator if present.
1985 (Add_Entry): Before inserting a new entry into the interpretation table
1986 for a node, determine whether the entry will be disabled by an abstract
1988 (Binary_Op_Interp_May_Be_Hidden): New routine.
1989 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
1991 (Function_Interp_May_Be_Hidden): New routine.
1992 (Has_Compatible_Type): Do not consider interpretations hidden by
1993 abstract operators when trying to determine whether two types are
1995 (Has_Hidden_Interp): New routine.
1996 (Set_May_Be_Hidden_Interp): New routine.
1997 (Write_Overloads): Write the status of flag May_Be_Hidden.
1999 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2000 Javier Miranda <miranda@adacore.com>
2002 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
2003 types declared in the declarative part of a nested package body or in
2004 the proper body of a stub.
2005 (Set_All_DT_Position): Add missing check to avoid wrong assignation
2006 of the same dispatch table slot to renamed primitives.
2007 (Make_Select_Specific_Data_Table): Handle private types.
2008 (Tagged_Kind): Handle private types.
2009 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
2010 output of implicit importation and exportation.
2011 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
2012 first formal of the thunk is always associated with the controlling
2013 type. In addition perform the following code cleanup: remove formal
2014 Thunk_Alias which is no longer required, cleanup evaluation of the
2015 the controlling type, and update the documentation.
2016 Replace occurrence of Default_Prim_Op_Count by
2017 Max_Predef_Prims. Addition of compile-time check to verify
2018 that the value of Max_Predef_Prims is correct.
2019 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
2020 (Make_DT): Add parameter to indicate when type has been frozen by an
2021 object declaration, for diagnostic purposes.
2022 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
2023 construction of statically allocated dispatch tables.
2024 (Make_DT): In case of library-level tagged types export the declaration
2025 of the primary tag. Remove generation of tags (now done by Make_Tags).
2026 Additional modifications to handle non-static generation of dispatch
2027 tables. Take care of building tables for asynchronous interface types
2028 (Make_Tags): New subprogram that generates the entities associated with
2029 the primary and secondary tags of Typ and fills the contents of Access_
2030 Disp_Table. In case of library-level tagged types imports the forward
2031 declaration of the primary tag that will be declared later by Make_DT.
2032 (Expand_Interface_Conversion): In case of access types to interfaces
2033 replace an itype declaration by an explicit type declaration to avoid
2034 problems associated with the scope of such itype in transient blocks.
2036 2007-08-14 Robert Dewar <dewar@adacore.com>
2037 Ed Schonberg <schonberg@adacore.com>
2038 Javier Miranda <miranda@adacore.com>
2040 * exp_util.ads, exp_util.adb:
2041 This patch replaces a number of occurrences of explicit tests for N_Null
2042 with calls to Known_Null. This improves tracking of null values, since
2043 Known_Null also catches null constants, and variables currently known to
2044 be null, so we get better tracking.
2045 (Ensure_Defined): create an itype reference only in the scope of the
2047 (Side_Effect_Free): A selected component of an access type that
2048 denotes a component with a rep clause must be treated as not
2049 side-effect free, because if it is part of a linked structure its
2050 value may be affected by a renaming.
2051 (Expand_Subtype_From_Expr): For limited objects initialized with build
2052 in place function calls, do nothing; otherwise we prematurely introduce
2053 an N_Reference node in the expression initializing the object, which
2054 breaks the circuitry that detects and adds the additional arguments to
2055 the called function. Bug found working in the new patch for statically
2056 allocated dispatch tables.
2057 (Is_Library_Level_Tagged_Type): New subprogram.
2058 (Remove_Side_Effects): If the expression of an elementary type is an
2059 operator treat as a function call.
2060 (Make_Literal_Range): If the index type of the array is not integer, use
2061 attributes properly to compute the constraint on the resulting aggregate
2064 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
2065 class-wide type whose base type is an incomplete private type, leave
2066 class-wide type unfrozen so that freeze nodes can be generated
2067 properly at a later point.
2068 (Freeze_Entity, array case): Handle case of pragma Pack and component
2069 size attributre clause for same array.
2071 2007-08-14 Vincent Celier <celier@adacore.com>
2073 * prj.ads, prj.adb: Update Project Manager to new attribute names for
2075 Allow all valid declarations in configuration project files
2076 (Reset): Initialize all tables and hash tables in the project tree data
2077 Major update of the Project Manager and of the project aware tools,
2078 including gprmake, so that the same sources in the GNAT repository
2079 can be used by gprbuild.
2080 (Slash_Id): Change type to be Path_Name_Type
2081 (Slash): Return a Path_Name_Type instead of a File_Name_Type
2083 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
2085 Update Project Manager to new attribute names for ghprbuild
2086 Allow all valid declarations in configuration project files
2087 Major update of the Project Manager and of the project aware tools,
2088 including gprmake, so that the same sources in the GNAT repository
2089 can be used by gprbuild.
2092 Major update of the Project Manager and of the project aware tools,
2093 including gprmake, so that the same sources in the GNAT repository
2094 can be used by gprbuild.
2096 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2097 insensitive flag for attributes with optional index.
2098 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2099 array attribute, put the index in lower case.
2100 Update Project Manager to new attribute names for ghprbuild
2101 Allow all valid declarations in configuration project files
2102 Major update of the Project Manager and of the project aware tools,
2103 including gprmake, so that the same sources in the GNAT repository
2104 can be used by gprbuild.
2106 * prj-env.ads, prj-env.adb:
2107 Major update of the Project Manager and of the project aware tools,
2108 including gprmake, so that the same sources in the GNAT repository
2109 can be used by gprbuild.
2110 (Get_Reference): Change type of parameter Path to Path_Name_Type
2112 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
2113 removing '-' from the path to start with the first character of the
2115 Major update of the Project Manager and of the project aware tools,
2116 including gprmake, so that the same sources in the GNAT repository
2117 can be used by gprbuild.
2118 Major update of the Project Manager and of the project aware tools,
2119 including gprmake, so that the same sources in the GNAT repository
2120 can be used by gprbuild.
2122 * prj-nmsc.ads, prj-nmsc.adb:
2123 Update Project Manager to new attribute names for ghprbuild
2124 Allow all valid declarations in configuration project files
2125 (Search_Directories): Detect subunits that are specified with an
2126 attribute Body in package Naming. Do not replace a source/unit in the
2127 same project when the order of the source dirs are known. Detect
2128 duplicate sources/units in the same project when the order of the
2129 source dirs are not known.
2130 (Check_Ada_Name): Allow all identifiers that are not reserved words
2132 Major update of the Project Manager and of the project aware tools,
2133 including gprmake, so that the same sources in the GNAT repository
2134 can be used by gprbuild.
2135 (Look_For_Sources): If the list of sources is empty, set the object
2136 directory of non extending project to nil.
2137 Change type of path name variables to be Path_Name_Type
2138 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
2139 otherwise creating missing directories will fail.
2141 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
2142 prj-part.ads, prj-part.adb:
2143 Major update of the Project Manager and of the project aware tools,
2144 including gprmake, so that the same sources in the GNAT repository
2145 can be used by gprbuild.
2147 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2148 insensitive flag for attributes with optional index.
2149 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2150 array attribute, put the index in lower case.
2151 (Parse_Variable_Reference): Allow the current project name to be used in
2152 the prefix of an attribute reference.
2154 * prj-util.ads, prj-util.adb
2155 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
2156 defaulted to False. When True, always check against indexes in lower
2159 * snames.ads, snames.h, snames.adb:
2160 Update Project Manager to new attribute names for gprbuild
2161 Allow all valid declarations in configuration project files
2163 2007-08-14 Robert Dewar <dewar@adacore.com>
2164 Ed Schonberg <schonberg@adacore.com>
2166 * opt.ads: Warning for non-local exception propagation now off by
2168 New switch -gnatI to disable representation clauses
2169 Implement new pragma Implicit_Packing
2172 Warning for non-local exception propagation now off by default
2173 Add warning for unchecked conversion of pointers wi different
2175 New switch -gnatI to disable representation clauses
2177 * usage.adb: new switch -gnatyS
2179 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
2180 note that aggregates of anonymous array types are not flagged.
2181 -gnatwc now includes membership tests optimized away
2182 -gnatw.x warnings are now off by default
2183 Added conditional compilation Appendix
2184 Add documentation of -gnatI
2185 Add documentation for new -gnatyS style check
2186 Update documentation about SAL and auto-init on Windows.
2189 Add documentation for pragma Check_Name and 'Enabled attribute
2190 Document that Eliminate on dispatching operation is ignored
2191 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
2192 Document pragma Main
2193 Document pragma Implicit_Packing
2195 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
2196 different conventions
2197 New switch -gnatI to disable representation clauses
2199 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2200 recognized, report the invalid characters including "-gnat" instead of
2201 just the first character in the switch.
2202 New switch -gnatI to disable representation clauses
2203 Set Warn_On_Object_Renames_Function true for -gnatg
2205 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2206 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2207 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2208 to switch -aP (add directory to project search dir).
2210 * par-prag.adb: Implement new pragma Implicit_Packing
2212 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2213 type as having a non-standard representation, to force expansion on
2214 conversion to related types.
2215 (Analyze_Pragma): Warn on misspelled pragma
2216 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2217 Ensure consistent use of # in error messages
2218 Implement pragma Implicit_Packing
2220 2007-08-14 Olivier Hainque <hainque@adacore.com>
2221 Eric Botcazou <ebotcazou@adacore.com>
2223 * targtyps.c (get_target_maximum_default_alignment): New function.
2225 that the compiler might choose by default for a type or object.
2226 (get_target_default_allocator_alignment): New function. Alignment known
2227 to be honored by the target default allocator.
2228 (get_target_maximum_allowed_alignment): New function. Maximum alignment
2229 we might accept for any type or object on the target.
2230 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2232 * gigi.h (get_target_maximum_default_alignment): Declare new function.
2233 (get_target_default_allocator_alignment): Likewise.
2234 (get_target_maximum_allowed_alignment): Likewise.
2237 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2238 result of a function call, first try to use a stabilized reference for
2239 a constant renaming too.
2240 (validate_alignment): Use target_maximum_allowed_alignment instead of
2241 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2242 (gnat_to_gnu_entity): Use common nodes directly.
2243 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2244 alignment and size for the object.
2245 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2246 and N_Procedure_Call_Statement.
2247 (takes_address): Rename to lvalue_required_p, add third parameter
2248 'aliased' and adjust recursive calls.
2249 <N_Indexed_Component>: Update 'aliased' from the array type.
2250 <N_Selected_Component>: New case.
2251 <N_Object_Renaming_Declaration>: New Likewise.
2252 (Identifier_to_gnu): Adjust for above changes.
2253 (maybe_stabilize_reference) <CONST_DECL>: New case.
2255 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2256 between type variants.
2257 (build_simple_component_ref): Likewise.
2258 (build_call_alloc_dealloc): Use target_default_allocator_alignment
2259 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2260 aligning type circuitry for allocations from the default storage pool.
2261 (build_allocator): Likewise.
2262 (build_simple_component_ref): Manually fold the reference for a
2263 constructor if the record type contains a template.
2265 * utils.c (value_zerop): Delete.
2266 (gnat_init_decl_processing): Emit debug info for common types.
2267 (rest_of_record_type_compilation): If a union contains a field
2268 with a non-constant qualifier, treat it as variable-sized.
2269 (finish_record_type): Give the stub TYPE_DECL a name.
2270 (rest_of_record_type_compilation): Likewise.
2271 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
2272 types are equivalent array types.
2273 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2274 even if the type is not passed by reference.
2275 (static_ctors, static_dtors): Delete.
2276 (end_subprog_body): Do not record constructors and destructors.
2277 (build_global_cdtor): Delete.
2278 (gnat_write_global_declarations): Do not call build_global_cdtor.
2280 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
2281 -fRTS=rtp is specified.
2282 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2285 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2286 of the personality function with SJLJ exceptions.
2288 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2289 the name of the personality function with SJLJ exceptions.
2291 2007-08-14 Robert Dewar <dewar@adacore.com>
2292 Ed Schonberg <schonberg@adacore.com>
2294 * par.ads, par.adb: Improve handling of extra right parens.
2295 (Par): Remove flag From_Limited_With_Clause.
2297 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2298 Improve handling of extra right parens.
2300 2007-08-14 Robert Dewar <dewar@adacore.com>
2302 * par-tchk.adb (TF_Semicolon): Improve error recovery
2304 2007-08-14 Robert Dewar <dewar@adacore.com>
2305 Ed Schonberg <schonberg@adacore.com>
2307 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2308 enumeration type, mark all literals as referenced.
2309 (Eval_Attribute, case 'Image): If the argument is an enumeration
2310 literal and names are available, constant-fold but mark nevertheless as
2312 Clean up function names.
2313 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2315 (Requires_Simple_Name_Prefix): Removed.
2317 2007-08-14 Robert Dewar <dewar@adacore.com>
2318 Ed Schonberg <schonberg@adacore.com>
2320 * sem_ch11.adb: Improved warnings for unused variables
2322 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2323 is a synchronized interface, the derived type is limited.
2324 (Analyze_Object_Declaration): Mark the potential coextensions in the
2325 definition and expression of an object declaration node.
2326 (Build_Derived_Type): For the completion of a private type declaration
2327 with a derived type declaration, chain the parent type's representation
2328 items to the last representation item of the derived type (not the
2329 first one) if they are not present already.
2330 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2331 object declaration of forward references to tags.
2332 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2333 subprogram types can appear as access discriminants of synchronized
2335 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2336 given in prefixed form as a selected component.
2337 (Process_Discriminants): If not all discriminants have defaults, place
2338 error message on a default that is present.
2339 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2340 extend a synchronized tagged type.
2341 Improved warnings for unused variables
2342 (Is_Visible_Component): Fix a visibility hole on a component inherited
2343 by a private extension when parent is itself declared as a private
2344 extension, and the derivation is in a child unit.
2345 (Find_Hidden_Interface): Move spec from the package body.
2347 2007-08-14 Robert Dewar <dewar@adacore.com>
2348 Ed Schonberg <schonberg@adacore.com>
2350 * sem_ch5.adb: Improve warnings on redundant assignments
2352 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2354 (Is_Synchronized_Tagged_Type): New subprogram that returns true
2355 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2356 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2357 is set to False. Improves handling of Known_[Not_]Null.
2358 (Wrong_Type): Special case address arithmetic attempt
2359 (Collect_Abstract_Interfaces): Add new formal to allow collecting
2360 abstract interfaces just using the partial view of private types.
2361 (Has_Abstract_Interfaces): Add new formal to allow checking types
2362 covering interfaces using the partial view of private types.
2363 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2364 component still needs to be defined in this case, but is never
2365 initialized as VMs are using other dispatching mechanisms.
2366 (Abstract_Interface_List): For a protected type, use base type to get
2368 Improve warnings on redundant assignments
2369 (Is_Variable): Handle properly an implicit dereference of a prefixed
2371 (Build_Actual_Subtype): If this is an actual subtype for an
2372 unconstrained formal parameter, use the sloc of the body for the new
2373 declaration, to prevent anomalises in the debugger.
2375 2007-08-14 Robert Dewar <dewar@adacore.com>
2377 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2378 dispatching operation
2380 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2381 Gary Dismukes <dismukes@adacore.com>
2384 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2385 expanded aggregate code before allocator, and ahead of declaration for
2386 temporary, to prevent access before elaboration when the allocator is
2387 an actual for an access parameter.
2388 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2389 the TSD and the table of interfaces.
2390 (Convert_To_Assignments): Augment the test for delaying aggregate
2391 expansion for limited return statements to include the case of extended
2392 returns, to prevent creation of an unwanted transient scope.
2393 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2394 (Expand_Array_Aggregate): Handle aggregates associated with
2395 statically allocated dispatch tables.
2396 (Expand_Record_Aggregate): Handle aggregates associated with
2397 statically allocated dispatch tables.
2398 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2399 of anonymous access type.
2401 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2403 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2404 is a variable that renames a slice, use the variable itself in the
2405 expannsion when the renamed expression itself may be modified between
2406 the declaration of the renaming and the array assignment.
2408 2007-08-14 Jerome Guitton <guitton@adacore.com>
2410 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2411 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
2412 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2413 New functions; dummy implementations.
2415 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2416 functions, used to implement the multi-tasks mode routines on VxWorks.
2418 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2420 binding to the VxWorks routines which have changed between VxWorks 5
2422 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2423 which are not callable from a RTP.
2425 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2426 implemented for the multi-tasks mode on VxWorks 5 and 6.
2428 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2430 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2433 2007-08-14 Vincent Celier <celier@adacore.com>
2435 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
2436 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2437 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
2438 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2439 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2440 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2441 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2443 (Major_Id_Name): New function.
2444 mlib-tgt.ads/mlib.tgt.adb:
2445 (Library_Major_Minor_Id_Supported): New function, default returns True
2446 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2447 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2448 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2449 Implementation of Library_Major_Minor_Id_Supported returns False
2451 (Clean_Library_Directory): If major/minor ids are supported, clean all
2453 Major update of the Project Manager and of the project aware tools,
2454 including gprmake, so that the same sources in the GNAT repository
2455 can be used by gprbuild.
2457 2007-08-14 Olivier Hainque <hainque@adacore.com>
2459 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2460 (GCC_ZCX_Support): Switch to True.
2462 * s-intman-solaris.adb (Notify_Exception): Call
2463 Adjust_Context_For_Raise before raising, as expected for signal
2464 handlers in general.
2466 * s-intman-posix.adb (Notify_Exception): Remove declaration of
2467 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2468 to other implementation bodies.
2470 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2471 be visible by multiple implementation bodies.
2473 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2474 only for conditions coming from hardware.
2475 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2476 adjustments to signal context prior to exception raise from signal
2478 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2480 Solaris section: (__gnat_adjust_context_for_raise): New function.
2481 Implementation of the machine context adjustments to perform prior to
2482 raise from a signal handler. Version for both sparc and x86.
2483 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2484 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2485 prior to raising as expected for any handler, before possible nested
2486 faults to make sure all the contexts in a chain have been adjusted by
2487 the time we propagate.
2489 2007-08-14 Pascal Obry <obry@adacore.com>
2491 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2492 (SYSTEM_INFO): New record.
2493 (SetThreadIdealProcessor): New imported routine needed for supporting
2494 task_info pragma on Windows.
2496 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2497 info can be applied to the current host.
2498 (Create_Task): Set the ideal processor if information is present.
2500 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2501 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2503 2007-08-14 Olivier Hainque <hainque@adacore.com>
2505 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2506 stack size and initial stack pointer value for a given task.
2507 (Enter_Task): Get the stack attributes of the task we are entering and
2508 let the stack checking engine know about them.
2510 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2511 Let the stack-checking engine know about the initial sp value and stack
2512 size associated with the current task.
2513 (Set_Stack_Info): If a stack base has been notified for the current
2514 task, honor it. Fallback to the previous less accurate method otherwise.
2516 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2518 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2520 * sem_ch10.adb: Create a limited view of an incomplete type, to make
2521 treatment of limited views uniform for all visible declarations in a
2522 limited_withed package.
2523 Set flag indicating that a subprogram body for a child unit has a
2525 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2526 separate declaration, remove the unit name from visibility after
2527 compilation, so that environment is clean for subsequent compilations.
2528 (Install_Limited_Context_Clauses): Do not install a
2529 limited_private_with_clause unless the current unit is a body or a
2531 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2532 in the same fashion.
2533 (Install_Limited_Withed_Unit): Do not install a limited with clause if
2534 it applies to the declaration of the current package body.
2535 (Remove_Private_With_Clauses): If there is a regular with_clause for
2536 the unit, delete Private_With_Clause from context, to prevent improper
2537 hiding when processing subsequent nested packages and instantiations.
2539 2007-08-14 Jose Ruiz <ruiz@adacore.com>
2541 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2542 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2543 representing absolute path names.
2544 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2546 * cstreams.c (__gnat_full_name for VxWorks): Use
2547 __gnat_is_absolute_path to detect whether we need to add the current
2548 directory to normalize the path.
2550 2007-08-14 Javier Miranda <miranda@adacore.com>
2553 a-tags.adb (Displace): Associate a message with the raised CE
2555 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2556 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2557 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2559 (Default_Prim_Op_Count): Removed.
2560 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2561 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2562 Remove pragma Inline_Always.
2564 * rtsfind.ads (Default_Prim_Op_Count): Removed
2565 (Max_Predef_Prims): New entity
2566 (RE_Expanded_Name): Removed
2567 (RE_HT_Link): Removed
2568 (RE_Iface_Tag): Remmoved
2569 (RE_Ifaces_Table): Removed
2570 (RE_Interfaces_Array): Removed
2571 (RE_Interface_Data_Element): Removed
2572 (RE_Nb_Ifaces): Removed
2573 (RE_RC_Offset): Removed
2574 (RE_Static_Offset_To_Top): Removed
2576 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2578 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2579 Prim_Op_Count by Max_Predef_Prims.
2581 2007-08-14 Thomas Quinot <quinot@adacore.com>
2582 Vincent Celier <celier@adacore.com>
2584 * binde.adb (Elab_All_Links): Remove unnecessary call to
2585 Generic_Separately_Compiled (if a unit satisfies this predicate, there
2586 won't be an associated Afile).
2587 (Elab_All_Links): Fail if a referenced unit cannot be found
2590 Fix comments in bindgen regarding consistency checks done in Bcheck:
2591 the checks are made across units within a partition, not across several
2593 Fix generation of C binder file for VxWorks.
2595 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2596 Generic_May_Lack_ALI, more descriptive of the current use of the
2597 predicate, and update documentation.
2599 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2600 reorganization and documentation update for the case of predefined
2601 library generics (for which we do not reference an Afile).
2603 2007-08-14 Robert Dewar <dewar@adacore.com>
2605 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2606 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2607 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2608 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2609 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2610 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2611 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2612 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2613 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2614 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2615 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2616 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2617 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2618 g-altcon.adb: Minor reformatting
2620 ada-tree.h: Delete empty line.
2622 ali.ads: Minor reformatting
2623 Clarification of comments.
2624 Minor spelling correction
2626 * exp_dbug.adb: Add Warnings Off to suppress new warning
2628 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2631 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2634 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2636 * a-textio.ads: Reorder the standard input/output/error declarations
2639 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2641 * par-ch2.adb: Recognize RM specially in errout
2642 Change 'R'M to RM in all error messages
2644 * scng.adb: Recognize RM specially in errout
2646 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2647 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2649 * s-direio.adb: Add missing routine header box.
2651 * sem_attr.ads: Add ??? comments
2653 * sem_eval.adb: Recognize RM specially in errout
2654 Change 'R'M to RM in all error messages
2656 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2658 * s-tasinf.ads: Fix minor comment typo.
2660 * a-cihama.adb: Minor comment addition
2662 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2665 * s-tasinf-tru64.ads: Fix minor comment typo.
2667 * itypes.ads: Comment update.
2669 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2672 * argv.c: Added protection against null gnat_argv and gnat_envp.
2674 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2675 warning message when Tolerate_Consistency_Errors is True.
2677 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2678 Any_Id, as this subprogram is only applicable to *type* entities (it
2679 sets RM_Size). Instead initialize just Esize and Alignment.
2681 2007-08-14 Bob Duff <duff@adacore.com>
2683 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
2684 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
2685 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
2686 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2687 a-coorse.ads (Next): Applied pragma Inline.
2688 Make all Containers packages Remote_Types (unless they are already
2690 (Previous): applied pragma Inline
2691 (Elements_Type): is now a record instead of an array
2693 2007-08-14 Thomas Quinot <quinot@adacore.com>
2695 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2697 (Set_Item): When the new item is an element of the currently allocated
2698 table passed by reference, save a copy on the stack if we're going
2699 to reallocate. Also, in Table.Set_Item, make sure we test the proper
2700 variable to determine whether to call Set_Last.
2702 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2703 symbols-vms.adb, symbols-processing-vms-alpha.adb,
2704 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2705 some occurrences of the pattern
2707 T.Table (T.Last) := Value;
2708 with a cleaner call to
2711 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2712 Gary Dismukes <dismukes@adacore.com>
2713 Thomas Quinot <quinot@adacore.com>
2715 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2716 derived type with interface progenitors use the analyzed formal as the
2717 parent of the actual, to create renamings for all the inherited
2718 operations in Derive_Subprograms.
2719 (Collect_Previous_Instances): new procedure within of
2720 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2721 unit being loaded, to ensure that the generation of global symbols is
2722 consistent in different compilation modes.
2723 (Is_Tagged_Ancestor): New function testing the ancestor relation that
2724 takes progenitor types into account.
2725 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2726 traversing over the primitives of the formal and actual types to locate
2727 any abstract subprograms of the actual type that correspond to a
2728 nonabstract subprogram of the formal type's ancestor type(s), and issue
2729 an error if such is found.
2730 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2731 Instantiate_Package_Body, Instantiate_Subprogram_Body):
2732 Remove bogus guard around calls to Inherit_Context.
2733 (Reset_Entity): If the entity is the selector of a selected component
2734 that denotes a named number, propagate constant-folding to the generic
2735 template only if the named number is global to the generic unit.
2736 (Set_Instance_Env): Only reset the compilation switches when compiling
2737 a predefined or internal unit.
2739 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2741 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2742 parameter to determine whether operation applies to the prefix.
2743 (Complete_Object_Operation): If actual has an access type and
2744 controlling formal is not an in_parameter, reject the actual if it is
2745 an access_to_constant type.
2746 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2747 type, the candidate operations are found in the scope of declaration of
2748 the type, because the type has no primitive subprograms.
2749 (Analyze_Selected_Component): If prefix is class-wide, and root type is
2750 a private extension, only examine visible components before trying to
2751 analyze as a prefixed call.
2752 Change Entity_List to Type_To_Use, for better readability.
2753 (Has_Fixed_Op): Use base type when checking whether the type of an
2754 operator has a user-defined multiplication/division
2755 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2756 user-defined operators are available for fixed-point types.
2758 2007-08-14 Thomas Quinot <quinot@adacore.com>
2759 Ed Schonberg <schonberg@adacore.com>
2761 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2762 formal At_Any_Place indicating, when True, that we want to test for
2763 availability of the stream attribute at any place (as opposed to the
2764 current visibility context only).
2765 (Missing_Read_Write_Attributes): A stream attribute is missing for the
2766 purpose of enforcing E.2.2(8) only if it is not available at any place.
2767 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2768 when checking the legality of an extension aggregate in a preelaborable
2769 package. Treat the literal null as a valid default expression in a
2770 component declaration for a type with preelaborable initialization.
2771 A limited interface is a legal progenitor for the designated type of a
2772 remote access to class-wide type.
2774 2007-08-14 Thomas Quinot <quinot@adacore.com>
2775 Ed Schonberg <schonberg@adacore.com>
2777 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2778 reference): Use correct entity as denoted entity for the selector of
2780 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2781 setting the Referenced_As_LHS flag for entities that are implicitly
2783 (Find_Type): If the type is an internally generated incomplete type,
2784 mark the full view as referenced, to prevent spurious warnings.
2785 (Find_Selected_Component, Has_Components): Handle properly non-limited
2786 views that are themselves incomplete types.
2787 Handle interfaces visible through limited-with clauses.
2788 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2789 subprogram generic actual for which we have generated a renaming.
2790 Warn when the renaming introduces a homonym of
2791 the renamed entity, and the renamed entity is directly visible.
2793 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2794 Hristian Kirtchev <kirtchev@adacore.com>
2796 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2797 appear in the subtree to the current allocator if it is not a static
2799 (Resolve_Allocator): Perform cleanup if resolution has determined that
2800 the allocator is not a coextension.
2801 (Resolve): Skip an interpretation hidden by an abstract operator only
2802 when the type of the interpretation matches that of the context.
2803 (Resolve): When looping through all possible interpretations of a node,
2804 do not consider those that are hidden by abstract operators.
2805 (Resolve_Actuals): When verifying that an access to class-wide object
2806 is an actual for a controlling formal, ignore anonymous access to
2807 subprograms whose return type is an access to class_wide type.
2808 (Resolve_Slice): If the prefix of the slice is a selected component
2809 whose type depends on discriminants, build its actual subtype before
2810 applying range checks on the bounds of the slice.
2811 (Valid_Conversion): In an instance or inlined body, compare root types,
2812 to prevent anomalies between private and public views.
2813 (Resolve): Improve error message for ambiguous fixed multiplication
2814 expressions that involve universal_fixed multiplying operations.
2816 2007-08-14 Javier Miranda <miranda@adacore.com>
2817 Hristian Kirtchev <kirtchev@adacore.com>
2819 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2820 location to allow the correct generation of errors in case of
2821 restrictions applied to the expanded code.
2822 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2823 function if the condition does not reference them.
2824 (Expand_Entry_Body_Declarations): Mark the index constant as having a
2827 2007-08-14 Thomas Quinot <quinot@adacore.com>
2829 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2830 typecode parameters for a union (in a variant record), remove
2831 extraneous layer of Any wrapping for member label.
2832 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2833 elabration statements, register the package with the name server
2834 at the beginning, not at the end, of the elaboration statements so
2835 that they can create remote access to subprogram values that designate
2836 remote subprograms from the package.
2838 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
2840 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2841 values to compute the number of seconds since the Unix Epoc in order to
2842 account for Daylight Savings Time. Perform special processing for dates
2843 that are earlier than the Unix Epoc to obtain a negative number.
2845 2007-08-14 Emmanuel Briot <briot@adacore.com>
2847 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2850 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
2852 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2853 binder-generated file is not in Ada.
2854 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2855 recorded in the ALI file.
2856 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2858 2007-08-14 Vincent Celier <celier@adacore.com>
2860 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2861 (Output_Source): Do nothing if parameter is No_Sdep_Id
2863 * make.adb (Gnatmake): Do not rebuild an archive simply because a
2864 shared library it imports has a later time stamp.
2865 (Check): Resolve the symbolic links in the path name of the object
2867 Check that the ALI file is in the correct object directory
2868 Check if a file name does not correspond to the mapping of units
2870 (Display_Version): New procedure
2871 (Initialize): Process switches --version and --help
2872 Use type Path_Name_Type for path name
2874 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
2876 * impunit.adb: Re-organize System.Random_Numbers and
2877 GNAT.Random_Numbers and add to builds.
2879 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2881 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2883 * a-assert.ads, a-assert.adb: New files.
2885 2007-08-14 Gary Dismukes <dismukes@adacore.com>
2887 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2888 if AAMP_On_Target is True, then the size of the type encompasses two
2889 addresses (a static link and a subprogram address), except in the case
2890 of library-level access types.
2892 2007-08-14 Vincent Celier <celier@adacore.com>
2894 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2896 (Write_Eol_Keep_Blanks): New procedure to write a line, including
2897 possible trailing spaces.
2898 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2900 2007-08-14 Javier Miranda <miranda@adacore.com>
2902 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2903 null-excluding access types.
2905 2007-08-14 Javier Miranda <miranda@adacore.com>
2907 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2908 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2909 of private types add missing check on matching interfaces in the
2910 partial and full declarations.
2911 (Analyze_Protected_Type): Code cleanup.
2912 (Analyze_Task_Type): Code cleanup.
2914 2007-08-14 Javier Miranda <miranda@adacore.com>
2916 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2917 generated interface thunk.
2919 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2921 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2922 obsolescent warning on application of 'Class to an incomplete type.
2924 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2925 prevent obsolescent warning on application of 'Class to an incomplete
2928 2007-08-14 Pascal Obry <obry@adacore.com>
2930 * s-fileio.adb (Is_Open): Add check for usability of the underlying
2933 2007-08-14 Cyrille Comar <comar@adacore.com>
2935 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2936 since it is potentially used in cases implying double finalization of
2939 2007-08-14 Jose Ruiz <ruiz@adacore.com>
2941 * s-tasini.adb (Get_Stack_Info): Move this function to
2942 System.Soft_Links.Tasking because it is common to the full and the
2943 restricted run times.
2944 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2945 in SSL.Tasking.Init_Tasking_Soft_Links.
2947 * s-solita.adb (Get_Stack_Info): Function moved from
2948 System.Tasking.Initialization because it is common to the full and the
2949 restricted run times.
2950 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2952 2007-08-14 Arnaud Charlet <charlet@adacore.com>
2954 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2955 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2956 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2959 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2962 2007-08-14 Gary Dismukes <dismukes@adacore.com>
2964 * s-veboop.adb (SU): New named number initialized to
2965 System.Storage_Unit.
2966 (True_Val): The initialization expression is revised to use SU (=
2967 Storage_Unit) rather than assuming 8 for the component size of an
2968 unpacked Boolean array.
2970 2007-08-14 Tristan Gingold <gingold@adacore.com>
2972 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2974 * tb-ivms.c: New file.
2976 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2978 2007-08-14 Geert Bosch <bosch@adacore.com>
2980 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2981 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2982 Add required linker pragmas for automatically linking with the gnalasup
2983 linear algebra support library, and the systems math library.
2984 Rename cdot to cdotu and zdot to zdotu.
2985 Update header comment to describe purpose of package.
2987 2007-08-14 Thomas Quinot <quinot@adacore.com>
2989 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
2990 an explicitly specified Associated_Final_Chain, use that list.
2991 (Expand_N_Package_Body): Build dispatch tables of library level tagged
2993 (Expand_N_Package_Declaration): Build dispatch tables of library level
2994 tagged types. Minor code cleanup.
2996 2007-08-14 Vincent Celier <celier@adacore.com>
2998 * gnatchop.adb (Terminate_Program): Remove exception and use
2999 Types.Terminate_Program instead.
3001 * osint.ads, osint.adb (Current_Exit_Status): New global variable
3002 (Find_Program_Name): Added protection against empty name.
3003 (OS_Exit_Through_Exception): New procedure
3005 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
3006 (OS_Exit_Default): New procedure that contains the previous
3007 implementation of procedure OS_Exit.
3008 (Final_Value): Remove obsolete Interix stuff.
3010 2007-08-14 Thomas Quinot <quinot@adacore.com>
3012 * g-socket.ads: Reorganize example code so that it also works on
3015 2007-08-14 Tristan Gingold <gingold@adacore.com>
3017 * g-trasym.ads: AIX now supports symbolic backtraces.
3019 2007-08-14 Ed Schonberg <schonberg@adacore.com>
3021 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
3022 units being loaded to detect circularities. A circularity may be
3023 present even if the current chain of pending units to load starts from
3024 a limited_with_clause.
3026 * lib-load.ads: Change profile of Load_Unit to use a with_clause
3027 rather than a boolean flag, in order to detect circularities in
3030 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
3031 than propagating the From_Limited_With flag, in order to handle
3032 properly circularities involving with_clauses.
3034 2007-08-14 Nicolas Setton <setton@adacore.com>
3036 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
3039 2007-08-14 Arnaud Charlet <charlet@adacore.com>
3041 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
3042 to build for libgnala.
3043 libgnat: Add rules to build libgnala.a
3044 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
3045 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
3046 Add s-osinte-vxworks-kernel.adb to the target pairs of the
3047 kernel run-time lib for VxWorks 6, which would provide a different
3048 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
3049 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
3050 running ZCX by default.
3051 Add g-sttsne-locking to LynxOS version.
3052 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
3053 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
3055 * system-darwin-x86.ads: New file.
3057 * Make-lang.in: Delete files before copying onto them, so if they are
3058 read-only, the copy won't fail.
3061 2007-08-14 Pascal Obry <obry@adacore.com>
3063 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
3066 2007-08-14 Vincent Celier <celier@adacore.com>
3068 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
3069 (Gcc): Initialize Gcc_Name at the first call
3071 2007-08-14 Ed Schonberg <schonberg@adacore.com>
3073 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
3074 with_clauses of the enclosing unit when analyzing the package
3075 specification of a nested instance.
3077 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
3079 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
3080 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
3081 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
3082 layout of N_Allocator.
3084 2007-08-14 Thomas Quinot <quinot@adacore.com>
3086 * rtsfind.adb (Check_RPC): Add PCS version check.
3088 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
3089 (Gnat_Free_Software): New function.
3091 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
3092 the PCS_Version value from s-parint, used to check that it is consistent
3093 with what exp_dist expects.
3095 * s-parint.ads (PCS_Version): New entity for checking consistency
3096 between exp_dist and PCS.
3098 * gen-soccon.c: (SO_REUSEPORT): New constant.
3100 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
3102 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
3103 variable Sub_Second to Duration in order to accomodate a larger range
3104 of arithmetic operations.
3106 2007-08-14 Bob Duff <duff@adacore.com>
3108 * g-sttsne-locking.ads: Move comments from spec to body.
3109 * g-sttsne-locking.adb: Move comments from spec to body.
3110 * g-sttsne-vxworks.ads: Removed.
3111 * g-sttsne-vxworks.adb: Removed.
3113 2007-08-11 Ian Lance Taylor <iant@google.com>
3115 * misc.c (gnat_get_alias_set): Change return type to
3118 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3120 * decl.c, utils2.c: Fix whitespace in last change.
3122 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3124 * decl.c (compare_field_bitpos): Constify.
3125 * utils2.c (compare_elmt_bitpos): Likewise.
3127 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
3129 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
3130 anonymous access type.
3131 (pthread_sigmask): Now take an access sigset_t.
3133 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
3135 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
3137 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
3139 PR tree-optimization/25737
3140 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
3142 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3144 * trans.c (Attribute_to_gnu): When subtracting an
3145 offset from a pointer, use POINTER_PLUS_EXPR with
3146 NEGATE_EXPR instead of MINUS_EXPR.
3147 (gnat_to_gnu): Likewise.
3148 * utils.c (convert): When converting between
3149 thin pointers, use POINTER_PLUS_EXPR and sizetype
3151 * utils2.c (known_alignment): POINTER_PLUS_EXPR
3152 have the same semantics as PLUS_EXPR for alignment.
3153 (build_binary_op): Add support for the semantics of
3154 POINTER_PLUS_EXPR's operands.
3155 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
3157 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
3159 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
3160 of get_signed_or_unsigned_type.
3161 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
3163 2007-06-11 Bob Duff <duff@adacore.com>
3164 Thomas Quinot <quinot@adacore.com>
3166 * g-stsifd-sockets.adb (Create): Work around strange behavior of
3167 'bind' on windows that causes 'connect' to fail intermittently, by
3168 retrying the 'bind'.
3169 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3171 2007-06-10 Duncan Sands <baldrick@free.fr>
3173 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
3174 than to void, for the fields when making a new fat pointer type.
3175 (gnat_substitute_in_type): Now substitute_in_type.
3176 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
3177 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
3178 * utils.c (update_pointer_to): Update fat pointers by updating the
3179 dummy node pointers used for the fields.
3181 2007-06-06 Thomas Quinot <quinot@adacore.com>
3182 Bob Duff <duff@adacore.com>
3184 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
3185 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
3186 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
3187 constant Thread_Blocking_IO, always True by default, set False
3188 on a per-runtime basis.
3189 (Need_Netdb_Buffer): New constant.
3191 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
3192 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
3195 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
3196 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
3197 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3198 child package Task_Safe_NetDB
3199 (Host_Error_Messages): Add stub body.
3200 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3202 * g-soccon-mingw.ads: Add Windows-specific constants.
3203 (Need_Netdb_Buffer): New constant.
3204 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3205 wrapper and import inet_addr(3) from the standard sockets library
3207 (In_Addr): Add alignment clause.
3208 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3210 2007-06-06 Robert Dewar <dewar@adacore.com>
3212 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3213 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3214 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3215 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3216 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3217 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3218 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3219 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3220 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3221 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3222 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3223 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3224 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3225 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3226 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3227 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3228 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3229 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3230 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3231 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3232 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3233 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3234 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3235 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3236 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3237 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3238 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3239 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3240 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3241 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3242 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3243 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3244 Unchecked_* by Ada.Unchecked_*
3246 2007-06-06 Robert Dewar <dewar@adacore.com>
3248 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3249 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3250 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3251 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3252 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3253 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3255 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3256 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3257 s-tasloc.adb, s-tasloc.ads: New files.
3259 2007-06-06 Bob Duff <duff@adacore.com>
3262 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3263 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3264 (Send_Signal, Close): Raise Invalid_Process if the process id is
3266 (Pattern_Matcher_Access): Is now a general access type to be able to
3269 2007-06-06 Thomas Quinot <quinot@adacore.com>
3270 Arnaud Charlet <charlet@adacore.com>
3272 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3273 (SIGEMT is now used instead of SIGTERM on AIX).