1 2007-12-05 Samuel Tardieu <sam@rfc1149.net>
4 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
5 parameters of an entry call.
7 2007-12-03 Robert Dewar <dewar@adacore.com>
8 Samuel Tardieu <sam@rfc1149.net>
11 * sem_util.adb (Safe_To_Capture_Value): Do not capture values
12 of variables declared in a library-level package.
14 2007-12-02 Samuel Tardieu <sam@rfc1149.net>
16 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead
17 of Empty_String'Unchecked_Access.
19 * Makefile.in: Add support for sh4-linux.
21 * system-linux-sh4.ads: New file.
23 2007-12-01 Kostik Belousov <kostikbel@ukr.net>
26 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
27 and its argument must not be free()ed.
29 2007-11-29 Eric Botcazou <ebotcazou@adacore.com>
31 * decl.c (make_packable_type): Retrieve the real name of the type.
32 (maybe_pad_type): Simplify similar code.
34 2007-11-28 Samuel Tardieu <sam@rfc1149.net>
37 * par-ch3.adb (P_Variant_Part): Signal an error when anything other
38 than an identifier is used after "case" in a variant_part.
41 * par-ch4.adb (Is_Parameterless_Attribute): New map.
42 (P_Name, Scan_Apostrophe block): Parse left parenthesis following
43 attribute name or not depending on the new map.
45 * sem-attr.adb (Analyze_Attribute): Parameterless attributes
46 returning a string or a type will not be called with improper
49 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads.
51 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads.
54 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause):
55 Signal an error when attribute argument is a fixed-point value of
59 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on
60 a derived ordinary fixed point type.
62 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute
63 RM_Size when a Small clause is found.
65 2007-11-26 Andreas Krebbel <krebbel1@de.ibm.com>
68 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu):
69 Pass 'false' for the new allocate_struct_function parameter.
70 * utils.c (build_function_stub): Likewise.
72 2007-11-25 Richard Guenther <rguenther@suse.de>
74 utils.c (gnat_pushlevel): Use BLOCK_CHAIN.
75 (gnat_poplevel): Likewise.
77 2007-11-25 Eric Botcazou <ebotcazou@adacore.com>
79 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has
80 strict alignment, no alignment clause and a known static size, cap
81 the type alignment to the greatest power of 2 factor of the size.
82 (gnat_to_gnu_field): If the field has a component clause, is aliased
83 or of a type with strict alignment, require that its size be equal to
85 (validate_size): Use the type size as the minimum size for a type with
88 2007-11-23 Samuel Tardieu <sam@rfc1149.net>
90 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb,
91 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
92 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb:
93 Use 'Access instead of 'Unchecked_Access in second and third
94 arguments of pthread_sigmask.
96 2007-11-23 Eric Botcazou <ebotcazou@adacore.com>
98 * decl.c (ceil_alignment): New function.
99 (gnat_to_gnu_entity): Use it to set the alignment on atomic types.
100 (make_packable_type): Likewise.
102 2007-11-22 Olivier Hainque <hainque@adacore.com>
104 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines
105 to fit in 80 columns.
107 2007-11-21 Aurelien Jarno <aurelien@aurel32.net>
109 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function.
110 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB.
112 2007-11-19 Eric Botcazou <ebotcazou@adacore.com>
115 * misc.c (gnat_adjust_rli): Delete.
116 (gnat_init): Do not initialize the translation code here.
117 Do not call set_lang_adjust_rli.
118 * trans.c (init_code_table): Make static.
119 (gnat_init_stmt_group): Delete.
120 (gigi): Initialize the translation code entirely here.
121 Emit debug info for the common types here instead of...
122 * utils.c (gnat_init_decl_processing): ...here.
123 * gigi.h (init_code_table): Delete.
124 (gnat_init_stmt_group): Likewise.
126 2007-11-16 Olivier Hainque <hainque@adacore.com>
128 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code
129 retrieving an allocator return value from a super-aligned address from
131 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't
132 expect a super-aligned address for a fat or thin pointer.
134 2007-11-14 Eric Botcazou <ebotcazou@adacore.com>
136 * trans.c (call_to_gnu): Always set the source location on the call
137 expression. If the function returns-by-target, also set it on the
140 2007-11-14 Samuel Tardieu <sam@rfc1149.net>
142 * adaint.c, init.c, initialize.c, link.c: Remove system-specific
143 sections of non-supported Interix target.
145 * s-osinte-interix.ads: Removed.
147 * i-cstrin.ads (chars_ptr): Make it a C convention type.
149 2007-11-13 Samuel Tardieu <sam@rfc1149.net>
151 * a-tasatt.adb: Add a comment at the beginning of the package
152 explaining why in general 'Unchecked_Access must be used instead
155 * sem_prag.adb (Process_Convention): Move the test for the
156 entity on which the Convention pragma applies down to also
157 forbid pragma Convention on enumeration literals reached
160 2007-11-10 Samuel Tardieu <sam@rfc1149.net>
162 * a-tasatt.adb: Revert previous change for this file as it will
163 generate an error when this package is instantiated from a
166 2007-11-07 Samuel Tardieu <sam@rfc1149.net>
168 * a-tasatt.adb: Type Wrapper should be declared in comment instead
169 of already declared type Node_Access.
170 Use 'Access instead of 'Unchecked_Access when applicable. Local
171 lifetime is the one of the package.
172 (Set_Value): W is allocated on the heap.
174 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
176 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
178 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
181 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
183 (elaboration code): Timer_Queue lifetime is the one of the
186 * tracebak.c (i386 alternative): Remove useless comparaison
187 which is always false; LOWEST_ADDRESS is 0 and is never greater
188 than an unsigned integer.
190 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical
191 embedded check for "Ada_Version >= Ada_05".
193 2007-11-07 Olivier Hainque <hainque@adacore.com>
195 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we
196 craft and expand comment.
198 2007-11-01 Eric Botcazou <ebotcazou@adacore.com>
200 * lang-specs.h: Move translation of -fRTS= after -gnatez switch.
202 2007-10-23 Eric Botcazou <ebotcazou@adacore.com>
204 * misc.c (gnat_handle_option): Replace call to abort with
205 call to gcc_unreachable.
206 (gnat_init): Likewise.
207 (gnat_expand_expr): Likewise.
208 (fp_prec_to_size): Likewise.
209 (fp_size_to_prec): Likewise.
211 2007-10-23 Richard Guenther <rguenther@suse.de>
214 * tracebak.c: #undef abort after including system.h.
216 2007-10-20 Danny Smith <dannysmith@users.sourceforge.net>
218 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb,
219 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads
221 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets.
223 2007-10-15 Eric Botcazou <ebotcazou@adacore.com>
225 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter.
226 Set the protection status of the guard page based on the value of On.
228 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter.
230 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone.
231 (Exit_Task): Pass False to Hide_Yellow_Zone.
233 2007-10-15 Robert Dewar <dewar@adacore.com>
235 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
236 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb,
237 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb,
238 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb,
239 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb,
240 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb,
241 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb,
242 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb,
243 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb,
244 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads,
245 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb,
246 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb,
247 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb,
248 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb,
249 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb,
250 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb:
252 Add Unreferenced and Warnings (Off) pragmas for cases of
253 variables modified calls where they are IN OUT or OUT parameters and
254 the resulting values are not subsequently referenced. In a few cases,
255 we also remove redundant code found by the new warnings.
257 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads,
258 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb,
259 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb,
260 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new
261 warning controlled by -gnatw.o that warns on cases of out parameter
262 values being ignored.
264 2007-10-15 Geert Bosch <bosch@adacore.com>
266 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus.
268 * expect.c: Initial port to arm-mentor-nucleus.
269 Use kill for __gnat_kill() on VMS.
271 2007-10-15 Emmanuel Briot <briot@adacore.com>
273 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default
275 (Xref_Record): Change type for Line, since in the case of a reference to
276 a predefined entity (as happens for array index types), the line is set
278 Add support for parsing multiple array index types info, or
279 multiple inherited interfaces info. This information cannot be stored
280 in Xref_Entity_Record, which only supports a single instance of Tref_*,
281 and is therefore stored in the list of references instead. It has a
282 special treatement later on in tools that use this information.
284 2007-10-15 Tristan Gingold <gingold@adacore.com>
286 * debug.adb: Document use of -gnatd.a and -gnatd.I
288 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization.
290 2007-10-15 Javier Miranda <miranda@adacore.com>
292 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access,
293 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes
294 care of access to class-wide interface types plus removal of bizarre
295 conversion of tagged object to access type (reported by Gary
296 Dismukes). After this patch there is no need to perform any
297 additional management on these nodes in Expand_Interface_Actuals.
299 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code
300 that handles use of 'Access and 'Unchecked_Access applied to
301 actuals covering interface types. Such code is now
302 centralized in Expand_N_Attribute_Reference.
304 2007-10-15 Ed Schonberg <schonberg@adacore.com>
306 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization
307 of tagged types whose ultimate ancestor is a CPP type.
308 (Freeze_Array_Type): For a packed array type, generate an initialization
309 procedure if the type is public, to handle properly a client that
310 specifies Normalize_Scalars.
312 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
314 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs
315 inside a generic body, retrieve the full view of the entry family
316 discrete subtype if available.
318 2007-10-15 Thomas Quinot <quinot@adacore.com>
320 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not
321 attempt to generate stubs for hidden primitive operations.
323 2007-10-15 Vincent Celier <celier@adacore.com>
325 * mlib-tgt-specific.adb (Support_For_Libraries): New function,
326 returning None, used when there is no platform specific body for
329 2007-10-15 Bob Duff <duff@adacore.com>
331 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A
332 (passing'Unrestricted_Access of nested subprograms to Sort) with use of
333 the generic Heap_Sort_G, in order to avoid trampolines.
335 2007-10-15 Vasiliy Fofanov <fofanov@adacore.com>
336 Jose Ruiz <ruiz@adacore.com>
338 * vx_stack_info.c: New file.
340 * i-forbla-unimplemented.ads: New file.
342 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads
343 for unsupported configurations; use it on VMS targets instead of the
345 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include
346 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info
347 used by VxWorks targets to have access to task-specific data and be
348 able to extract the stack boundaries for stack checking.
349 Use system-vms-ia64.ads on ivms.
351 * Make-lang.in: Update dependencies.
353 * sysdep.c (__gnat_get_stack_info): Move to a standalone file
356 2007-10-15 Vincent Celier <celier@adacore.com>
358 * snames.adb, snames.ads: Add new standard name runtime_library_dir
360 * prj.ads (Language_Config): Add new component Runtime_Library_Dir
362 * prj-attr.adb: Add project level attribute Runtime_Library_Dir
364 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of
365 the source is unknown.
367 * prj-ext.adb: Spelling error fix
369 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada
370 95 reserved word in its name.
371 (Process_Project_Level_Array_Attributes): Process new attribute
374 * prj-part.adb (Parse_Single_Project): Do not check the name of the
375 config project against the user project names.
377 * prj-proc.adb (Expression): In multi-language mode, indexes that do
378 not include a dot are always case insensitive.
379 (Process_Declarative_Items): Ditto
380 (Process_Project_Tree_Phase_1): Set Success to False in case an error is
383 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is
384 True, compare both indexes in lower case.
386 2007-10-15 Robert Dewar <dewar@adacore.com>
388 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call
390 2007-10-15 Gary Dismukes <dismukes@adacore.com>
392 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box
393 association for an access component, add an association with null as
394 the expression. Remove testing for array subtypes and the setting in
395 that case of Ctyp to the array component type, which prevented proper
396 inclusion of an association for null-initialized arrays. Collapse
397 condition that tests for array subtypes into just a test of
398 Is_Partially_Initialized_Type (which already covers arrays anyway).
400 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
402 * sem_ch12.adb: Minor code reformatting.
403 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to
404 find the parent package which may have been hidden by local
407 2007-10-15 Gary Dismukes <dismukes@adacore.com>
409 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained
410 flag of derived concurrent types, taking into account the flag setting
411 on the parent subtype and any new set of discriminants.
413 2007-10-15 Hristian Kirtchev <kirtchev@adacore.com>
415 * sem_ch4.adb: Minor code and comment reformatting.
416 (Analyze_Allocator): When the designated type of an unconstrained
417 allocator is a record with unknown discriminants or an array with
418 unknown range bounds, emit a detailed error message depending on the
419 compilation mode and whether the designated type is limited.
421 2007-10-15 Tristan Gingold <gingold@adacore.com>
423 * system-vms-ia64.ads: New file.
425 * system-vms_64.ads: Minor comment fix.
427 2007-10-15 Ed Schonberg <schonberg@adacore.com>
429 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a
430 body generated for a function with a controlling result that is a null
431 extension, discard the generated body in favor of the current explicit
434 2007-10-15 Ed Schonberg <schonberg@adacore.com>
436 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before
437 examining its original form, to handle properly operator calls that
440 2007-10-15 Olivier Hainque <hainque@adacore.com>
442 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer
443 instead of a procedure value in each traceback entry.
445 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer
446 instead of procedure value to TBK$SYMBOLIZE.
448 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper
450 (TB_Entry_For): Account for the PV/FP renaming.
452 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and
454 (Null_TB_Entry): Account for change of component name.
455 (PV_For): Rename as FP_For.
457 2007-10-15 Tristan Gingold <gingold@adacore.com>
459 * trans.c (gnat_to_gnu): Remove the padding structure more often.
460 This optimize assignment to over-aligned record.
462 2007-10-15 Emmanuel Briot <briot@adacore.com>
464 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie
467 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference
468 type, for dispatching calls.
470 2007-10-15 Vincent Celier <celier@adacore.com>
471 Robert Dewar <dewar@adacore.com>
473 * gnat_ugn.texi: Add documentation for switches --version and --help
474 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname,
475 gnatxref, gnatfind, gnatls, and gnatclean.
477 Mention attribute Excluded_Source_Dirs
478 Replace obsolescent attribute Locally_Removed_Files with attribute
479 Excluded_Source_Files.
480 Improve documentation of -u (gnatbind)
481 Document how to do reliable stack checking for the environmental task
484 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code.
485 Document attribute Excluded_Source_Files and indicate that attribute
486 Locally_Removed_Files is obsolescent.
488 2007-10-15 Thomas Quinot <quinot@adacore.com>
490 * g-soccon-vms.ads: Fix value of MSG_WAITALL.
493 Update documentation to note that OpenVMS 8.3 or later must be used
494 to generate g-soccon-vms.ads.
496 * atree.adb: Add ??? comment
498 * exp_util.adb: Minor reformatting.
499 Add ??? comment in Kill_Dead_Code.
501 2007-10-15 Robert Dewar <dewar@adacore.com>
503 * errout.ads: Comment clarification
505 * exp_ch4.adb (Expand_N_Allocator): Code cleanup.
506 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa
508 * lib.ads: Comment update
510 * init.c: Minor reformatting.
512 * sem_attr.adb: Minor formatting
514 * osint-b.ads: Minor reformatting
516 * sem_ch9.adb: Implement -gnatd.I switch
518 * g-comlin.adb: (Start): Fix handling of empty command line.
520 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section,
521 even when -rules follows the -cargs section.
523 2007-10-08 Ollie Wild <aaw@google.com>
525 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with
527 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with
529 (gnat_eh_runtime_type): Removed.
530 (gnat_return_tree): New function.
532 2007-10-08 Ben Elliston <bje@au.ibm.com>
536 2007-08-31 Ben Elliston <bje@au.ibm.com>
538 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
539 when compiling for powerpc64-*-linux.
540 * system-linux-ppc64.ads: New file.
542 2007-09-27 Eric Botcazou <ebotcazou@adacore.com>
544 Mapped location support
545 * back_end.adb (Call_Back_End): Pass information about source
546 files instead of units to gigi.
547 * gigi.h (struct File_Info_Type): New.
548 (gigi): Rename and change type of number_units parameter, change
549 type of file_info_ptr parameter.
550 * trans.c (number_files): New global variable.
551 (gigi): Rename and change type of number_units parameter, change
552 type of file_info_ptr parameter.
553 If mapped location support is enabled, create the isomorphic mapping
554 between source files and line maps.
555 (Sloc_to_locus): If mapped location support is enabled, translate
556 source location into mapped location.
557 (annotate_with_node): Rename into set_expr_location_from_node.
558 Call set_expr_location instead of annotate_with_locus.
559 (Pragma_to_gnu): Adjust for above change.
560 (Loop_Statement_to_gnu): Likewise.
561 (call_to_gnu): Likewise.
562 (Handled_Sequence_Of_Statements_to_gnu): Likewise.
563 (gnat_to_gnu): Likewise.
564 (add_stmt_with_node): Likewise.
565 (add_cleanup): Likewise.
566 * utils.c (gnat_init_decl_processing): Do not set input_line.
568 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
570 * sem_ch8.adb (Analyze_Use_Type): Code cleanup.
571 (Applicable_Use): Emit a warning when a package tries to use itself.
572 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type
573 is already in use or the package where it is declared is in use or is
574 declared in the current package.
575 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type.
577 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb,
578 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb,
579 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause.
581 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
583 * a-calend-vms.adb, a-calend.adb:
584 Add a section on leap seconds control along with two entities used to
585 enable and disable leap seconds support. The array Leap_Second_Times is
586 now constant and contains hard time values pre-generated. Remove
587 all elaboration code used to populate the table of leap seconds.
590 Add entity Leap_Seconds_Support to the list of global run-time variables
591 along with a comment on its usage and values.
592 (Gen_Adainit_Ada): Add code to generate the declaration and import of
593 Integer variable Leap_Seconds_Support. Set its value to zero (disabled)
594 or one (enabled) depending on the presence of binder switch "-y".
595 (Gen_Adainit_C): Add code to generate the declaration of external int
596 __gl_leap_seconds_support. Set is value to zero (disabled) or one
597 (enabled) depending on the presence of binder switch "-y".
599 * init.c: Add __gl_leap_seconds_support to the list of global values
600 computed by the binder.
602 2007-09-26 Jerome Guitton <guitton@adacore.com>
604 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
605 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb,
606 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
607 s-taprop-posix.adb (Stop_Task): New function, dummy implementation.
609 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function.
611 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time
612 function which can be called by the debugger to interrupt the tasks of
613 an Ada application asynchronously, as needed on VxWorks.
614 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks.
616 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration,
617 renamed from Stop_All_Tasks. Update comments.
618 (Stop_All_tasks): New function declaration.
620 2007-09-26 Olivier Hainque <hainque@adacore.com>
622 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around
623 #include <utime.h> and #define GCC_RESOURCE_H before
624 #include <sys/wait.h>.
625 Add more protections in __gnat_translate_vms.
627 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before
628 #include <sys/wait.h>.
630 2007-09-26 Thomas Quinot <quinot@adacore.com>
631 Sergey Rybin <rybin@adacore.com>
633 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed.
635 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
638 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
640 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist,
643 * sem_dist.ads: Minor comment fix
645 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO.
647 2007-09-26 Javier Miranda <miranda@adacore.com>
648 Eric Botcazou <ebotcazou@adacore.com>
651 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of
652 indirection added to the HT_Link component of the TSD. This is required
653 to statically allocate the TSD.
656 Minor reordering of the declarations in the private part. Required to
657 add a level of indirection to the contents of the TSD component HT_Link.
658 This is required to statically allocate the TSD.
660 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with
661 Is_Statically_Allocated set from constant objects.
662 Do not make exported constants created by the compiler volatile.
663 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken
666 * trans.c (Identifier_to_gnu): For constants, unshare initializers
667 before returning them.
669 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the
670 public part of the package.
671 (Make_DT): Move HT_Link component out of the TSD record. For this
672 purpose Make_DT now declares a separate object that stores the
673 HT_Link value, and initializes the TSD component with the address
674 of this new object. The addition of this level of indirection is
675 required to statically allocate the TSD because the TSD cannot
676 have variable components.
677 (Expand_Interface_Conversion): Improve the expanded code.
678 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity.
680 * sem_disp.adb (Check_Dispatching_Operation): In case of a body
681 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---,
682 if we are building static dispatch tables then we must not generate
683 extra code to register the primitive because the dispatch table will
684 be built at the end of the library package; otherwise we notify that
685 we cannot build the static dispatch table.
687 2007-09-26 Robert Dewar <dewar@adacore.com>
689 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address
692 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays
693 (Analyze_Record_Representation_Clause): Suppress junk warning for
694 missing component clause.
695 (Analyze_Attribute_Definition_Clause, case Address): Apply the special
696 tests for controlled type overlay to composites with controlled
698 (Analyze_Record_Representation_Clause): Add reference for component name
700 2007-09-26 Javier Miranda <miranda@adacore.com>
701 Gary Dismukes <dismukes@adacore.com>
703 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True
704 for thunks associated with interface types.
706 * einfo.ads: Improve documentatation of Is_Internal
707 (Is_Thunk): New attribute applicable to subprograms. True for thunks
708 associated with interface types.
709 Extensive comment fixes regarding flags that appear in all entities. The
710 documentation is now consistent for all such flags (there were a number
711 of errors in the documentation in this regard).
713 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup.
715 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any
716 of these procedures are passed a function call that already has
717 build-in-place actuals (testing new flag
718 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in
719 the case where processing continues.
720 (Expand_Call): If the call is generated from a thunk body then we
721 propagate the extra actuals associated with the accessibility
722 level of the access type actuals.
724 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field
725 of each extra formal of a protected operation to reference the
726 corresponding extra formal of the subprogram denoted by the
727 operation's Protected_Body_Subprogram.
729 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on
730 N_Function_Call nodes.
732 2007-09-26 Robert Dewar <dewar@adacore.com>
734 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set
736 * debug.adb: Add d.s flag.
738 2007-09-26 Gary Dismukes <dismukes@adacore.com>
740 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the
741 debug variable so that it won't be initialized when pragma
742 Initialize_Scalars is in effect.
744 2007-09-26 Gary Dismukes <dismukes@adacore.com>
746 * freeze.adb (Freeze_Entity): Remove check for preelaborable
747 initialization of a full view. This is moved to
748 Analyze_Package_Specification.
750 * sem_ch7.adb (Analyze_Package_Specification): Add check for
751 preelaborable initialization of a full view in entity loop.
752 (Uninstall_Declarations): If entity is a use-visible compilation unit,
753 its child units are use-visible only if they are visible child units.
755 * sem_util.adb (Is_Preelaborable_Expression): New function to determine
756 whether an expression can be used within a type declaration that
757 requires preelaborable init.
758 (Check_Components): Replace inline code that does partial checking for
759 preelaborable default expressions with call to
760 Is_Preelaborable_Expression.
761 (Has_Preelaborable_Initialization): In the case of a generic actual
762 subtype, (that is, Is_Generic_Actual is True), return the result of
763 applying Has_Preelaborable_Initialization to the generic actual's base
766 2007-09-26 Hristian Kirtchev <kirtchev@adacore.com>
768 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a
769 call to Jan_1_Day _Of_Week to optimize its performance.
770 (Is_Leap): Move the routine to the scope of Week_In_Year.
771 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the
772 weekday on which January 1 falls of Year - 1 and Year + 1. This function
773 avoids calling Time_Of and Split, thus making it more efficent.
774 (Week_In_Year): Reimplemented in oder to follow ISO 8601.
776 * g-calend.ads (Week_In_Year): Change comment to reflect new
779 2007-09-26 Emmanuel Briot <briot@adacore.com>
781 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration,
782 Command_Line): New types
783 (Define_Alias, Define_Prefix, Free): New subprograms. These provide
784 support for defining how switches can be grouped on a command line (as
785 is the case for -gnatw... for GNAT), and how simple switches can be
786 used as aliases for more complex switches (-gnatwa is same as
788 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram
789 (Start, Current_*): New subprograms
790 Added support for parsing an array of strings in addition to the real
792 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to
793 be moved from the body to the private part of the spec.
794 (*): All subprograms now have an extra parameter with default value to
795 specify which parser should be used. For backward compatibility, it
796 defaults to parsing the command line of the application. They were also
797 modified to properly handle cases where each of the argument does not
798 start at index 1 (which is always true for Ada.Command_Line, but not
799 when processing any Argument_List).
800 (Free): New subprogram
801 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch,
802 Argument): New subprograms
803 (Switch_Parameter_Type): New enum, which clarifies the code. The extra
804 special characters like ':', '=',... are now handled in a single place,
805 which makes the code more extensible eventually.
806 (Getopt, Full_Switch): When the switch was returned as part of the
807 special character '*', make sure it is prepended by the switch character
808 ('-' in general), so that the application knows whether "foo" or "-foo"
809 was specified on the command line.
811 2007-09-26 Florian Villoing <villoing@adacore.com>
813 * g-dirope.adb (Remove_Dir): In case we are removing directories
814 recursively, make sure that if an exception is raised during the
815 processing, the current working directory is reset to its initial
816 value before propagating the exception.
818 2007-09-26 Vincent Celier <celier@adacore.com>
820 * gnatbind.adb: If there are several ALI files specified and there is
821 a main program to bind, the first ALI is expected to contain the main
822 subprogram and the names of the binder generated files will be derived
823 from the first ALI file name.
824 (Gnatbind): Fix insertion character in invocation of Error_Msg
826 2007-09-26 Vincent Celier <celier@adacore.com>
828 * gnatcmd.adb (Check_Files): Do not include sources that have been
829 removed by attributes Exclude_Source_Files or Locally_Removed_Files.
831 2007-09-26 Ed Schonberg <schonberg@adacore.com>
833 * lib-xref.ads, lib-xref.adb: The entry for array types now carries
834 information about each of its index types, following the type
835 reference for its component type.
837 2007-09-26 Vincent Celier <celier@adacore.com>
839 * make.adb: (Kill): New procedure (__gnat_kill imported)
840 (Running_Compile, Outstanding_Compiles): Global variables that
841 were previously local to procedure Compile_Sources.
842 (Sigint_Intercepted): Send signal SIGINT to all outstanding
843 compilation processes.
845 (Gnatmake): If project files are used, create the mapping of all the
846 sources, so that the correct paths will be found.
848 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure
850 2007-09-26 Vincent Celier <celier@adacore.com>
852 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads
854 * prj.ads, prj.adb (Default_Language): Remove function, no longer used
855 Replace components Compiler_Min_Options and Binder_Min_Options with
856 Compiler_Required_Switches and Binder_Required_Switches in record
858 Remove components Default_Language and Config in Project_Tree_Data,
861 * prj-attr.adb: New attributes Required_Switches (<language>) in
862 packages Compiler and Binder.
864 * prj-nmsc.adb: Major rewrite of the processing of configuration
865 attributes for gprbuild. No impact on GNAT tools.
867 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer
868 process configuration attributes: this is done in Prj.Nmsc.Check.
869 (Recursive_Process): Make a full copy of packages inherited from project
870 being extended, instead of a shallow copy.
871 (Process_Project_Tree_Phase_1): New procedure
872 (Process_Project_Tree_Phase_1): New procedure
873 (Process): Implementation now uses the two new procedures
875 * prj-util.adb (Executable_Of): Get the suffix and the default suffix
876 from the project config, not the tree config that no longer exists.
878 2007-09-26 Vincent Celier <celier@adacore.com>
880 * Make-lang.in: Update dependencies..
882 2007-09-26 Vincent Celier <celier@adacore.com>
884 * osint.adb, osint.ads: Minor reformatting
886 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure
888 2007-09-26 Gary Dismukes <dismukes@adacore.com>
890 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95
891 message to cite use of <> in aggregate component associations rather
892 than wrongly indicating use of limited aggregates.
894 2007-09-26 Robert Dewar <dewar@adacore.com>
896 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of
899 2007-09-26 Ed Schonberg <schonberg@adacore.com>
901 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct
902 ancestor of the derived type, the operations are inherited from the
903 primary dispatch table of the parent.
904 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls
905 when the context is an explicit type conversion.
907 2007-09-26 Ed Schonberg <schonberg@adacore.com>
909 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution
910 rule for qualified expressions properly, to detect improper conversions
911 and resolve some cases of overloading.
913 2007-09-26 Ed Schonberg <schonberg@adacore.com>
915 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the
916 proper kind of reference to the primitive operation, for better source
918 (Valid_Conversion): A tagged conversion is legal if both operands are
921 2007-09-26 Robert Dewar <dewar@adacore.com>
923 * sem_warn.adb (Check_References): Catch more cases of unreferenced
926 2007-09-26 Vincent Celier <celier@adacore.com>
928 * snames.adb, snames.ads: Change Include_Option to Include_Switches
930 2007-09-26 Robert Dewar <dewar@adacore.com>
932 * s-wchstw.adb: provide messages for run time unit exceptions
934 * a-witeio.adb: Minor reformatting
936 * exp_ch13.adb: Minor reformatting
938 2007-09-26 Sergey Rybin <rybin@adacore.com>
940 * vms_data.ads: Revise gnatmetric qualifiers.
941 Add qualified for the new gnatbind option '-y'
943 * gnat_ugn.texi: Revise the gnatmetric section.
944 Add entry for new gnatbind option '-y'.
946 * gnat_rm.texi: Minor spelling correction.
947 Document restriction on overlaying controlled types
949 2007-09-26 Vincent Celier <celier@adacore.com>
951 * makegpr.adb (Link_Executables): Do not fail when the root project has
952 no sources, but is an extending project.
954 2007-09-25 Eric Botcazou <ebotcazou@adacore.com>
956 * trans.c: Fix misplaced #define.
958 2007-09-22 Eric Botcazou <ebotcazou@adacore.com>
960 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate
961 the TYPE_REF_CAN_ALIAS_ALL flag to the result.
963 2007-09-21 Olivier Hainque <hainque@adacore.com>
965 * utils.c (type_for_nonaliased_component_p): Return false for
968 2007-09-17 Eric Botcazou <ebotcazou@adacore.com>
970 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an
971 object covered by 13.3(19) volatile.
973 2007-09-12 Eric Botcazou <ebotcazou@adacore.com>
977 * utils.c (unchecked_convert): Use a subtype as the intermediate type
978 in the special VIEW_CONVERT_EXPR case.
980 2007-09-12 Robert Dewar <dewar@adacore.com>
982 * types.ads, a-charac.ads, freeze.adb: Minor reformatting.
984 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads,
985 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb,
986 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb,
987 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb,
988 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb,
989 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb,
990 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb,
991 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb,
992 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads,
993 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads,
994 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb,
995 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb,
996 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads,
997 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads,
998 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads,
999 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads,
1000 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement
1001 pragma Compiler_Unit and adds it to relevant library units.
1003 2007-09-12 Ed Schonberg <schonberg@adacore.com>
1005 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with
1006 a box need not correspond to any component.
1008 2007-09-12 Robert Dewar <dewar@adacore.com>
1010 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading
1011 the tasking version of the Ada run time when foreign threads are
1012 present and there are no explicit Ada tasks or tasking constructs.
1014 * gnat_rm.texi: Clarify documentation of GNAT.Threads.
1016 2007-09-12 Hristian Kirtchev <kirtchev@adacore.com>
1018 * bindusg.adb (Display): Correct comment for switch -X. Add a line for
1019 the usage of switch -y.
1021 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support
1022 when switch -y is present.
1024 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable
1025 leap seconds in Ada.Calendar and its children.
1027 2007-09-12 Jose Ruiz <ruiz@adacore.com>
1029 * a-extiti.ads (Timer): The discriminant is a "not null access
1030 constant" in the Reference Manual.
1031 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual.
1033 2007-09-12 Robert Dewar <dewar@adacore.com>
1035 * a-swuwha.adb: Remove junk RM header
1037 2007-09-12 Vincent Celier <celier@adacore.com>
1039 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode
1042 * g-bytswa.ads: Minor reformatting
1044 2007-09-12 Thomas Quinot <quinot@adacore.com>
1046 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads:
1047 Add new constant Thread_Blocking_IO, always True by default, set False
1048 on a per-runtime basis.
1049 (Need_Netdb_Buffer): New constant.
1051 2007-09-12 Arnaud Charlet <charlet@adacore.com>
1053 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id):
1054 Added renames for corresponding functions in System.Partition_Interface.
1056 2007-09-12 Doug Rupp <rupp@adacore.com>
1058 * Makefile.in: Remove VMS specific System.CRTL packages which are no
1061 * s-crtl-vms64.ads: Removed.
1063 2007-09-12 Olivier Hainque <hainque@adacore.com>
1065 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype
1066 with discriminant constraints, generalize the code for BIT_FIELDs
1067 to PACKED fields of constant size and propagate DECL_PACKED.
1069 2007-09-11 Eric Botcazou <ebotcazou@adacore.com>
1071 * decl.c (array_type_has_nonaliased_component): New predicate.
1072 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to
1073 set the TYPE_NONALIASED_COMPONENT flag on the type.
1074 <E_Array_Subtype>: Likewise.
1075 * gigi.h (type_for_nonaliased_component_p): Declare.
1076 * utils.c (type_for_nonaliased_component_p): New predicate.
1077 (create_field_decl): Invoke the above predicate to set the
1078 DECL_NONADDRESSABLE_P flag on the field.
1080 2007-09-11 Javier Miranda <miranda@adacore.com>
1082 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present
1083 in library level record type entities if we are generating statically
1084 allocated dispatch tables.
1086 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code
1087 importing/exporting the _tag declaration by new code
1088 importing/exporting the dispatch table wrapper. This change allows us
1089 to statically allocate of the TSD.
1090 (Make_DT.Export_DT): New procedure.
1091 (Build_Static_DT): New function.
1092 (Has_DT): New function.
1094 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags
1095 True_Constant and Current_Value. Required to statically
1096 allocate the dispatch tables.
1097 (Check_Allocator): Make function iterative instead of recursive.
1098 Also return inner allocator node, when present, so that we do not have
1099 to look for that node again in the caller.
1101 2007-09-11 Jan Hubicka <jh@suse.cz>
1103 * misc.c (gnat_expand_body): Kill.
1104 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill.
1106 2007-09-10 Robert Dewar <dewar@adacore.com>
1108 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb,
1109 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
1110 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
1111 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads,
1112 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads,
1113 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads,
1114 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb,
1115 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb,
1116 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads,
1117 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads,
1118 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb,
1119 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads,
1120 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb,
1121 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb,
1122 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
1123 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb,
1124 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads,
1125 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
1126 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb,
1127 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb,
1128 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
1129 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb,
1130 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads,
1131 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb,
1132 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb,
1133 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
1134 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads,
1135 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads,
1136 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb,
1137 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads,
1138 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads,
1139 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb,
1140 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads,
1141 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads,
1142 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
1143 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads,
1144 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
1145 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt,
1146 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb,
1147 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads,
1148 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb,
1149 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb,
1150 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
1151 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb,
1152 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
1153 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads,
1154 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb,
1155 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
1156 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
1157 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
1158 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
1159 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads,
1160 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads,
1161 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb,
1162 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
1163 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb,
1164 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads,
1165 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
1166 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb,
1167 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads,
1168 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb,
1169 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
1170 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb,
1171 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads,
1172 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb,
1173 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb,
1174 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads,
1175 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads,
1176 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb,
1177 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads,
1178 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
1179 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb,
1180 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads,
1181 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads,
1182 types.h, uintp.h, urealp.h, usage.adb, usage.ads,
1183 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb,
1184 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb,
1185 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb,
1186 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb,
1187 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb,
1188 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb,
1189 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb,
1190 mlib-tgt-vms.ads: Replace headers with GPL v3 headers.
1192 2007-09-10 Emmanuel Briot <briot@adacore.com>
1194 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character
1197 2007-09-10 Vasiliy Fofanov <fofanov@adacore.com>
1199 * adaint.c (__gnat_translate_vms): new function.
1201 2007-09-10 Gary Dismukes <dismukes@adacore.com>
1202 Thomas Quinot <quinot@adacore.com>
1204 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only
1205 create an abstract subprogram in the case of 'Input. For 'Output we now
1206 create a real spec/body when the type is abstract, since it can
1207 potentially be called.
1208 (Predefined_Primitive_Bodies): Now allow the creation of a predefined
1209 body for 'Output when the type is abstract (only the creation of the
1210 body for 'Input is excluded when the type is abstract).
1211 (Stream_Operation_OK): Add an additional condition in the return
1212 statement, so that False will be returned for TTS_Stream_Input if the
1213 associated tagged type is an abstract extension. Add comments for
1215 (Expand_N_Object_Declaration): For the case of a shared passive
1216 variable, insert init proc call only after the shared variable
1217 procedures have been processed, because the IP call needs to undergo
1218 shared passive variable reference expansion, which requires these
1219 procedures to be available (and elaborated).
1221 2007-09-10 Vincent Celier <celier@adacore.com>
1223 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove
1224 parameter Runtime_Project.
1226 2007-09-10 Ed Schonberg <schonberg@adacore.com>
1228 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is
1229 given a box association, the type of the component is discriminated,
1230 and the value of the discriminant is the discriminant of the enclosing
1231 type, retrieve its value from the aggregate itself, where it must have
1234 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix,
1235 to remove other spurious ambiguities on arithmetic operations involving
1236 literals and addresses, on systems where Address is a visible integer
1237 type, when the operator is called in functional notation.
1238 (Try_Primitive_Operation): Within an instance, a call in prefixed form
1239 is legal when the types match, even if the operation is currently
1242 2007-09-10 Ed Schonberg <schonberg@adacore.com>
1244 * sem_ch12.adb (Build_Local_Package): A formal package with no
1245 associations is legal if all formals have defaults. It is not
1246 equivalent to a formal declared with a box.
1248 2007-09-10 Sergey Rybin <rybin@adacore.com>
1250 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option
1252 2007-09-10 Sergey Rybin <rybin@adacore.com>
1254 * gnat_ugn.texi: Add description of the new '-lratio' option
1255 Update 7.3.1 section about availability of the feature.
1257 2007-09-10 Thomas Quinot <quinot@adacore.com>
1259 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last
1262 2007-09-10 Olivier Hainque <hainque@adacore.com>
1264 * Makefile.in: (mips-irix section): Activate build of libgmem.
1266 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1268 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber
1271 2007-09-10 Eric Botcazou <ebotcazou@adacore.com>
1273 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for
1274 a debug renaming declaration specially.
1276 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1278 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under
1279 which a constant renaming is treated as a normal object declaration.
1280 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from
1281 the N_Indexed_Component case.
1282 <N_Indexed_Component>: Fall through to above case.
1283 <N_Object_Renaming_Declaration>: Return true for all composite types.
1285 2007-09-08 Eric Botcazou <ebotcazou@adacore.com>
1287 * decl.c (make_packable_type): If the new type has been given BLKmode,
1288 try again to get an integral mode for it.
1290 2007-09-07 Eric Botcazou <ebotcazou@adacore.com>
1292 Re-apply accidentally reverted change:
1294 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
1296 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
1297 get_action_description_for): Replace _Unwind_Word with _uleb128_t
1298 and _Unwind_SWord with _sleb128_t.
1300 2007-09-06 Eric Botcazou <ebotcazou@adacore.com>
1302 * trans.c (convert_with_check): Update call to real_2expN.
1304 2007-09-05 Sandra Loosemore <sandra@codesourcery.com>
1306 * trans.c (Compilation_unit_to_gnu): Use set_cfun.
1307 * utils.c (end_subprog_body): Likewise.
1309 2007-09-03 Nick Clifton <nickc@redhat.com>
1311 * Make-lang.in: Change copyright header to refer to version 3 of
1312 the GNU General Public License and to point readers at the
1313 COPYING3 file and the FSF's license web page.
1314 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c,
1315 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h,
1316 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h,
1317 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c:
1320 2007-08-31 Vincent Celier <celier@adacore.com>
1324 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb,
1325 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb
1326 (Check_Version_And_Help): New procedure in package Switch to process
1327 switches --version and --help.
1328 Use Check_Version_And_Help in GNAT tools
1331 (Compile_Sources): Make sure that sources that are "excluded" are not
1333 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a
1334 project file is used.
1335 (Version_Switch): Remove, moved to Switch
1336 (Help_Switch): Remove, moved to Switch
1337 (Display_Version): Remove, moved to Switch
1339 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in
1340 package Switch to process switches --version and --help.
1341 (Display_Version): New procedure
1343 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function.
1345 2007-08-31 Javier Miranda <miranda@adacore.com>
1347 * a-tags.adb (Internal_Tag): Protect the run-time against wrong
1350 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1352 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine.
1353 (Mark_Non_Null): If the node for which we just generated an access check
1354 is a reference to an *in* parameter and the reference appears in the
1355 declarative part of a subprogram body, mark the node as known non null.
1357 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1359 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the
1360 structure of E_Exception to reflect the new flag.
1361 (Is_Raised, Set_Is_Raised): New inlined routines.
1362 Update the usage of available flag to reflect the addition of Is_Raised.
1363 (Is_Raised, Set_Is_Raised): Bodies of new routines.
1364 (Write_Entity_Flags): Write the status of flag Is_Raised.
1365 (Is_Descendent_Of_Address): New entity flag, to simplify handling of
1366 spurious ambiguities when integer literals appear in the context of an
1367 address type that is a visible integer type.
1369 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local
1370 exceptions never being raised.
1371 (Analyze_Raise_Statement): When analyzing an exception, mark it as being
1374 2007-08-31 Javier Miranda <miranda@adacore.com>
1376 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise
1377 statement when compiling under restriction No_Exceptions_Proparation.
1379 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1381 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static
1382 initialization aggregate for the type, generate itype references for
1383 thetypes of its (sub)components, to prevent out-of-scope errors in gigi.
1385 2007-08-31 Gary Dismukes <dismukes@adacore.com>
1387 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a
1388 library-level package renaming, pass the declaration associated with
1389 the renaming's special debug variable to Qualify_Entity_Names to ensure
1390 that its encoded name is properly qualified.
1392 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity
1393 occurring in the list of entities to qualify, and do not attempt to
1394 traverse an entity list in that case. Variables associated with
1395 ` library-level package renamings can now occur in the table.
1397 * exp_dbug.ads: Revise documentation of the encoding for renaming
1400 2007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1402 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an
1403 access type points to an unconstrained array.
1405 2007-08-31 Hristian Kirtchev <kirtchev@adacore.com>
1407 * restrict.adb, namet.adb, par-util.adb: Remove redundant type
1410 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect
1411 simple redundant qualifications. The check is performed whenever the
1412 expression is a non-overloaded identifier.
1413 (Resolve_Type_Conversion): Enchance the redundant type conversion check
1414 to include loop parameters.
1415 (Valid_Conversion): Avoid generation of spurious error message.
1417 2007-08-31 Bob Duff <duff@adacore.com>
1419 * par-ch4.adb (P_Simple_Expression): Fold long sequences of
1420 concatenations of string literals into a single literal, in order to
1421 avoid very deep recursion in the front end, which was causing stack
1424 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty
1425 string, and the right operand is a string literal (the case of "" &
1426 "..."), optimize by avoiding copying the right operand -- just use the
1427 value of the right operand directly.
1429 * stringt.adb (Store_String_Chars): Optimize by growing the
1430 String_Chars table all at once, rather than appending characters one by
1432 (Write_String_Table_Entry): If the string to be printed is very long,
1433 just print the first few characters, followed by the length. Otherwise,
1434 doing "pn(n)" in the debugger can take an extremely long time.
1436 * sem_prag.adb (Process_Interface_Name): Replace loop doing
1437 Store_String_Char with Store_String_Chars.
1439 2007-08-31 Vincent Celier <celier@adacore.com>
1441 * prj-attr.adb: Add new attribute Excluded_Source_Files
1443 * prj-nmsc.adb: Use attribute Excluded_Source_Files before
1444 Locally_Removed_Files.
1446 * snames.ads, snames.adb: New standard name Excluded_Source_Files
1448 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1450 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context
1451 clauses of subunits, ignore limited_with_clauses that are illegal and
1452 have not been fully analyzed.
1454 2007-08-31 Ed Schonberg <schonberg@adacore.com>
1456 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity
1457 flag, for effiency. It is called when analyzing arithmetic operators
1458 and also for actuals in calls that are universal_integers. The flag is
1459 set for the predefined type address, and for any type or subtype
1462 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a
1463 Universal_Integer, when the formal is a descendent of address and the
1464 call appears in user code.
1465 (Analyze_Selected_Component): if the prefix is a private extension, the
1466 tag component is visible.
1468 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an
1471 2007-08-31 Robert Dewar <dewar@adacore.com>
1473 * s-fileio.adb (Open): Normalize file name to lower case in non-case
1474 sensitive file name systems to avoid unexpected mismatch in Vista.
1476 2007-08-31 Vincent Celier <celier@adacore.com>
1478 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR
1480 2007-08-31 Vincent Celier <celier@adacore.com>
1482 * symbols-vms.adb (Initialize): Read symbol files with continuation
1484 (Finalize): If symbol is long, split the line
1486 2007-08-31 Vincent Celier <celier@adacore.com>
1488 * fmap.ads: Minor comment updates
1490 2007-08-31 GNAT Script <nobody@adacore.com>
1492 * Make-lang.in: Makefile automatically updated
1494 2007-08-31 Bob Duff <duff@adacore.com>
1496 * sinfo.ads: Minor comment fix.
1498 2007-08-31 Thomas Quinot <quinot@adacore.com>
1500 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent
1501 with implementation.
1502 Documentation cleanup only.
1504 2007-08-31 Sergey Rybin <rybin@adacore.com>
1506 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new
1507 gnatpp '--separate-stmt-name' option.
1508 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line'
1511 * gnat_ugn.texi: Add description for the new gnatpp
1512 '--separate-stmt-name' and '--use-on-new-line' options.
1514 2007-08-31 Ben Elliston <bje@au.ibm.com>
1516 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads
1517 when compiling for powerpc64-*-linux.
1518 * system-linux-ppc64.ads: New file.
1520 2007-08-22 Krister Walfridsson <cato@df.lth.se>
1522 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for
1525 2007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1527 * misc.c (gnat_type_max_size): Constify.
1529 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1531 * cstand.adb (Create_Standard): Create an entity for a zero-sized type
1532 associated with Standard_Debug_Renaming_Type, to be used as the type of
1533 the special variables whose names provide debugger encodings for
1534 renaming declarations.
1536 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
1537 (Set_Debug_Renaming_Link): Change to set Node25.
1538 (Write_Field13_Name): Remove case for E_Enumeration_Literal.
1539 (Write_Field25_Name): Add case for E_Variable to output
1540 "Debug_Renaming_Link".
1541 (Write_Field23_Name): Correct the output string for "Limited_View".
1543 * exp_dbug.adb: Add with and use of Tbuild.
1544 (Debug_Renaming_Declaration): Replace creation of an enumeration type
1545 and literal with creation of a variable of type
1546 Standard_Debug_Renaming_Type whose name encodes both the renamed object
1547 and the entity of the renaming declaration.
1548 (Qualify_Entity_Name): Add the delayed qualification of the entity name
1549 part of the name of a variable that has a Debug_Renaming_Link.
1551 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
1552 special type to be associated with variables that provide debugger
1553 encodings for renaming declarations.
1555 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1556 Ed Schonberg <schonberg@adacore.com>
1557 Javier Miranda <miranda@adacore.com>
1559 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
1560 ancestor part given by an aggregate to test for an unchecked conversion,
1561 since this can occur in some cases when the ancestor part is a function
1562 call, and we don't want to fall into the recursive call to this
1563 procedure in that case.
1565 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
1566 stream attributes on limited types to account for user-specified
1567 attributes as well as whether Input (resp. Output) becomes available
1568 due to Read (resp. Write) being available for the type. Change Boolean
1569 variable to the more accurate name
1570 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
1571 double-"not" predicate at beginning of return statement to more
1572 understandable form.
1574 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
1575 return has an associated N_Handled_Sequence_Of_Statements, then wrap it
1576 in a block statement and use that as the first statement of the
1577 expanded return rather than incorrectly using the handled sequence as
1578 the first statement.
1580 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
1581 operation, generate an explicit freeze node for it rather than
1582 generating extra formals, to ensure that gigi has the proper order of
1583 elaboration for anonymous subtypes in the signature of the subprograms.
1584 (Build_In_Place_Formal): Move assertion to beginning of loop.
1585 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
1586 applied to a function call (occurs for some cases of 'Input).
1587 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
1588 applied to a function call (occurs for some cases of 'Input).
1590 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
1591 2005, generate an extended return statement enclosing the result object
1594 * freeze.adb (Freeze_Record_Type): Extend the current management of
1595 components that are access type with an allocator as default value: add
1596 missing support to the use of qualified expressions of the
1597 allocator (which also cause freezing of the designated type!)
1598 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
1599 dispatching operation, since extra formals may be needed by calls to
1600 build-in-place functions (such as stream 'Input).
1602 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
1603 formals for 'Constrained and accessibility level in the case of a
1604 predefined dispatching operation.
1606 * exp_util.adb (Insert_Actions): A protected body is a valid insertion
1607 point, no need to find the parent node.
1609 2007-08-16 Javier Miranda <miranda@adacore.com>
1611 * exp_attr.adb (Attribute_Priority): Add missing support for entries
1614 2007-08-16 Javier Miranda <miranda@adacore.com>
1616 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
1617 is not really required and can introduce regression with the debugger.
1618 The original problem is fixed with the patch written for checks.adb.
1620 2007-08-16 Thomas Quinot <quinot@adacore.com>
1622 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress
1623 Range_Check on Allocated_Table.
1625 2007-08-16 Vincent Celier <celier@adacore.com>
1627 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with
1628 Including_Non_Switch set to False.
1629 (Gnatmake): For the compiler, call Test_If_Relative_Path with
1630 Including_Non_Switch set to False.
1632 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean
1633 parameter Including_Non_Switch, defaulted to True. When
1634 Including_Non_Switch is False, options that are not switches and
1635 appear as relative path are not converted to absolute paths.
1637 2007-08-16 Nicolas Roche <roche@adacore.com>
1639 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub
1642 * Make-lang.in: Update dependencies
1644 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1646 * sem_ch10.adb (Has_With_Clause): If the name of the with clause
1647 currently inspected is a selected component, retrieve the entity of
1649 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting
1650 from the immediate ancestor of Main_Unit_Entity.
1651 (Install_Limited_Withed_Unit): Do not install the limited view of
1652 package P if P is reachable through an ancestor chain from package C
1653 and C also has a with clause for P in its body.
1654 (Has_Limited_With_Clause): New routine.
1655 (Has_With_Clause): New routine.
1657 2007-08-16 Ed Schonberg <schonberg@adacore.com>
1659 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the
1660 generic for an enclosing instance is a global reference, even though
1661 its scope is the enclosing instance.
1663 2007-08-16 Gary Dismukes <dismukes@adacore.com>
1664 Javier Miranda <miranda@adacore.com>
1666 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to
1667 initialize a limited object.
1668 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4
1670 Make sure Has_Complex_Representation is inherited by derived type.
1672 2007-08-16 Robert Dewar <dewar@adacore.com>
1674 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in
1677 2007-08-16 Ed Schonberg <schonberg@adacore.com>
1679 * sem_disp.adb (Check_Dispatching_Operation): If the operation
1680 implements an operation inherited from a progenitor interface, verify
1681 that they are subtype-conformant.
1683 2007-08-16 Hristian Kirtchev <kirtchev@adacore.com>
1684 Bob Duff <duff@adacore.com>
1685 Nicolas Setton <setton@adacore.com>
1687 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New.
1688 (Resolve): Alphabetize local variables. Add new variable From_Lib. When
1689 the statement which is being resolved comes from a predefined library
1690 unit, all non-predefined library interpretations are skipped.
1691 (Resolve_Op_Concat): If string concatenation was folded in the parser,
1692 but the "&" is user defined, give an error, because the folding would
1695 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that
1696 the parser has folded a long sequence of concatenations of string
1699 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE"
1700 and "JMP_BUF" variables as artificial.
1701 (N_String_Literal): Do not use alloca for very long string literals. Use
1702 xmalloc/free instead. Otherwise the stack might overflow.
1704 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the
1707 2007-08-16 Vincent Celier <celier@adacore.com>
1709 * vms_conv.adb (Process_Argument): Ensure that project related options
1710 are not put in the -cargs section when using GNAT COMPILE.
1712 2007-08-16 Robert Dewar <dewar@adacore.com>
1714 * gnat_ugn.texi: Add note on preprocessing (output file not written)
1716 2007-08-16 Thomas Quinot <quinot@adacore.com>
1718 * a-tags.adb: Minor reformatting.
1720 2007-08-16 Bob Duff <duff@adacore.com>
1722 * sem_type.ads, sem_ch4.adb: Minor reformatting.
1724 2007-08-14 Thomas Quinot <quinot@adacore.com>
1726 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads,
1727 s-osinte-interix.ads, system-interix.ads: Removed.
1729 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
1731 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove
1732 calls to Check_Within_Time_Bounds.
1733 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds.
1734 (Difference): Account for possible rounding of the resulting difference
1736 2007-08-14 Robert Dewar <dewar@adacore.com>
1738 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb,
1739 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb,
1740 s-osinte-solaris.adb, s-osinte-solaris.ads,
1741 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting.
1743 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style
1744 switch -gnatyS. Enable -gnatyS in GNAT style check mode
1746 2007-08-14 Robert Dewar <dewar@adacore.com>
1747 Ed Schonberg <schonberg@adacore.com>
1749 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads:
1750 Suppress unmodified in-out parameter warning in some cases
1751 This patch is a also fairly significant change to the way suppressible
1754 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check
1755 needed for access to concurrent record types generated by the expander.
1756 (Generate_Range_Check): When generating a temporary to capture the
1757 value of a conversion that requires a range check, set the type of the
1758 temporary before rewriting the node, so that the type is always
1759 properly placed for back-end use.
1760 (Apply_Float_Conversion_Check): Handle case where the conversion is
1762 (Get_Discriminal): Code reformatting. Climb the scope stack looking
1763 for a protected type in order to examine its discriminants.
1765 2007-08-14 Robert Dewar <dewar@adacore.com>
1766 Gary Dismukes <dismukes@adacore.com>
1767 Ed Schonberg <schonberg@adacore.com>
1768 Thomas Quinot <quinot@adacore.com>
1770 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb,
1771 a-stwisu.adb, a-strsup.adb: Fix warnings for range
1772 tests optimized out.
1774 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out.
1775 (Get_Allocator_Final_List): For the case of an anonymous access type
1776 that has a specified Associated_Final_Chain, do not go up to the
1778 (Expand_N_Type_Conversion): Test for the case of renamings of access
1779 parameters when deciding whether to apply a run-time accessibility
1781 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded
1782 aggregate code before allocator, and ahead of declaration for
1783 temporary, to prevent access before elaboration when the allocator is
1784 an actual for an access parameter.
1785 (Expand_N_Type_Conversion): On an access type conversion involving an
1786 access parameter, do not apply an accessibility check when the
1787 operand's original node was an attribute other than 'Access. We now
1788 create access conversions for the expansion of 'Unchecked_Access and
1789 'Unrestricted_Access in certain cases and clearly accessibility should
1790 not be checked for those.
1792 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that
1793 includes a type conversion of a packed component that has been expanded,
1794 recover the original expression for the object, and use this expression
1795 in the post-call assignment statement, so that the assignment is made
1796 to the object and not to a back-end temporary.
1797 (Freeze_Subprogram): In case of primitives of tagged types not defined
1798 at the library level force generation of code to register the primitive
1799 in the dispatch table. In addition some code reorganization has been
1800 done to leave the implementation clear.
1801 (Expand_Call): When expanding an inherited implicit conversion,
1802 preserve the type of the inherited function after the intrinsic
1803 operation has been expanded.
1805 * exp_ch2.ads, exp_ch2.adb
1806 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference
1807 of an entry formal appearing in an assignment statement does not assign
1809 (Expand_Current_Value): Instead of calling a routine to determine
1810 whether the prefix of an attribute reference should be optimized or
1811 not, prevent the optimization of such prefixes all together.
1813 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected
1814 component whose prefix is known to be of an access type is an implicit
1815 dereference and does not assign to the prefix.
1817 2007-08-14 Ed Schonberg <schonberg@adacore.com>
1818 Robert Dewar <dewar@adacore.com>
1820 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and
1821 itype is visited, make an entry into table to link associated node and
1823 Add comments and correct harmless error in Build_NCT_Hash_Tables
1824 (Array_Aggr_Subtype): Associate each itype created for an index type to
1825 the corresponding range construct, and not to the aggregate itself. to
1826 maintain a one-to-one correspondence between itype and its associated
1827 node, to prevent errors when complex expression is copied.
1828 Fix mishandling of multiple levels of parens
1830 * sem_aggr.adb: Create a limited view of an incomplete type, to make
1831 treatment of limited views uniform for all visible declarations in a
1832 limited_withed package.
1833 (New_Copy_Tree): If hash table is being used and itype is visited,
1834 make an entry into table to link associated node and new itype.
1835 (Resolve_Record_Aggregate): Do not add an others box association for a
1836 discriminated record component that has only discriminants, when there
1837 is a box association for the component itself.
1839 * par-ch4.adb: Fix mishandling of multiple levels of parens
1841 2007-08-14 Robert Dewar <dewar@adacore.com>
1843 * comperr.adb: Fix problem with suppressing warning messages from gigi
1845 * erroutc.ads, erroutc.adb, errout.ads,
1846 errout.adb (Write_Eol): Remove trailing spaces before writing the line
1847 (Write_Eol_Keep_Blanks): New procedure to write a line, including
1848 possible trailing spaces.
1849 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
1850 Fix problem with suppressing warning messages from back end
1851 Improve handling of deleted warnings
1854 Fix problem with suppressing warning messages from back end
1855 Handle setting of Static_Dispatch_Tables flag.
1858 Fix problem with suppressing warning messages from back end
1860 * exp_intr.adb: Improve handling of deleted warnings
1862 2007-08-14 Robert Dewar <dewar@adacore.com>
1864 * debug.adb: Improve -gnatdI to cover all cases of serialization
1865 Add documentation of dZ, d.t
1867 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of
1869 (Sprint_Node_Actual): Generate new output associated with implicit
1870 importation and implicit exportation of object declarations.
1872 2007-08-14 Ed Schonberg <schonberg@adacore.com>
1873 Robert Dewar <dewar@adacore.com>
1874 Javier Miranda <miranda@adacore.com>
1875 Gary Dismukes <dismukes@adacore.com>
1877 * einfo.ads, einfo.adb: Create a limited view of an incomplete type,
1878 to make treatment of limited views uniform for all visible declarations
1879 in a limited_withed package.
1880 Improve warnings for in out parameters
1881 (Set_Related_Interaface/Related_Interface): Allow the use of this
1882 attribute with constants.
1883 (Write_Field26_Name): Handle attribute Related_Interface in constants.
1884 Warn on duplicate pragma Preelaborable_Initialialization
1886 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the
1887 generation of a freezing node to ensure proper management of null
1888 excluding access types in the backend.
1889 (Create_Extra_Formals): Test base type of the formal when checking for
1890 the need to add an extra accessibility-level formal. Pass the entity E
1891 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was
1892 originally being done in a couple of cases), to ensure that the
1893 Extra_Formals list gets set on the entity E when the first entity is
1895 (Conforming_Types): Add missing calls to Base_Type to the code that
1896 handles anonymous access types. This is required to handle the
1897 general case because Process_Formals builds internal subtype entities
1898 to handle null-excluding access types.
1899 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1900 functions that need it, even when not marked Requires_Overriding.
1901 Improve warnings for in out parameters
1902 (Analyze_Function_Return): Warn for disallowed null return
1903 Warn on return from procedure with unset out parameter
1904 Ensure consistent use of # in error messages
1905 (Check_Overriding_Indicator): Add in parameter Is_Primitive.
1906 (Analyze_Function_Return): Move call to Apply_Constraint_Check before
1907 the implicit conversion of the expression done for anonymous access
1908 types. This is required to generate the code of the null excluding
1909 check (if required).
1911 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable):
1912 A formal parameter is never publicly referenceable outside of its body.
1913 (Check_References): For an unreferenced formal parameter in an accept
1914 statement, use the same warning circuitry as for subprogram formal
1916 (Warn_On_Unreferenced_Entity): New subprogram, taken from
1917 Output_Unreferenced_Messages, containing the part of that routine that
1918 is now reused for entry formals as described above.
1919 (Goto_Spec_Entity): New function
1920 (Check_References): Do not give IN OUT warning for dispatching operation
1921 Improve warnings for in out parameters
1922 (Test_Ref): Check that the entity is not undefinite before calling
1923 Scope_Within, in order to avoid infinite loops.
1924 Warn on return from procedure with unset out parameter
1925 Improved warnings for unused variables
1927 2007-08-14 Robert Dewar <dewar@adacore.com>
1928 Javier Miranda <miranda@adacore.com>
1929 Gary Dismukes <dismukes@adacore.com>
1931 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit
1932 (Expand_N_Attribute_Reference): Further unify the handling of the
1933 three forms of access attributes, using common code now for all three
1934 cases. Add a test for the case of applying an access attribute to
1935 an explicit dereference when the context is an access-to-interface
1936 type. In that case we need to apply the conversion to the prefix
1937 of the explicit dereference rather than the prefix of the attribute.
1938 (Attribute_Version, UET_Address): Set entity as internal to ensure
1939 proper dg output of implicit importation.
1940 (Expand_Access_To_Type): Removed.
1941 (Expand_N_Attribute_Reference): Merge the code from the three cases
1942 of access attributes, since the processing is largely identical for
1943 these cases. The substantive fix here is to process the case of a
1944 type name prefix (current instance case) before handling the case
1945 of interface prefixes.
1947 2007-08-14 Thomas Quinot <quinot@adacore.com>
1948 Ed Schonberg <schonberg@adacore.com>
1949 Javier Miranda <miranda@adacore.com>
1950 Robert Dewar <dewar@adacore.com>
1952 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram.
1953 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component
1954 type that is an anonymous access to controlled object, establish
1955 an associated finalization chain to avoid corrupting the global
1956 finalization list when a dynamically allocated object designated
1957 by such a component is deallocated.
1958 (Make_Controlling_Function_Wrappers): Create wrappers for constructor
1959 functions that need it, even when not marked Requires_Overriding.
1960 (Initialize_Tag): Replace call to has_discriminants by call to
1961 Is_Variable_Size_Record in the circuitry that handles the
1962 initialization of secondary tags.
1963 (Is_Variable_Size_Record): New implementation.
1964 (Expand_N_Object_Declaration): Suppress call to init proc if there is a
1965 Suppress_Initialization pragma for a derived type.
1966 (Is_Variable_Size_Record): New subprogram.
1967 (Build_Offset_To_Top_Functions): New implementation that simplifies the
1968 initial version of this routine and also fixes problems causing
1969 incomplete initialization of the table of interfaces.
1970 (Build_Init_Procedure): Improve the generation of code to initialize the
1971 the tag components of secondary dispatch tables.
1972 (Init_Secondary_Tags): New implementation that simplifies the previous
1973 version of this routine.
1974 (Make_DT): Add parameter to indicate when type has been frozen by an
1975 object declaration, for diagnostic purposes.
1976 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to
1977 diagnose attemps to freeze a subprogram when some untagged type of its
1978 profile is a private type whose full view has not been analyzed yet.
1979 (Freeze_Array_Type): Generate init proc for packed array if either
1980 Initialize or Normalize_Scalars is set.
1981 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when
1982 constructing the new profile, copy the null_exclusion indicator for each
1983 parameter, to ensure full conformance of the new body with the spec.
1985 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers):
1986 Create wrappers for constructor functions that need it, even when not
1987 marked Requires_Overriding.
1988 (Covers): Handle properly designated types of anonymous access types,
1989 whose non-limited views are themselves incomplete types.
1990 (Add_Entry): Use an entity to store the abstract operation which hides
1992 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op.
1993 (Collect_Interps): Use Empty as an actual for Abstract_Op in the
1994 initialization aggregate.
1995 (Function_Interp_May_Be_Hidden): Rename to
1996 Function_Interp_Has_Abstract_Op.
1997 (Has_Compatible_Type): Remove machinery that skips interpretations if
1998 they are labeled as potentially hidden by an abstract operator.
1999 (Has_Hidden_Interp): Rename to Has_Abstract_Op.
2000 (Set_May_Be_Hidden): Rename to Set_Abstract_Op.
2001 (Write_Overloads): Output the abstract operator if present.
2002 (Add_Entry): Before inserting a new entry into the interpretation table
2003 for a node, determine whether the entry will be disabled by an abstract
2005 (Binary_Op_Interp_May_Be_Hidden): New routine.
2006 (Collect_Interps): Add value for flag May_Be_Hidden in initialization
2008 (Function_Interp_May_Be_Hidden): New routine.
2009 (Has_Compatible_Type): Do not consider interpretations hidden by
2010 abstract operators when trying to determine whether two types are
2012 (Has_Hidden_Interp): New routine.
2013 (Set_May_Be_Hidden_Interp): New routine.
2014 (Write_Overloads): Write the status of flag May_Be_Hidden.
2016 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2017 Javier Miranda <miranda@adacore.com>
2019 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged
2020 types declared in the declarative part of a nested package body or in
2021 the proper body of a stub.
2022 (Set_All_DT_Position): Add missing check to avoid wrong assignation
2023 of the same dispatch table slot to renamed primitives.
2024 (Make_Select_Specific_Data_Table): Handle private types.
2025 (Tagged_Kind): Handle private types.
2026 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg
2027 output of implicit importation and exportation.
2028 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the
2029 first formal of the thunk is always associated with the controlling
2030 type. In addition perform the following code cleanup: remove formal
2031 Thunk_Alias which is no longer required, cleanup evaluation of the
2032 the controlling type, and update the documentation.
2033 Replace occurrence of Default_Prim_Op_Count by
2034 Max_Predef_Prims. Addition of compile-time check to verify
2035 that the value of Max_Predef_Prims is correct.
2036 (Check_Premature_Freezing): Apply check in Ada95 mode as well.
2037 (Make_DT): Add parameter to indicate when type has been frozen by an
2038 object declaration, for diagnostic purposes.
2039 (Build_Static_Dispatch_Tables): New subprogram that takes care of the
2040 construction of statically allocated dispatch tables.
2041 (Make_DT): In case of library-level tagged types export the declaration
2042 of the primary tag. Remove generation of tags (now done by Make_Tags).
2043 Additional modifications to handle non-static generation of dispatch
2044 tables. Take care of building tables for asynchronous interface types
2045 (Make_Tags): New subprogram that generates the entities associated with
2046 the primary and secondary tags of Typ and fills the contents of Access_
2047 Disp_Table. In case of library-level tagged types imports the forward
2048 declaration of the primary tag that will be declared later by Make_DT.
2049 (Expand_Interface_Conversion): In case of access types to interfaces
2050 replace an itype declaration by an explicit type declaration to avoid
2051 problems associated with the scope of such itype in transient blocks.
2053 2007-08-14 Robert Dewar <dewar@adacore.com>
2054 Ed Schonberg <schonberg@adacore.com>
2055 Javier Miranda <miranda@adacore.com>
2057 * exp_util.ads, exp_util.adb:
2058 This patch replaces a number of occurrences of explicit tests for N_Null
2059 with calls to Known_Null. This improves tracking of null values, since
2060 Known_Null also catches null constants, and variables currently known to
2061 be null, so we get better tracking.
2062 (Ensure_Defined): create an itype reference only in the scope of the
2064 (Side_Effect_Free): A selected component of an access type that
2065 denotes a component with a rep clause must be treated as not
2066 side-effect free, because if it is part of a linked structure its
2067 value may be affected by a renaming.
2068 (Expand_Subtype_From_Expr): For limited objects initialized with build
2069 in place function calls, do nothing; otherwise we prematurely introduce
2070 an N_Reference node in the expression initializing the object, which
2071 breaks the circuitry that detects and adds the additional arguments to
2072 the called function. Bug found working in the new patch for statically
2073 allocated dispatch tables.
2074 (Is_Library_Level_Tagged_Type): New subprogram.
2075 (Remove_Side_Effects): If the expression of an elementary type is an
2076 operator treat as a function call.
2077 (Make_Literal_Range): If the index type of the array is not integer, use
2078 attributes properly to compute the constraint on the resulting aggregate
2081 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a
2082 class-wide type whose base type is an incomplete private type, leave
2083 class-wide type unfrozen so that freeze nodes can be generated
2084 properly at a later point.
2085 (Freeze_Entity, array case): Handle case of pragma Pack and component
2086 size attributre clause for same array.
2088 2007-08-14 Vincent Celier <celier@adacore.com>
2090 * prj.ads, prj.adb: Update Project Manager to new attribute names for
2092 Allow all valid declarations in configuration project files
2093 (Reset): Initialize all tables and hash tables in the project tree data
2094 Major update of the Project Manager and of the project aware tools,
2095 including gprmake, so that the same sources in the GNAT repository
2096 can be used by gprbuild.
2097 (Slash_Id): Change type to be Path_Name_Type
2098 (Slash): Return a Path_Name_Type instead of a File_Name_Type
2100 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by
2102 Update Project Manager to new attribute names for ghprbuild
2103 Allow all valid declarations in configuration project files
2104 Major update of the Project Manager and of the project aware tools,
2105 including gprmake, so that the same sources in the GNAT repository
2106 can be used by gprbuild.
2109 Major update of the Project Manager and of the project aware tools,
2110 including gprmake, so that the same sources in the GNAT repository
2111 can be used by gprbuild.
2113 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2114 insensitive flag for attributes with optional index.
2115 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2116 array attribute, put the index in lower case.
2117 Update Project Manager to new attribute names for ghprbuild
2118 Allow all valid declarations in configuration project files
2119 Major update of the Project Manager and of the project aware tools,
2120 including gprmake, so that the same sources in the GNAT repository
2121 can be used by gprbuild.
2123 * prj-env.ads, prj-env.adb:
2124 Major update of the Project Manager and of the project aware tools,
2125 including gprmake, so that the same sources in the GNAT repository
2126 can be used by gprbuild.
2127 (Get_Reference): Change type of parameter Path to Path_Name_Type
2129 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after
2130 removing '-' from the path to start with the first character of the
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 Major update of the Project Manager and of the project aware tools,
2136 including gprmake, so that the same sources in the GNAT repository
2137 can be used by gprbuild.
2139 * prj-nmsc.ads, prj-nmsc.adb:
2140 Update Project Manager to new attribute names for ghprbuild
2141 Allow all valid declarations in configuration project files
2142 (Search_Directories): Detect subunits that are specified with an
2143 attribute Body in package Naming. Do not replace a source/unit in the
2144 same project when the order of the source dirs are known. Detect
2145 duplicate sources/units in the same project when the order of the
2146 source dirs are not known.
2147 (Check_Ada_Name): Allow all identifiers that are not reserved words
2149 Major update of the Project Manager and of the project aware tools,
2150 including gprmake, so that the same sources in the GNAT repository
2151 can be used by gprbuild.
2152 (Look_For_Sources): If the list of sources is empty, set the object
2153 directory of non extending project to nil.
2154 Change type of path name variables to be Path_Name_Type
2155 (Locate_Directory): Make sure that on Windows '/' is converted to '\',
2156 otherwise creating missing directories will fail.
2158 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb,
2159 prj-part.ads, prj-part.adb:
2160 Major update of the Project Manager and of the project aware tools,
2161 including gprmake, so that the same sources in the GNAT repository
2162 can be used by gprbuild.
2164 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case
2165 insensitive flag for attributes with optional index.
2166 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative
2167 array attribute, put the index in lower case.
2168 (Parse_Variable_Reference): Allow the current project name to be used in
2169 the prefix of an attribute reference.
2171 * prj-util.ads, prj-util.adb
2172 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index,
2173 defaulted to False. When True, always check against indexes in lower
2176 * snames.ads, snames.h, snames.adb:
2177 Update Project Manager to new attribute names for gprbuild
2178 Allow all valid declarations in configuration project files
2180 2007-08-14 Robert Dewar <dewar@adacore.com>
2181 Ed Schonberg <schonberg@adacore.com>
2183 * opt.ads: Warning for non-local exception propagation now off by
2185 New switch -gnatI to disable representation clauses
2186 Implement new pragma Implicit_Packing
2189 Warning for non-local exception propagation now off by default
2190 Add warning for unchecked conversion of pointers wi different
2192 New switch -gnatI to disable representation clauses
2194 * usage.adb: new switch -gnatyS
2196 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a
2197 note that aggregates of anonymous array types are not flagged.
2198 -gnatwc now includes membership tests optimized away
2199 -gnatw.x warnings are now off by default
2200 Added conditional compilation Appendix
2201 Add documentation of -gnatI
2202 Add documentation for new -gnatyS style check
2203 Update documentation about SAL and auto-init on Windows.
2206 Add documentation for pragma Check_Name and 'Enabled attribute
2207 Document that Eliminate on dispatching operation is ignored
2208 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root.
2209 Document pragma Main
2210 Document pragma Implicit_Packing
2212 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi
2213 different conventions
2214 New switch -gnatI to disable representation clauses
2216 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not
2217 recognized, report the invalid characters including "-gnat" instead of
2218 just the first character in the switch.
2219 New switch -gnatI to disable representation clauses
2220 Set Warn_On_Object_Renames_Function true for -gnatg
2222 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES
2223 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS
2224 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent
2225 to switch -aP (add directory to project search dir).
2227 * par-prag.adb: Implement new pragma Implicit_Packing
2229 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the
2230 type as having a non-standard representation, to force expansion on
2231 conversion to related types.
2232 (Analyze_Pragma): Warn on misspelled pragma
2233 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg
2234 Ensure consistent use of # in error messages
2235 Implement pragma Implicit_Packing
2237 2007-08-14 Olivier Hainque <hainque@adacore.com>
2238 Eric Botcazou <ebotcazou@adacore.com>
2240 * targtyps.c (get_target_maximum_default_alignment): New function.
2242 that the compiler might choose by default for a type or object.
2243 (get_target_default_allocator_alignment): New function. Alignment known
2244 to be honored by the target default allocator.
2245 (get_target_maximum_allowed_alignment): New function. Maximum alignment
2246 we might accept for any type or object on the target.
2247 (get_target_maximum_alignment): Now synonym of maximum_default_alignment
2249 * gigi.h (get_target_maximum_default_alignment): Declare new function.
2250 (get_target_default_allocator_alignment): Likewise.
2251 (get_target_maximum_allowed_alignment): Likewise.
2254 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the
2255 result of a function call, first try to use a stabilized reference for
2256 a constant renaming too.
2257 (validate_alignment): Use target_maximum_allowed_alignment instead of
2258 MAX_OFILE_ALIGNMENT as the upper bound to what we accept.
2259 (gnat_to_gnu_entity): Use common nodes directly.
2260 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate
2261 alignment and size for the object.
2262 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call
2263 and N_Procedure_Call_Statement.
2264 (takes_address): Rename to lvalue_required_p, add third parameter
2265 'aliased' and adjust recursive calls.
2266 <N_Indexed_Component>: Update 'aliased' from the array type.
2267 <N_Selected_Component>: New case.
2268 <N_Object_Renaming_Declaration>: New Likewise.
2269 (Identifier_to_gnu): Adjust for above changes.
2270 (maybe_stabilize_reference) <CONST_DECL>: New case.
2272 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion
2273 between type variants.
2274 (build_simple_component_ref): Likewise.
2275 (build_call_alloc_dealloc): Use target_default_allocator_alignment
2276 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super
2277 aligning type circuitry for allocations from the default storage pool.
2278 (build_allocator): Likewise.
2279 (build_simple_component_ref): Manually fold the reference for a
2280 constructor if the record type contains a template.
2282 * utils.c (value_zerop): Delete.
2283 (gnat_init_decl_processing): Emit debug info for common types.
2284 (rest_of_record_type_compilation): If a union contains a field
2285 with a non-constant qualifier, treat it as variable-sized.
2286 (finish_record_type): Give the stub TYPE_DECL a name.
2287 (rest_of_record_type_compilation): Likewise.
2288 (convert) <CONSTRUCTOR>: New case. Build a new constructor if
2289 types are equivalent array types.
2290 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable,
2291 even if the type is not passed by reference.
2292 (static_ctors, static_dtors): Delete.
2293 (end_subprog_body): Do not record constructors and destructors.
2294 (build_global_cdtor): Delete.
2295 (gnat_write_global_declarations): Do not call build_global_cdtor.
2297 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when
2298 -fRTS=rtp is specified.
2299 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is
2302 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name
2303 of the personality function with SJLJ exceptions.
2305 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for
2306 the name of the personality function with SJLJ exceptions.
2308 2007-08-14 Robert Dewar <dewar@adacore.com>
2309 Ed Schonberg <schonberg@adacore.com>
2311 * par.ads, par.adb: Improve handling of extra right parens.
2312 (Par): Remove flag From_Limited_With_Clause.
2314 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint
2315 Improve handling of extra right parens.
2317 2007-08-14 Robert Dewar <dewar@adacore.com>
2319 * par-tchk.adb (TF_Semicolon): Improve error recovery
2321 2007-08-14 Robert Dewar <dewar@adacore.com>
2322 Ed Schonberg <schonberg@adacore.com>
2324 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For
2325 enumeration type, mark all literals as referenced.
2326 (Eval_Attribute, case 'Image): If the argument is an enumeration
2327 literal and names are available, constant-fold but mark nevertheless as
2329 Clean up function names.
2330 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify
2332 (Requires_Simple_Name_Prefix): Removed.
2334 2007-08-14 Robert Dewar <dewar@adacore.com>
2335 Ed Schonberg <schonberg@adacore.com>
2337 * sem_ch11.adb: Improved warnings for unused variables
2339 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor
2340 is a synchronized interface, the derived type is limited.
2341 (Analyze_Object_Declaration): Mark the potential coextensions in the
2342 definition and expression of an object declaration node.
2343 (Build_Derived_Type): For the completion of a private type declaration
2344 with a derived type declaration, chain the parent type's representation
2345 items to the last representation item of the derived type (not the
2346 first one) if they are not present already.
2347 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete
2348 object declaration of forward references to tags.
2349 (Access_Subprogram_Declaration): In Ada2005, anonymous access to
2350 subprogram types can appear as access discriminants of synchronized
2352 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call
2353 given in prefixed form as a selected component.
2354 (Process_Discriminants): If not all discriminants have defaults, place
2355 error message on a default that is present.
2356 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to
2357 extend a synchronized tagged type.
2358 Improved warnings for unused variables
2359 (Is_Visible_Component): Fix a visibility hole on a component inherited
2360 by a private extension when parent is itself declared as a private
2361 extension, and the derivation is in a child unit.
2362 (Find_Hidden_Interface): Move spec from the package body.
2364 2007-08-14 Robert Dewar <dewar@adacore.com>
2365 Ed Schonberg <schonberg@adacore.com>
2367 * sem_ch5.adb: Improve warnings on redundant assignments
2369 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk
2371 (Is_Synchronized_Tagged_Type): New subprogram that returns true
2372 in case of synchronized tagged types (AARM 3.9.4 (6/2)).
2373 (Safe_To_Capture_Value): Can now return True for constants, even if Cond
2374 is set to False. Improves handling of Known_[Not_]Null.
2375 (Wrong_Type): Special case address arithmetic attempt
2376 (Collect_Abstract_Interfaces): Add new formal to allow collecting
2377 abstract interfaces just using the partial view of private types.
2378 (Has_Abstract_Interfaces): Add new formal to allow checking types
2379 covering interfaces using the partial view of private types.
2380 (Is_Fully_Initialized_Type): Special VM case for uTag component. This
2381 component still needs to be defined in this case, but is never
2382 initialized as VMs are using other dispatching mechanisms.
2383 (Abstract_Interface_List): For a protected type, use base type to get
2385 Improve warnings on redundant assignments
2386 (Is_Variable): Handle properly an implicit dereference of a prefixed
2388 (Build_Actual_Subtype): If this is an actual subtype for an
2389 unconstrained formal parameter, use the sloc of the body for the new
2390 declaration, to prevent anomalises in the debugger.
2392 2007-08-14 Robert Dewar <dewar@adacore.com>
2394 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for
2395 dispatching operation
2397 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2398 Gary Dismukes <dismukes@adacore.com>
2401 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place
2402 expanded aggregate code before allocator, and ahead of declaration for
2403 temporary, to prevent access before elaboration when the allocator is
2404 an actual for an access parameter.
2405 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing
2406 the TSD and the table of interfaces.
2407 (Convert_To_Assignments): Augment the test for delaying aggregate
2408 expansion for limited return statements to include the case of extended
2409 returns, to prevent creation of an unwanted transient scope.
2410 (Is_Static_Dispatch_Table_Aggregate): New subprogram.
2411 (Expand_Array_Aggregate): Handle aggregates associated with
2412 statically allocated dispatch tables.
2413 (Expand_Record_Aggregate): Handle aggregates associated with
2414 statically allocated dispatch tables.
2415 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators
2416 of anonymous access type.
2418 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2420 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment
2421 is a variable that renames a slice, use the variable itself in the
2422 expannsion when the renamed expression itself may be modified between
2423 the declaration of the renaming and the array assignment.
2425 2007-08-14 Jerome Guitton <guitton@adacore.com>
2427 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
2428 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
2429 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks):
2430 New functions; dummy implementations.
2432 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New
2433 functions, used to implement the multi-tasks mode routines on VxWorks.
2435 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop):
2437 binding to the VxWorks routines which have changed between VxWorks 5
2439 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines
2440 which are not callable from a RTP.
2442 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions,
2443 implemented for the multi-tasks mode on VxWorks 5 and 6.
2445 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions.
2447 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New
2450 2007-08-14 Vincent Celier <celier@adacore.com>
2452 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb,
2453 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb
2454 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb,
2455 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
2456 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
2457 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb,
2458 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New
2460 (Major_Id_Name): New function.
2461 mlib-tgt.ads/mlib.tgt.adb:
2462 (Library_Major_Minor_Id_Supported): New function, default returns True
2463 Most mlib-tgt-*.adb that support shared libraries and symbolic links:
2464 (Build_Dynamic_Library): Add support for major/minor ids for shared libs
2465 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi):
2466 Implementation of Library_Major_Minor_Id_Supported returns False
2468 (Clean_Library_Directory): If major/minor ids are supported, clean all
2470 Major update of the Project Manager and of the project aware tools,
2471 including gprmake, so that the same sources in the GNAT repository
2472 can be used by gprbuild.
2474 2007-08-14 Olivier Hainque <hainque@adacore.com>
2476 * system-solaris-x86.ads (ZCX_By_Default): Switch to True.
2477 (GCC_ZCX_Support): Switch to True.
2479 * s-intman-solaris.adb (Notify_Exception): Call
2480 Adjust_Context_For_Raise before raising, as expected for signal
2481 handlers in general.
2483 * s-intman-posix.adb (Notify_Exception): Remove declaration of
2484 Adjust_Context_For_Raise, moved to the spec of this unit to be visible
2485 to other implementation bodies.
2487 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to
2488 be visible by multiple implementation bodies.
2490 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context
2491 only for conditions coming from hardware.
2492 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement,
2493 adjustments to signal context prior to exception raise from signal
2495 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP
2497 Solaris section: (__gnat_adjust_context_for_raise): New function.
2498 Implementation of the machine context adjustments to perform prior to
2499 raise from a signal handler. Version for both sparc and x86.
2500 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define.
2501 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it
2502 prior to raising as expected for any handler, before possible nested
2503 faults to make sure all the contexts in a chain have been adjusted by
2504 the time we propagate.
2506 2007-08-14 Pascal Obry <obry@adacore.com>
2508 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows.
2509 (SYSTEM_INFO): New record.
2510 (SetThreadIdealProcessor): New imported routine needed for supporting
2511 task_info pragma on Windows.
2513 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task
2514 info can be applied to the current host.
2515 (Create_Task): Set the ideal processor if information is present.
2517 * s-tasinf-mingw.adb, s-tasinf-mingw.ads,
2518 a-exetim-mingw.adb, a-exetim-mingw.ads: New files.
2520 2007-08-14 Olivier Hainque <hainque@adacore.com>
2522 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the
2523 stack size and initial stack pointer value for a given task.
2524 (Enter_Task): Get the stack attributes of the task we are entering and
2525 let the stack checking engine know about them.
2527 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram.
2528 Let the stack-checking engine know about the initial sp value and stack
2529 size associated with the current task.
2530 (Set_Stack_Info): If a stack base has been notified for the current
2531 task, honor it. Fallback to the previous less accurate method otherwise.
2533 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body.
2535 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2537 * sem_ch10.adb: Create a limited view of an incomplete type, to make
2538 treatment of limited views uniform for all visible declarations in a
2539 limited_withed package.
2540 Set flag indicating that a subprogram body for a child unit has a
2542 (Analyze_Compilation_Unit): If unit is a subprogram body that has no
2543 separate declaration, remove the unit name from visibility after
2544 compilation, so that environment is clean for subsequent compilations.
2545 (Install_Limited_Context_Clauses): Do not install a
2546 limited_private_with_clause unless the current unit is a body or a
2548 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units
2549 in the same fashion.
2550 (Install_Limited_Withed_Unit): Do not install a limited with clause if
2551 it applies to the declaration of the current package body.
2552 (Remove_Private_With_Clauses): If there is a regular with_clause for
2553 the unit, delete Private_With_Clause from context, to prevent improper
2554 hiding when processing subsequent nested packages and instantiations.
2556 2007-08-14 Jose Ruiz <ruiz@adacore.com>
2558 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept
2559 dir/file, device:/dir/file, and device:drive_letter:/dir/file as
2560 representing absolute path names.
2561 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues.
2563 * cstreams.c (__gnat_full_name for VxWorks): Use
2564 __gnat_is_absolute_path to detect whether we need to add the current
2565 directory to normalize the path.
2567 2007-08-14 Javier Miranda <miranda@adacore.com>
2570 a-tags.adb (Displace): Associate a message with the raised CE
2572 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr,
2573 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr,
2574 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package
2576 (Default_Prim_Op_Count): Removed.
2577 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind,
2578 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind):
2579 Remove pragma Inline_Always.
2581 * rtsfind.ads (Default_Prim_Op_Count): Removed
2582 (Max_Predef_Prims): New entity
2583 (RE_Expanded_Name): Removed
2584 (RE_HT_Link): Removed
2585 (RE_Iface_Tag): Remmoved
2586 (RE_Ifaces_Table): Removed
2587 (RE_Interfaces_Array): Removed
2588 (RE_Interface_Data_Element): Removed
2589 (RE_Nb_Ifaces): Removed
2590 (RE_RC_Offset): Removed
2591 (RE_Static_Offset_To_Top): Removed
2593 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new
2595 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_
2596 Prim_Op_Count by Max_Predef_Prims.
2598 2007-08-14 Thomas Quinot <quinot@adacore.com>
2599 Vincent Celier <celier@adacore.com>
2601 * binde.adb (Elab_All_Links): Remove unnecessary call to
2602 Generic_Separately_Compiled (if a unit satisfies this predicate, there
2603 won't be an associated Afile).
2604 (Elab_All_Links): Fail if a referenced unit cannot be found
2607 Fix comments in bindgen regarding consistency checks done in Bcheck:
2608 the checks are made across units within a partition, not across several
2610 Fix generation of C binder file for VxWorks.
2612 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to
2613 Generic_May_Lack_ALI, more descriptive of the current use of the
2614 predicate, and update documentation.
2616 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code
2617 reorganization and documentation update for the case of predefined
2618 library generics (for which we do not reference an Afile).
2620 2007-08-14 Robert Dewar <dewar@adacore.com>
2622 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads,
2623 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads,
2624 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb,
2625 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb,
2626 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb,
2627 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads,
2628 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads,
2629 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb,
2630 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads,
2631 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb,
2632 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads,
2633 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads,
2634 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads,
2635 g-altcon.adb: Minor reformatting
2637 ada-tree.h: Delete empty line.
2639 ali.ads: Minor reformatting
2640 Clarification of comments.
2641 Minor spelling correction
2643 * exp_dbug.adb: Add Warnings Off to suppress new warning
2645 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2648 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old
2651 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from
2653 * a-textio.ads: Reorder the standard input/output/error declarations
2656 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call
2658 * par-ch2.adb: Recognize RM specially in errout
2659 Change 'R'M to RM in all error messages
2661 * scng.adb: Recognize RM specially in errout
2663 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename
2664 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology.
2666 * s-direio.adb: Add missing routine header box.
2668 * sem_attr.ads: Add ??? comments
2670 * sem_eval.adb: Recognize RM specially in errout
2671 Change 'R'M to RM in all error messages
2673 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes
2675 * s-tasinf.ads: Fix minor comment typo.
2677 * a-cihama.adb: Minor comment addition
2679 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode
2682 * s-tasinf-tru64.ads: Fix minor comment typo.
2684 * itypes.ads: Comment update.
2686 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed
2689 * argv.c: Added protection against null gnat_argv and gnat_envp.
2691 * bcheck.adb (Check_Consistency): Use correct markup character ({) in
2692 warning message when Tolerate_Consistency_Errors is True.
2694 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for
2695 Any_Id, as this subprogram is only applicable to *type* entities (it
2696 sets RM_Size). Instead initialize just Esize and Alignment.
2698 2007-08-14 Bob Duff <duff@adacore.com>
2700 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
2701 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
2702 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads,
2703 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
2704 a-coorse.ads (Next): Applied pragma Inline.
2705 Make all Containers packages Remote_Types (unless they are already
2707 (Previous): applied pragma Inline
2708 (Elements_Type): is now a record instead of an array
2710 2007-08-14 Thomas Quinot <quinot@adacore.com>
2712 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms
2714 (Set_Item): When the new item is an element of the currently allocated
2715 table passed by reference, save a copy on the stack if we're going
2716 to reallocate. Also, in Table.Set_Item, make sure we test the proper
2717 variable to determine whether to call Set_Last.
2719 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb,
2720 symbols-vms.adb, symbols-processing-vms-alpha.adb,
2721 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace
2722 some occurrences of the pattern
2724 T.Table (T.Last) := Value;
2725 with a cleaner call to
2728 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2729 Gary Dismukes <dismukes@adacore.com>
2730 Thomas Quinot <quinot@adacore.com>
2732 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a
2733 derived type with interface progenitors use the analyzed formal as the
2734 parent of the actual, to create renamings for all the inherited
2735 operations in Derive_Subprograms.
2736 (Collect_Previous_Instances): new procedure within of
2737 Load_Parent_Of_Generic, to instantiate all bodies in the compilation
2738 unit being loaded, to ensure that the generation of global symbols is
2739 consistent in different compilation modes.
2740 (Is_Tagged_Ancestor): New function testing the ancestor relation that
2741 takes progenitor types into account.
2742 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by
2743 traversing over the primitives of the formal and actual types to locate
2744 any abstract subprograms of the actual type that correspond to a
2745 nonabstract subprogram of the formal type's ancestor type(s), and issue
2746 an error if such is found.
2747 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation,
2748 Instantiate_Package_Body, Instantiate_Subprogram_Body):
2749 Remove bogus guard around calls to Inherit_Context.
2750 (Reset_Entity): If the entity is the selector of a selected component
2751 that denotes a named number, propagate constant-folding to the generic
2752 template only if the named number is global to the generic unit.
2753 (Set_Instance_Env): Only reset the compilation switches when compiling
2754 a predefined or internal unit.
2756 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2758 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first
2759 parameter to determine whether operation applies to the prefix.
2760 (Complete_Object_Operation): If actual has an access type and
2761 controlling formal is not an in_parameter, reject the actual if it is
2762 an access_to_constant type.
2763 (Try_Primitive_Operation): If the type of the prefix is a formal tagged
2764 type, the candidate operations are found in the scope of declaration of
2765 the type, because the type has no primitive subprograms.
2766 (Analyze_Selected_Component): If prefix is class-wide, and root type is
2767 a private extension, only examine visible components before trying to
2768 analyze as a prefixed call.
2769 Change Entity_List to Type_To_Use, for better readability.
2770 (Has_Fixed_Op): Use base type when checking whether the type of an
2771 operator has a user-defined multiplication/division
2772 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when
2773 user-defined operators are available for fixed-point types.
2775 2007-08-14 Thomas Quinot <quinot@adacore.com>
2776 Ed Schonberg <schonberg@adacore.com>
2778 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New
2779 formal At_Any_Place indicating, when True, that we want to test for
2780 availability of the stream attribute at any place (as opposed to the
2781 current visibility context only).
2782 (Missing_Read_Write_Attributes): A stream attribute is missing for the
2783 purpose of enforcing E.2.2(8) only if it is not available at any place.
2784 Take into account the Ada2005 pragma Has_Preelaborable_Initialization
2785 when checking the legality of an extension aggregate in a preelaborable
2786 package. Treat the literal null as a valid default expression in a
2787 component declaration for a type with preelaborable initialization.
2788 A limited interface is a legal progenitor for the designated type of a
2789 remote access to class-wide type.
2791 2007-08-14 Thomas Quinot <quinot@adacore.com>
2792 Ed Schonberg <schonberg@adacore.com>
2794 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute
2795 reference): Use correct entity as denoted entity for the selector of
2797 (Find_Direct_Name): Add comment about Generate_Reference incorrectly
2798 setting the Referenced_As_LHS flag for entities that are implicitly
2800 (Find_Type): If the type is an internally generated incomplete type,
2801 mark the full view as referenced, to prevent spurious warnings.
2802 (Find_Selected_Component, Has_Components): Handle properly non-limited
2803 views that are themselves incomplete types.
2804 Handle interfaces visible through limited-with clauses.
2805 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a
2806 subprogram generic actual for which we have generated a renaming.
2807 Warn when the renaming introduces a homonym of
2808 the renamed entity, and the renamed entity is directly visible.
2810 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2811 Hristian Kirtchev <kirtchev@adacore.com>
2813 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that
2814 appear in the subtree to the current allocator if it is not a static
2816 (Resolve_Allocator): Perform cleanup if resolution has determined that
2817 the allocator is not a coextension.
2818 (Resolve): Skip an interpretation hidden by an abstract operator only
2819 when the type of the interpretation matches that of the context.
2820 (Resolve): When looping through all possible interpretations of a node,
2821 do not consider those that are hidden by abstract operators.
2822 (Resolve_Actuals): When verifying that an access to class-wide object
2823 is an actual for a controlling formal, ignore anonymous access to
2824 subprograms whose return type is an access to class_wide type.
2825 (Resolve_Slice): If the prefix of the slice is a selected component
2826 whose type depends on discriminants, build its actual subtype before
2827 applying range checks on the bounds of the slice.
2828 (Valid_Conversion): In an instance or inlined body, compare root types,
2829 to prevent anomalies between private and public views.
2830 (Resolve): Improve error message for ambiguous fixed multiplication
2831 expressions that involve universal_fixed multiplying operations.
2833 2007-08-14 Javier Miranda <miranda@adacore.com>
2834 Hristian Kirtchev <kirtchev@adacore.com>
2836 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source
2837 location to allow the correct generation of errors in case of
2838 restrictions applied to the expanded code.
2839 (Expand_Entry_Barrier): Remove all generated renamings for a barrier
2840 function if the condition does not reference them.
2841 (Expand_Entry_Body_Declarations): Mark the index constant as having a
2844 2007-08-14 Thomas Quinot <quinot@adacore.com>
2846 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating
2847 typecode parameters for a union (in a variant record), remove
2848 extraneous layer of Any wrapping for member label.
2849 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has
2850 elabration statements, register the package with the name server
2851 at the beginning, not at the end, of the elaboration statements so
2852 that they can create remote access to subprogram values that designate
2853 remote subprograms from the package.
2855 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
2857 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time
2858 values to compute the number of seconds since the Unix Epoc in order to
2859 account for Daylight Savings Time. Perform special processing for dates
2860 that are earlier than the Unix Epoc to obtain a negative number.
2862 2007-08-14 Emmanuel Briot <briot@adacore.com>
2864 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing
2867 2007-08-14 Eric Botcazou <ebotcazou@adacore.com>
2869 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the
2870 binder-generated file is not in Ada.
2871 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been
2872 recorded in the ALI file.
2873 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded.
2875 2007-08-14 Vincent Celier <celier@adacore.com>
2877 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value
2878 (Output_Source): Do nothing if parameter is No_Sdep_Id
2880 * make.adb (Gnatmake): Do not rebuild an archive simply because a
2881 shared library it imports has a later time stamp.
2882 (Check): Resolve the symbolic links in the path name of the object
2884 Check that the ALI file is in the correct object directory
2885 Check if a file name does not correspond to the mapping of units
2887 (Display_Version): New procedure
2888 (Initialize): Process switches --version and --help
2889 Use type Path_Name_Type for path name
2891 2007-08-14 Paul Hilfinger <hilfinger@adacore.com>
2893 * impunit.adb: Re-organize System.Random_Numbers and
2894 GNAT.Random_Numbers and add to builds.
2896 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert*
2898 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files.
2900 * a-assert.ads, a-assert.adb: New files.
2902 2007-08-14 Gary Dismukes <dismukes@adacore.com>
2904 * layout.adb (Layout_Type): In the case of access-to-subprogram types,
2905 if AAMP_On_Target is True, then the size of the type encompasses two
2906 addresses (a static link and a subprogram address), except in the case
2907 of library-level access types.
2909 2007-08-14 Vincent Celier <celier@adacore.com>
2911 * output.ads, output.adb (Write_Eol): Remove trailing spaces before
2913 (Write_Eol_Keep_Blanks): New procedure to write a line, including
2914 possible trailing spaces.
2915 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line
2917 2007-08-14 Javier Miranda <miranda@adacore.com>
2919 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with
2920 null-excluding access types.
2922 2007-08-14 Javier Miranda <miranda@adacore.com>
2924 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code
2925 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case
2926 of private types add missing check on matching interfaces in the
2927 partial and full declarations.
2928 (Analyze_Protected_Type): Code cleanup.
2929 (Analyze_Task_Type): Code cleanup.
2931 2007-08-14 Javier Miranda <miranda@adacore.com>
2933 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a
2934 generated interface thunk.
2936 2007-08-14 Ed Schonberg <schonberg@adacore.com>
2938 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent
2939 obsolescent warning on application of 'Class to an incomplete type.
2941 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to
2942 prevent obsolescent warning on application of 'Class to an incomplete
2945 2007-08-14 Pascal Obry <obry@adacore.com>
2947 * s-fileio.adb (Is_Open): Add check for usability of the underlying
2950 2007-08-14 Cyrille Comar <comar@adacore.com>
2952 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent
2953 since it is potentially used in cases implying double finalization of
2956 2007-08-14 Jose Ruiz <ruiz@adacore.com>
2958 * s-tasini.adb (Get_Stack_Info): Move this function to
2959 System.Soft_Links.Tasking because it is common to the full and the
2960 restricted run times.
2961 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done
2962 in SSL.Tasking.Init_Tasking_Soft_Links.
2964 * s-solita.adb (Get_Stack_Info): Function moved from
2965 System.Tasking.Initialization because it is common to the full and the
2966 restricted run times.
2967 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info.
2969 2007-08-14 Arnaud Charlet <charlet@adacore.com>
2971 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb,
2972 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort.
2973 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort
2976 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow
2979 2007-08-14 Gary Dismukes <dismukes@adacore.com>
2981 * s-veboop.adb (SU): New named number initialized to
2982 System.Storage_Unit.
2983 (True_Val): The initialization expression is revised to use SU (=
2984 Storage_Unit) rather than assuming 8 for the component size of an
2985 unpacked Boolean array.
2987 2007-08-14 Tristan Gingold <gingold@adacore.com>
2989 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium.
2991 * tb-ivms.c: New file.
2993 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2
2995 2007-08-14 Geert Bosch <bosch@adacore.com>
2997 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads,
2998 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads:
2999 Add required linker pragmas for automatically linking with the gnalasup
3000 linear algebra support library, and the systems math library.
3001 Rename cdot to cdotu and zdot to zdotu.
3002 Update header comment to describe purpose of package.
3004 2007-08-14 Thomas Quinot <quinot@adacore.com>
3006 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has
3007 an explicitly specified Associated_Final_Chain, use that list.
3008 (Expand_N_Package_Body): Build dispatch tables of library level tagged
3010 (Expand_N_Package_Declaration): Build dispatch tables of library level
3011 tagged types. Minor code cleanup.
3013 2007-08-14 Vincent Celier <celier@adacore.com>
3015 * gnatchop.adb (Terminate_Program): Remove exception and use
3016 Types.Terminate_Program instead.
3018 * osint.ads, osint.adb (Current_Exit_Status): New global variable
3019 (Find_Program_Name): Added protection against empty name.
3020 (OS_Exit_Through_Exception): New procedure
3022 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body
3023 (OS_Exit_Default): New procedure that contains the previous
3024 implementation of procedure OS_Exit.
3025 (Final_Value): Remove obsolete Interix stuff.
3027 2007-08-14 Thomas Quinot <quinot@adacore.com>
3029 * g-socket.ads: Reorganize example code so that it also works on
3032 2007-08-14 Tristan Gingold <gingold@adacore.com>
3034 * g-trasym.ads: AIX now supports symbolic backtraces.
3036 2007-08-14 Ed Schonberg <schonberg@adacore.com>
3038 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of
3039 units being loaded to detect circularities. A circularity may be
3040 present even if the current chain of pending units to load starts from
3041 a limited_with_clause.
3043 * lib-load.ads: Change profile of Load_Unit to use a with_clause
3044 rather than a boolean flag, in order to detect circularities in
3047 * par-load.adb: Use current with_clause in calls to Load_Unit, rather
3048 than propagating the From_Limited_With flag, in order to handle
3049 properly circularities involving with_clauses.
3051 2007-08-14 Nicolas Setton <setton@adacore.com>
3053 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate
3056 2007-08-14 Arnaud Charlet <charlet@adacore.com>
3058 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects
3059 to build for libgnala.
3060 libgnat: Add rules to build libgnala.a
3061 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from
3062 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5.
3063 Add s-osinte-vxworks-kernel.adb to the target pairs of the
3064 kernel run-time lib for VxWorks 6, which would provide a different
3065 implementation for Task_Cont and Task_Stop than the VxWorks 5 version.
3066 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now
3067 running ZCX by default.
3068 Add g-sttsne-locking to LynxOS version.
3069 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead.
3070 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads.
3072 * system-darwin-x86.ads: New file.
3074 * Make-lang.in: Delete files before copying onto them, so if they are
3075 read-only, the copy won't fail.
3078 2007-08-14 Pascal Obry <obry@adacore.com>
3080 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries
3083 2007-08-14 Vincent Celier <celier@adacore.com>
3085 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access
3086 (Gcc): Initialize Gcc_Name at the first call
3088 2007-08-14 Ed Schonberg <schonberg@adacore.com>
3090 * sem_ch7.adb (Analyze_Package_Specification): Do not install private
3091 with_clauses of the enclosing unit when analyzing the package
3092 specification of a nested instance.
3094 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
3096 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed.
3097 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines.
3098 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the
3099 layout of N_Allocator.
3101 2007-08-14 Thomas Quinot <quinot@adacore.com>
3103 * rtsfind.adb (Check_RPC): Add PCS version check.
3105 * gnatvsn.ads, gnatvsn.adb: Add PCS version.
3106 (Gnat_Free_Software): New function.
3108 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns
3109 the PCS_Version value from s-parint, used to check that it is consistent
3110 with what exp_dist expects.
3112 * s-parint.ads (PCS_Version): New entity for checking consistency
3113 between exp_dist and PCS.
3115 * gen-soccon.c: (SO_REUSEPORT): New constant.
3117 2007-08-14 Hristian Kirtchev <kirtchev@adacore.com>
3119 * a-calfor.adb (Image (Duration; Boolean)): Change type of local
3120 variable Sub_Second to Duration in order to accomodate a larger range
3121 of arithmetic operations.
3123 2007-08-14 Bob Duff <duff@adacore.com>
3125 * g-sttsne-locking.ads: Move comments from spec to body.
3126 * g-sttsne-locking.adb: Move comments from spec to body.
3127 * g-sttsne-vxworks.ads: Removed.
3128 * g-sttsne-vxworks.adb: Removed.
3130 2007-08-11 Ian Lance Taylor <iant@google.com>
3132 * misc.c (gnat_get_alias_set): Change return type to
3135 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3137 * decl.c, utils2.c: Fix whitespace in last change.
3139 2007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3141 * decl.c (compare_field_bitpos): Constify.
3142 * utils2.c (compare_elmt_bitpos): Likewise.
3144 2007-07-27 Aurelien Jarno <aurelien@aurel32.net>
3146 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by
3147 anonymous access type.
3148 (pthread_sigmask): Now take an access sigset_t.
3150 2007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com>
3152 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask.
3154 2007-06-21 Eric Botcazou <ebotcazou@adacore.com>
3156 PR tree-optimization/25737
3157 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0.
3159 2007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com>
3161 * trans.c (Attribute_to_gnu): When subtracting an
3162 offset from a pointer, use POINTER_PLUS_EXPR with
3163 NEGATE_EXPR instead of MINUS_EXPR.
3164 (gnat_to_gnu): Likewise.
3165 * utils.c (convert): When converting between
3166 thin pointers, use POINTER_PLUS_EXPR and sizetype
3168 * utils2.c (known_alignment): POINTER_PLUS_EXPR
3169 have the same semantics as PLUS_EXPR for alignment.
3170 (build_binary_op): Add support for the semantics of
3171 POINTER_PLUS_EXPR's operands.
3172 When adding an offset to a pointer, use POINTER_PLUS_EXPR.
3174 2007-06-11 Rafael Avila de Espindola <espindola@google.com>
3176 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead
3177 of get_signed_or_unsigned_type.
3178 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove.
3180 2007-06-11 Bob Duff <duff@adacore.com>
3181 Thomas Quinot <quinot@adacore.com>
3183 * g-stsifd-sockets.adb (Create): Work around strange behavior of
3184 'bind' on windows that causes 'connect' to fail intermittently, by
3185 retrying the 'bind'.
3186 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3188 2007-06-10 Duncan Sands <baldrick@free.fr>
3190 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather
3191 than to void, for the fields when making a new fat pointer type.
3192 (gnat_substitute_in_type): Now substitute_in_type.
3193 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls.
3194 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge.
3195 * utils.c (update_pointer_to): Update fat pointers by updating the
3196 dummy node pointers used for the fields.
3198 2007-06-06 Thomas Quinot <quinot@adacore.com>
3199 Bob Duff <duff@adacore.com>
3201 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:,
3202 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
3203 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new
3204 constant Thread_Blocking_IO, always True by default, set False
3205 on a per-runtime basis.
3206 (Need_Netdb_Buffer): New constant.
3208 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads,
3209 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New
3212 * g-socthi-vxworks.ads, g-socthi-vxworks.adb,
3213 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname,
3214 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new
3215 child package Task_Safe_NetDB
3216 (Host_Error_Messages): Add stub body.
3217 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3219 * g-soccon-mingw.ads: Add Windows-specific constants.
3220 (Need_Netdb_Buffer): New constant.
3221 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada
3222 wrapper and import inet_addr(3) from the standard sockets library
3224 (In_Addr): Add alignment clause.
3225 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
3227 2007-06-06 Robert Dewar <dewar@adacore.com>
3229 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
3230 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb,
3231 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads,
3232 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb,
3233 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb,
3234 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb,
3235 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb,
3236 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb,
3237 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb,
3238 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb,
3239 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb,
3240 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb,
3241 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads,
3242 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
3243 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
3244 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb,
3245 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb,
3246 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb,
3247 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb,
3248 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb,
3249 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb,
3250 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb,
3251 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb,
3252 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb,
3253 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb,
3254 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb,
3255 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb,
3256 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb,
3257 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb,
3258 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads,
3259 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb,
3260 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace
3261 Unchecked_* by Ada.Unchecked_*
3263 2007-06-06 Robert Dewar <dewar@adacore.com>
3265 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb,
3266 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb,
3267 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads,
3268 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads,
3269 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
3270 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate.
3272 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb,
3273 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads,
3274 s-tasloc.adb, s-tasloc.ads: New files.
3276 2007-06-06 Bob Duff <duff@adacore.com>
3279 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid.
3280 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string.
3281 (Send_Signal, Close): Raise Invalid_Process if the process id is
3283 (Pattern_Matcher_Access): Is now a general access type to be able to
3286 2007-06-06 Thomas Quinot <quinot@adacore.com>
3287 Arnaud Charlet <charlet@adacore.com>
3289 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change
3290 (SIGEMT is now used instead of SIGTERM on AIX).
3292 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads.
3293 (Time_Slice_Supported): Set to True.
3294 Use SIGEMT instead of SIGTERM as SIGADAABORT.
3296 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
3298 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-"
3299 (Time, Time)): Use To_Relative_Time rather than manual calculation to
3300 express the bounds of Duration as Time. Raise Time_Error when the
3301 result is greater or equal to the higher bound of Duration (on the
3303 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant
3305 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant
3307 ("-" (Time, Time)): Reorder code.
3308 (All_Leap_Seconds): Removed.
3309 (Arithmetic_Operations.Add): Remove sign related kludge.
3310 (Arithmetic_Operations.Difference): Control the leaps seconds processing
3311 with flag Leap_Support.
3312 (Arithmetic_Operations.Subtract): Remove sign related kludge.
3313 (Check_Within_Time_Bounds): New procedure.
3314 (Clock): Control the leap seconds processing with flag Leap_Support.
3315 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds.
3316 (Formatting_Operations.Split): Control the leap seconds processing with
3318 (Formatting_Operations.Time_Of): Control the leaps seconds processing
3319 with flag Leap_Support. Adjust the year, month and day (if applicable)
3320 when the value of day seconds designates a new day.
3321 (Split): Use parameter associations for better readability. Integrate
3323 (Time_Of): Use parameter associations for better readability. Integrate
3326 * a-calfor.adb (Split): Use parameter associations for better
3327 readability. Integrate flag Is_Ada_05.
3328 (Time_Of): Remove flag Leap_Checks. Use parameter associations for
3329 better readability. Integrate flag Is_Ada_05.
3331 2007-06-06 Arnaud Charlet <charlet@adacore.com>
3333 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb,
3334 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb,
3335 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb,
3336 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads,
3337 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb,
3338 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb,
3339 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads,
3340 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads,
3341 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads,
3342 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb,
3343 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base
3344 time when entering this routine to detect a backward clock setting
3345 (manual setting or DST adjustment), to avoid waiting for a longer delay
3347 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant.
3348 Remove handling of deferred priority change, and replace by setting the
3349 task priority directly, as required by AI-188.
3351 (Max_Task_Image_Length): New constant.
3352 Replace Warnings (Off) by Unreferenced pragma, cleaner.
3353 (Dynamic_Priority_Support): Removed, no longer needed.
3354 (Poll_Base_Priority_Change): Ditto.
3355 (Set_Ceiling): Add this procedure to change the ceiling priority
3356 associated to a lock. This is a dummy implementation because dynamic
3357 priority ceilings are not supported by the underlying system.
3359 * a-dynpri.adb (Set_Priority): Take into account case where Target is
3360 accepting a RV with its priority boosted.
3361 Remove handling of deferred priority change, and replace by setting the
3362 task priority directly, as required by AI-188.
3364 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for
3366 Remove handling of deferred priority change, and replace by setting the
3367 task priority directly, as required by AI-188.
3368 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state
3371 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion.
3372 (Poll_Base_Priority_Change): Removed.
3373 Code clean up: use SSL.Current_Target_Exception.
3375 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks
3376 to run as this is a potentially dispatching point.
3377 (Call_Synchronous): Use Local_Defer_Abort.
3378 (Callable): Relax assertion.
3379 (Selective_Wait): Relax assertion in case abort is not allowed.
3380 Remove handling of deferred priority change, and replace by setting the
3381 task priority directly, as required by AI-188.
3383 * s-tasuti.adb (Make_Passive): Adjust assertions.
3384 Remove handling of deferred priority change, and replace by setting the
3385 task priority directly, as required by AI-188.
3387 2007-06-06 Arnaud Charlet <charlet@adacore.com>
3389 * system-vxworks-sparcv9.ads, system-solaris-x86.ads,
3390 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
3391 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
3392 system-vxworks-mips.ads, system-vxworks-alpha.ads,
3393 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads,
3394 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads,
3395 system-interix.ads, system-linux-hppa.ads, system-tru64.ads,
3396 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads,
3397 system-solaris-sparcv9.ads, system-vms.ads, system.ads,
3398 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads,
3399 system-linux-ia64.ads: Document mapping between Ada and OS priorities.
3400 This patch changes the largest non-binary modulus from 2**31-1 to
3402 (Compiler_System_Version): Removed, no longer used.
3403 Clean up system files by removing flags only used on a single target.
3404 Also remove obsolete flags, only used during bootstrap from system.ads
3405 (Address): Add a pragma Preelaborable_Initialization.
3407 * system-aix.ads: Ditto.
3408 (GCC_ZCX_Support): Set to true.
3409 Update priority range on AIX and map Ada priorities to target
3410 priorities appropriately for different scheduling policies.
3412 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1
3414 2007-06-06 Vincent Celier <celier@adacore.com>
3416 * mlib-tgt-specific.adb, mlib-tgt-specific.ads,
3417 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files.
3419 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb,
3420 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb,
3421 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb,
3422 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
3423 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package
3424 MLib.Tgt, containing the default versions of the exported subprograms.
3425 For each platform, create a specific version of the body of new child
3426 package MLib.Tgt.Specific that contains only the body of subprograms
3427 that are different from the default.
3428 (Archive_Builder_Append_Options): New function.
3430 2007-06-06 Matthew Gingell <gingell@adacore.com>
3432 * s-osinte-aix.adb: Map Ada priorities to target priorities
3433 appropriately for different scheduling policies.
3435 2007-06-06 Arnaud Charlet <charlet@adacore.com>
3437 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely
3439 Remove references to Unchecked_Conversion, and use Ada.xxx instead.
3440 Replace Unchecked_Conversion by Ada.Unchecked_Conversion.
3442 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
3444 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure.
3445 Noop on VMS, added for interface commonality.
3447 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
3448 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3449 Olivier Hainque <hainque@adacore.com>
3451 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the
3452 renamed expression of a full renaming at toplevel.
3453 (gnat_to_gnu_entity, case object): If not defining, do not look inside
3454 the values the constant is initialized to if it is an N_Allocator.
3455 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the
3456 TYPE_SIZE_UNIT of inner types after the stride is elaborated.
3457 (make_aligning_type): Accept an extra ROOM argument for storage to be
3458 made available before the aligned field, and an extra BASE_ALIGN
3459 argument for callers to pass the alignment guaranteed to be honored for
3460 the whole aligning object. Avoid call to finish_record_type, which only
3461 interferes with the sizes we want to set.
3462 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to
3463 make_aligning_type for super-aligned objects on stack.
3464 (components_to_record): Pass the adjusted size of the type when creating
3465 fields in the qualified union for the variant part.
3466 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN.
3467 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for
3469 (maybe_pad_type): Set TYPE_USER_ALIGN.
3470 (make_aligning_type): Likewise.
3471 ALIGN argument is unsigned int.
3472 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism.
3473 (gnat_to_gnu_param): Likewise, for parameters.
3474 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object
3475 if it is constant and stems from a function call.
3476 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment
3477 of the record is specified. Adjust accordingly.
3478 (adjust_packed): New static function.
3479 (gnat_to_gnu_field): Use it to adjust the packedness setting.
3480 (components_to_record): Likewise.
3481 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for
3482 side-effects if the object is deemed constant.
3483 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer
3484 type instead of merely finalizing it. Tidy.
3485 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL.
3486 <E_Access_Type>: Likewise.
3487 (defer_debug_incomplete_list): Rename to defer_finalize_list.
3488 (defer_debug_level): Delete.
3489 (gnat_to_gnu_entity) <debug_deferred>: Likewise
3490 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer
3492 <E_Record_Type>: Do not explicitly defer finalizing the type.
3493 Adjust for write_record_type_debug_info renaming.
3494 <E_Subprogram_Type>: Likewise.
3495 Finalize deferred types right after deferred incomplete types are
3497 (rest_of_type_decl_compilation): New global function.
3498 (components_to_record): Rename defer_debug parameter to do_not_finalize.
3499 (components_to_record): Propagate the packedness to the fields of the
3500 qualified union type if there is a variant part.
3501 (gnat_to_gnu_entity) <E_Array_Type>: Use new function
3502 instead of inline code to adjust the XUT field offsets.
3503 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type.
3504 <E_Record_Subtype>: Do not let finish_record_type compute the sizes
3505 and write the debug info if the type derives from a discriminated one.
3506 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type.
3507 <E_Array_Subtype>: Likewise.
3508 <E_String_Literal_Subtype>: Likewise.
3509 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have
3510 an alignment clause.
3511 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN
3512 before giving warning.
3513 (prepend_one_attribute_to): New function, helper to prepend an attribute
3514 to an attribute list.
3515 (gnat_to_gnu_entity) <E_Procedure>: Use it.
3516 (prepend_attributes): Likewise.
3517 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type.
3518 <E_Array_Type>: Declare the padding type for the element type, if any.
3519 <E_Array_Subtype>: Likewise.
3520 (defer_limited_with): New variable.
3521 (Gigi_Equivalent_Type): New function.
3522 (gnat_to_gnu_entity): Use it at start and use result throughout.
3523 (gnat_to_gnu_entity, case E_Access_Type): Rework to use
3524 Gigi_Equivalent_Type, support Limited_With, allow two levels of
3525 indirection, precompute if unconstrained array to simplify logic, and
3526 use defer_limited_with to defer elaboration of some types from limited
3528 (finalize_from_with_types): New function.
3530 2007-06-06 Gary Dismukes <dismukes@adacore.com>
3531 Eric Botcazou <ebotcazou@adacore.com>
3532 Tristan Gingold <gingold@adacore.com>
3533 Olivier Hainque <hainque@adacore.com>
3535 * trans.c (Identifier_to_gnu): Change test for deferred constant by
3536 adding guard that the entity is an E_Constant before testing presence
3537 of Full_view (and remove unnecessary test that entity is not a type).
3538 For a CONST_DECL used by reference, manually retrieve
3539 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either.
3540 (struct language_function): Move from utils.c to here.
3541 (struct parm_attr): New structure.
3542 (parm_attr, parm_attr vector, parm_attr GC vector): New types.
3543 (f_parm_attr_cache): New macro.
3544 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the
3545 expressions for the 'First, 'Last and 'Length attributes of the
3546 unconstrained array IN parameters.
3547 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout.
3548 Allocate the information structure for the function earlier, as well
3549 as the language-specific part.
3550 If the parameter attributes cache has been populated, evaluate the
3551 cached expressions on entry.
3552 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call,
3553 N_Procedure_Call_Statement and N_Indexed_Component.
3554 (Pragma_to_gnu): Translate inspection_point to an asm statement
3555 containaing a comment and a reference to the object (either its address
3556 for BLKmode or its value).
3557 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide
3558 to go to DECL_INITIAL. Together with the size constraint relaxation
3559 in create_var_decl, enlarges the set of situations in which an
3560 identifier may be used as an initializer without implying elaboration
3562 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set
3563 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the
3565 (maybe_stabilize_reference): Remove lvalues_only parameter.
3566 (gnat_stabilize_reference): Adjust for above change.
3567 (gnat_to_gnu): Do not set location information on the result
3568 if it is a reference.
3569 (add_cleanup): Add gnat_node parameter and set the location of the
3571 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup.
3572 (Exception_Handler_to_gnu_zcx): Likewise.
3573 (gigi): Remove the cgraph node if the elaboration procedure is empty.
3574 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit
3575 the former right after the latter.
3576 (start_stmt_group): Make global.
3577 (end_stmt_group): Likewise.
3578 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New
3580 (gnu_program_error_label_stack): Likewise.
3581 (gigi): Initialize them.
3582 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise.
3583 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label):
3585 (push_exception_label_stack): New function.
3586 (takes_address): New function.
3588 * utils.c (struct language_function): Move to trans.c from here.
3589 (unchecked_convert): Do not wrap up integer constants in
3591 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent
3592 the latter for aggregate types, unexpected by later passes, and relax an
3593 arbitrary size constraint on the former.
3594 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p
3595 to compare the sizes.
3596 (convert_vms_descriptor): When converting to a fat pointer type, be
3597 prepared for a S descriptor at runtime in spite of a SB specification.
3598 (shift_unc_components_for_thin_pointers): New function.
3599 (write_record_type_debug_info): For variable-sized fields, cap the
3600 alignment of the pointer to the computed alignment.
3601 (finish_record_type): Change HAS_REP parameter into REP_LEVEL.
3602 If REP_LEVEL is 2, do not compute the sizes.
3603 (build_vms_descriptor): Adjust for new prototype of finish_record_type.
3604 (build_unc_object_type): Likewise.
3605 (declare_debug_type): New function.
3607 * ada-tree.def: USE_STMT: removed (not emitted anymore).
3609 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because
3610 no statement is expandable anymore.
3611 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice.
3612 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set
3613 when the user requested it explicitely.
3614 (gnat_post_options): By default, set flag_eliminate_unused_debug_types
3616 (get_alias_set): Return alias set 0 for a type if
3617 TYPE_UNIVERSAL_ALIASING_P is set on its main variant.
3619 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro.
3620 (DECL_FUNCTION_STUB): New accessor macro.
3621 (SET_DECL_FUNCTION_STUB): New setter macro.
3623 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada.
3625 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New
3628 2007-06-06 Jose Ruiz <ruiz@adacore.com>
3630 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal):
3631 Rename to Abort_Task_Interrupt to be able to keep the same interface
3632 as the rest of the targets.
3634 * s-osinte-vxworks.ads s-osinte-vxworks.adb
3635 (To_VxWorks_Priority): Remove explicit "in" mode indicator
3637 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads:
3640 2007-06-06 Robert Dewar <dewar@adacore.com>
3642 * a-chahan.ads: Remove obsolescent pragmas
3644 * a-chlat1.ads: Minor reformatting
3646 2007-06-06 Robert Dewar <dewar@adacore.com>
3648 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface
3651 * errout.adb: New Finalize/Compilation_Errors/Output_Messages
3654 * errout.ads (Finalize): Changed interface
3655 (Output_Messages): New procedure
3656 (Compilation_Errors): New Interface
3658 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New
3659 Finalize/Output_Messages interface for Errout
3660 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for
3663 2007-06-06 Thomas Quinot <quinot@adacore.com>
3664 Olivier Hainque <hainque@adacore.com>
3665 Robert Dewar <dewar@adacore.com>
3667 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18)
3669 (Raise_Current_Excep): Call Debug_Raise_Exception just before
3670 propagation starts, to let debuggers know about the event in a reliable
3672 (Local_Raise): Moved to System.Exceptions
3673 More convenient to have this as a separate unit
3675 * s-except.adb, s-except.ads: New files.
3677 * a-exextr.adb (Unhandled_Exception): Delete - replaced by
3678 Debug_Unhandled_Exception in System.Exceptions where it belongs
3679 together with a couple of other debug helpers.
3680 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of
3681 the former Unhandled_Exception.
3683 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure
3684 (Warn_No_Exception_Propagation): New procedure
3685 (Warn_If_No_Propagation): Rewritten for new warning generation
3686 (Expand_Exception_Handlers): New warning generation
3687 (Expand_N_Raise_xxx_Error): Rewritten for new warnings
3688 (Add_Exception_Label): Use Special_Exception_Package_Used for test
3689 instead of Most_Recent_Exception_Used (accomodates Exception_Traces)
3690 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap
3691 even if restriction is set (makes life easier in Check_Returns)
3692 (Expand_Local_Exception_Handlers): Follow renamed entity chain when
3693 checking exception identities.
3694 (Expand_Local_Exception_Handlers): Do not optimize when all others case
3695 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated
3696 block for handler (used by Check_Returns)
3697 (Expand_Local_Exception_Handlers): Local_Raise now takes an address
3698 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to
3699 remove all exception handlers when optimizing local raise statements.
3700 (Find_Local_Handler): Use Get_Renamed_Entity
3701 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is
3702 marked analyzed after expanding exception handlers, do not generate
3703 redundant cleanup actions, because they have been constructed already.
3705 2007-06-06 Thomas Quinot <quinot@adacore.com>
3707 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The
3708 presence of this categorization pragma is mandated by the language.
3709 (Limited_Controlled): Add missing pragma Preelaborable_Initialization
3712 2007-06-06 Vincent Celier <celier@adacore.com>
3713 Robert Dewar <dewar@adacore.com>
3715 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb,
3716 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
3717 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads,
3718 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
3719 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads,
3720 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb,
3721 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb,
3722 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads,
3723 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb,
3724 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb,
3725 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb,
3727 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to
3728 package Namet. Make File_Name_Type and Unit_Name_Type types derived from
3729 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id.
3730 Use variables of types File_Name_Type and Unit_Name_Type in error
3732 (Get_Name): Add parameter Ignore_Special, and set it reading file name
3733 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output
3735 Define flags Flag217-Flag230 with associated subprograms
3736 (Flag_Word5): New record type.
3737 (Flag_Word5_Ptr): New access type.
3738 (To_Flag_Word5): New unchecked conversion.
3739 (To_Flag_Word5_Ptr): Likewise.
3740 (Flag216): New function.
3741 (Set_Flag216): New procedure.
3743 2007-06-06 Arnaud Charlet <charlet@adacore.com>
3745 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length
3748 * a-stwifi.ads, a-stzfix.ads: Minor reformatting
3750 2007-06-06 Javier Miranda <miranda@adacore.com>
3752 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to
3754 (Object_Specific_Data_Array): This is now internal to the package.
3755 (Object_Specific_Data): This is now internal to the package.
3756 (Select_Specific_Data_Element): This is now internal to the package.
3757 (Select_Specific_Data_Array): This is now internal to the package.
3758 (Select_Specific_Data): This is now internal to the package.
3759 (Offset_To_Top_Function_Ptr): This is now public.
3760 (To_Offset_To_Top_Function_Ptr): Removed.
3761 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now
3762 local to subprogram Offset_To_Top.
3763 (Predefined_DT): Removed.
3764 (Typeinfo_Ptr): Removed.
3765 (OSD): This function is now internal to this package.
3766 (SSD): This function is now internal to this package.
3767 (DT): New function that displaces the pointer to the table of primitives
3768 to get access to the enclosing wrapper record.
3769 (IW_Membership): Code cleanup.
3770 (Offset_To_Top): Code cleanup.
3771 (Predefined_DT): Removed.
3772 (Register_Interface_Tag): Removed.
3773 (Set_Interface_Table): Removed.
3774 (Set_Offset_Index): Removed.
3775 (Set_Offset_To_Top): Code cleanup.
3777 (Set_Signature): Removed.
3779 (Set_Tagged_Kind): Removed.
3780 (Typeinfo_Ptr): Removed.
3782 (Displace): Add missing check on null actual.
3784 * exp_disp.ads, exp_disp.adb
3785 (Select_Expansion_Utilities): Removed.
3786 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags.
3787 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because
3788 the interface requires a new parameter.
3789 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
3790 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace
3791 calls to subprograms Build_T, Build_S, etc. by the corresponding code.
3792 Done to remove package Select_Expansion_Utilities.
3793 (Make_DT): New implementation for statically allocated dispatch tables.
3794 (Make_Secondary_DT): Moved to the scope of Make_DT.
3795 (Register_Primitive): Code cleanup plus incoporate the use of the new
3796 function DT_Address_Attribute.
3797 (Expand_Interface_Thunk): The profile of this subprogram has been
3798 changed to return the Thunk_Id and the corresponding code.
3799 (Fill_DT_Entry): Removed. Its functionality is now provided by
3800 subprogram Register_Primitive.
3801 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by
3802 subprogram Register_Primitive.
3803 (Register_Primitive): New subprogram that incorporates the previous
3804 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry.
3805 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This
3806 was only required to call Make_DT_Access_Action, which is now removed.
3807 (Ada_Actions): Removed
3808 (Action_Is_Proc): Removed
3809 (Action_Nb_Arg): Removed
3810 Replace all the calls to Make_DT_Access_Action by direct calls to
3811 Make_Procedure_Call_Statement or Make_Function_Call.
3812 (Set_DTC_Entity_Value): New subprogram.
3813 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value.
3814 (Expand_Interface_Thunk): Add missing support for primitives that are
3815 functions with a controlling result (case in which there is no need
3816 to generate the thunk).
3818 * exp_atag.ads, exp_atag.adb
3819 (Build_DT): New subprogram that displaces the pointer to reference the
3820 base of the wrapper record.
3821 (Build_Typeinfo_Offset): Removed.
3822 (RTE_Tag_Node): Removed.
3823 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp
3824 (Build_Get_RC_Offset): Removed.
3825 (Build_Inherit_Predefined_Prims): Removed.
3826 (Build_Inherit_TSD: Removed.
3827 (Build_New_TSD): Removed.
3828 (Build_Set_External_Tag): Removed.
3829 (Build_Set_Predefined_Prim_Op_Address): Add documentation.
3830 (Build_Set_Prim_Op_Address): Add documentation.
3831 (Build_Set_TSD): Removed.
3833 * rtsfind.ads, rtsfind.adb
3834 (Load_Fail): If load fails and we are not in configurable run-time
3835 mode, then raise Unrecoverable_Error.
3836 (Text_IO_Kludge): Generate an error message if a run-time library is
3837 not available in a given run-time (ie. zfp run-time).
3838 (RTE_Record_Component): Add code to check that the component we search
3839 for is not found in two records in the given run-time package.
3840 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed
3841 (RE_DT_Predef_Prims_Offset): New entity
3842 (RE_Static_Offset_To_Top): New entity
3843 (RE_HT_Link): New entity.
3844 (System_Address_Image): Addition of this run-time package.
3845 (RE_Address_Image): New entity.
3846 (RE_Abstract_Interface): Removed.
3847 (RE_Default_Prim_Op_Count): Removed.
3848 (RE_DT_Entry_Size): Removed.
3849 (RE_DT_Min_Prologue_Size): Removed.
3850 (RE_DT_Prologue_Size): Removed.
3851 (RE_Ifaces_Table_Ptr): Removed.
3852 (RE_Interface_Data_Ptr): Removed.
3853 (RE_Type_Specific_Data): Removed.
3854 (RE_Primary_DT): Removed.
3855 (RE_Register_Interface_Tag): Removed.
3856 (RE_Set_Offset_Index): Removed.
3857 (RE_Set_OSD): Removed.
3858 (RE_Set_SSD): Removed.
3859 (RE_Set_Signature): Removed.
3860 (RE_Set_Tagged_Kind): Removed.
3861 (RE_Address_Array): New entity.
3862 (RE_DT): New entity.
3863 (RE_Iface_Tag): New entity.
3864 (RE_Interfaces_Table): New entity.
3865 (RE_No_Dispatch_Table): New entity.
3866 (RE_NDT_Prims_Ptr): New entity.
3867 (RE_NDT_TSD): New entity.
3868 (RE_Num_Prims): New entity.
3869 (RE_Offset_To_Top_Function_Ptr): New entity.
3870 (RE_OSD_Table): New entity.
3871 (RE_OSD_Num_Prims): New entity.
3872 (RE_Predef_Prims): New entity
3873 (RE_Predef_Prims_Table_Ptr): New entity.
3874 (RE_Primary_DT): New entity.
3875 (RE_Signature): New entity.
3876 (RE_SSD): New entity.
3877 (RE_TSD): New entity.
3878 (RE_Type_Specific_Data): New entity.
3879 (RE_Tag_Kind): New entity.
3881 2007-06-06 Thomas Quinot <quinot@adacore.com>
3883 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the
3884 C imported variable.
3885 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set
3888 2007-06-06 Robert Dewar <dewar@adacore.com>
3890 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra
3893 2007-06-06 Vincent Celier <celier@adacore.com>
3895 * a-tifiio.adb (Put, internal): For negative numbers, check that there
3896 is room for at least one digit and the minus sign.
3897 (Put.Put_Character): Never put a character outside of the range of
3900 2007-06-06 Olivier Hainque <hainque@adacore.com>
3901 Eric Botcazou <ebotcazou@adacore.com>
3903 * utils2.c (build_allocator): Provide the extra arguments to
3904 make_aligning_type for super-aligned objects allocated from the default
3905 pool. Leave enough room for a pointer before the aligning field, and
3906 store the system's allocator return value there.
3907 (build_call_alloc_dealloc): When releasing a super-aligned object,
3908 retrieve the system's allocator return value from where build_allocator
3909 has stored it, just ahead of the adjusted address we are passed.
3910 (build_call_raise): Handle properly the generation of line numbers when
3911 the node is marked No_Location.
3912 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort
3913 by using DECL_UID on ties.
3914 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same
3916 (build_call_raise): Handle converting exception into goto; support new
3918 (build_component_ref): Add new arg to build_call_raise.
3920 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
3922 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse
3923 "." in the case of nnn.xxx when nnn terminates with an underscore.
3924 Parse the remaining "#" or ":" in the case of nnn#.xxx#
3926 2007-06-06 Robert Dewar <dewar@adacore.com>
3928 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT
3930 2007-06-06 Arnaud Charlet <charlet@adacore.com>
3931 Vincent Celier <celier@adacore.com>
3932 Robert Dewar <dewar@adacore.com>
3934 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when
3936 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute
3937 ((destructor)) for adafinal, even when switch -a is used.
3938 Do not issue pragma Linker_Destructor for adafinal when switch -a is
3940 (Gen_Object_Files_Options): Add formatting of Linker Options, when
3941 Output_Linker_Option_List is set. Suppress this formatting when
3942 Zero_Formatting is set.
3943 Add case for CLI_Target.
3944 (System_Restrictions_Used): New flag, used to avoid generating with of
3945 System_Restrictions and initialization of the data unless there is
3946 some use of System.Restrictions in the partition.
3947 (Check_System_Restrictions_Used): New procedure
3949 * s-stalib.adb: Remove with of System.Restrictions. No longer needed
3950 since we only with this unit in the binder file if it is used elsewhere
3953 2007-06-06 Vincent Celier <celier@adacore.com>
3955 * bindusg.adb: Add line for @<response file>
3956 Add lines for new switches -R and -Z
3958 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT
3959 hierarchy in the list of files of the closure when -R is used
3960 (Gnatbind): Accept arguments starting with '@' to indicate response
3961 files and take the arguments from the response files.
3962 If List_Closure is set, display the referenced files
3964 2007-06-06 Javier Miranda <miranda@adacore.com>
3965 Robert Dewar <dewar@adacore.com>
3966 Ed Schonberg <schonberg@adacore.com>
3968 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in
3969 which the address-clause is applied to in-mode actuals (allowed by
3971 (Apply_Discriminant_Check): Do not generate a check if the type is
3972 constrained by a current instance.
3973 (Activate_Division_Check): New procedure
3974 (Activate_Overflow_Check): New procedure
3975 (Activate_Range_Check): New procedure
3976 Call these new Activate procedures instead of setting flags directly
3977 (Apply_Array_Size_Check): Removed, no longer needed.
3978 Code clean up: remove obsolete code related to GCC 2.
3979 (Get_E_Length): Protect against bomb in case scope is standard
3980 (Selected_Range_Checks): If the node to be checked is a conversion to
3981 an unconstrained array type, and the expression is a slice, use the
3982 bounds of the slice to construct the required constraint checks.
3983 Improve NOT NULL error messages
3984 (Apply_Constraint_Check): If the context is a null-excluding access
3985 type, diagnose properly the literal null.
3987 2007-06-06 Pascal Obry <obry@adacore.com>
3989 * clean.adb (Clean_Archive): Use untouched casing for the archive name
3990 and the corresponding .deps file.
3991 (Clean_Interface_Copy_Directory): Use untouched casing for the library
3992 src directory. Minor code-clean-up. Use untouched casing for files
3993 read into the library src dir.
3994 (Clean_Library_Directory): Idem.
3995 (Parse_Cmd_Line): Accept new switch -aP
3997 2007-06-06 Javier Miranda <miranda@adacore.com>
3998 Ed Schonberg <schonberg@adacore.com>
3999 Robert Dewar <dewar@adacore.com>
4000 Eric Botcazou <ebotcazou@adacore.com>
4001 Arnaud Charlet <charlet@adacore.com>
4003 * einfo.ads, einfo.adb (Available_View): New synthesized attribute
4004 applicable to types that have the With_Type flag set. Returns the
4005 non-limited view of the type, if available, otherwise the type itself.
4006 For class-wide types, there is no direct link in the tree, so we have
4007 to retrieve the class-wide type of the non-limited view of the Etype.
4008 New attributes Static_Initialization and Static_Elaboration_Desired.
4009 Remove the pragma Thread_Body, and the associated flag
4010 Is_Thread_Body in entities, and all related code.
4011 (Suppress_Value_Tracking_On_Call): New flag
4012 E_Exception has Esize and Alignment fields
4013 (Universal_Aliasing): New function.
4014 (Set_Universal_Aliasing): New procedure.
4015 (Write_Entity_Flags): Deal with Universal_Aliasing flag.
4016 (Check_Nested_Access): New procedure.
4017 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
4018 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
4019 (Related_Interface): New attribute. Present in dispatch table pointer
4020 components of records. Set to point to the entity of the corresponding
4022 (Is_By_Reference_Type): Recurse on the full view of an incomplete type.
4023 (Original_Access_Type): Remove, not needed.
4024 (Root_Type): Handle properly subtypes of class-wide-types.
4027 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for
4028 class-wide types visible through limited-with clauses.
4029 (Try_Primitive_Operation): When examining all primitive operations of a
4030 tagged type, do not consider subprograms labeled as hidden unless they
4031 belong to a private generic type with a tagged parent.
4032 (Try_Object_Operation): Extensive rewriting, to handle properly various
4033 overloading cases, when several ancestors may have class-wide operations
4034 that are possible candidates, and when the overloaded functions return
4035 array types and have defaulted parameters so that the call may be
4036 interpreted as an indexing.
4037 (Analyze_Allocator): Remove Mark_Allocator and its invocation.
4038 (Process_Function_Call): use Next, rather than Next_Actual, to analyze
4039 successive actuals before analyzing the call itself.
4040 (Try_Primitive_Operation): A primitive operation is compatible with the
4041 prefix if the prefix has a synchronized type and the type of the formal
4042 is its corresponding record, as can be the case when the primitive
4043 operation is declared outside of the body of the type.
4044 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to
4045 perform homonym traversal, looking for class-wide operation matches
4046 (formerly done in statements of Try_Class_Wide_Operation). Matches on
4047 access parameters are now restricted to anonymous access types.
4048 (Mark_Allocator): An allocator with a discriminant association parent is
4050 (Try_One_Prefix_Interpretation): If the type of the object is
4051 incomplete, as can be happen when it is a limited view obtained through
4052 a limited_with_clause, the selected component is not part of a prefixed
4054 (Complete_Object_Operation): Diagnose properly an object that is not
4055 aliased when the corresponding controlling formal is an access
4057 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly
4058 ambiguous calls in prefixed notation, where two primitives differ only
4059 in that the controlling argument of one is an access parameter.
4061 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines
4062 whether a function that returns an unconstrained type can be inlined.
4063 (Process_Formals): Diagnose properly the illegal use of an incomplete
4064 type in the profile of an access_to_subprogram declaration.
4065 (Check_Synchronized_Overriding): Nothing check for concurrent types, the
4066 operations are attached to the corresponding record.
4067 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ.
4068 When processing a primitive of a concurrent type which implements an
4069 interface change the type of all controlling formals to that of the
4070 corresponding record type.
4071 (Check_Synchronized_Overriding): Relax the conditional logic when trying
4072 to determine the tagged type to which a primitive belongs.
4073 (Check_Conventions): Capture condition to ignore a primitive operation
4074 (which is shared between the loop in Check_Conventions and the one in
4075 Check_Convention) in a new local function Skip_Check.
4076 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible
4077 confusion with Check_Conventions' own Prim_Op local variable.
4078 (Create_Extra_Formals): Test for a tagged result type rather than a
4079 controlling result when determining whether to add a BIP_Alloc_Form
4080 formal and a BIP_Final_List formal to the function.
4081 (Check_Conformance); For parameters that are anonymous access types,
4082 subtype conformance requires that the not null and the constant
4083 indicators must match
4084 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery
4085 to retrieve the appropriate type when processing a concurrent type
4086 declared within a generic. Minor comment reformatting. Change invocation
4087 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri-
4089 (Analyze_Subprogram_Body): If the return type of a function is an
4090 anonymous access to the limited view of a class-wide type, and the
4091 non-limited view of the type is available, update the type of the
4092 function so that code can be generated.
4093 (Process_Formals): In case of access-subtype itype whose designated
4094 type is also an itype (situation that happens now with access to
4095 subprograms) we mark the access-type itype with the Has_Delayed_Freeze
4096 attribute to avoid backend problems.
4097 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in
4098 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the
4099 anonymous types' designated types are same before testing
4100 Subtypes_Statically_Match.
4101 (Create_Extra_Formals): Test for a named access parameter that is a
4102 controlling formal as an additional condition for adding an
4103 accessibility level formal. This can occur in the subp type created for
4104 dispatching calls in Expand_Dispatching_Call, and allows calling
4105 Create_Extra_Formals from that procedure rather than special-casing the
4106 extra formals there.
4107 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals
4108 when the function has a controlling result.
4109 (Check_Returns): Add much more knowledge of the optimization of local
4110 raise statements to gotos, to retain proper warnings in this case.
4111 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label
4112 nodes when looking for last statement.
4114 * sem_type.ads, sem_type.adb (Specific_Type): Add support for
4115 class-wide types visible through limited with clauses.
4116 (Add_One_Interp): If the operands are anonymous access types, the
4117 predefined operator on universal_access is immediately visibles
4118 (Find_Unique_Type): Handle anonymous access to subprogram types just as
4119 other anonymous access types.
4120 (Disambiguate): Take into account CIL convention.
4121 (Interface_Present_In_Ancestor): Add support for class-wide interfaces.
4123 2007-06-06 Robert Dewar <dewar@adacore.com>
4125 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb,
4126 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads,
4127 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure.
4128 Fix lower bound of tables.
4131 * nlists.adb: Ditto.
4132 (Prev_Node, Next_Node): Change index type to Int so that it properly
4133 covers the range First_Node_Id - 1 up.
4135 2007-06-06 Javier Miranda <miranda@adacore.com>
4136 Ed Schonberg <schonberg@adacore.com>
4137 Bob Duff <duff@adacore.com>
4138 Hristian Kirtchev <kirtchev@adacore.com>
4140 * exp_aggr.ads, exp_aggr.adb:
4141 (Build_Record_Aggr_Code): Add missing initialization of secondary tags
4142 in extension aggregates.
4143 (Flatten): Other conditions being met, an aggregate is static if the
4144 low bound given by component associations is different from the low
4145 bound of the base index type.
4146 (Packed_Array_Aggregate_Handled): If the component type is itself a
4147 packed array or record, the front-end must expand into assignments.
4148 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to
4149 Init_Pr, instead of Ancestor_Is_Expression.
4150 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a
4151 coextension chain root, either generate a list controller or use the
4152 already existing one.
4153 (Static_Array_Aggregate): New procedure to construct a positional
4154 aggregate that can be handled by the backend, when all bounds and
4155 components are compile-time known constants.
4156 (Expand_Record_Aggregate): Force conversion of aggregates of tagged
4157 types covering interface types into assignments.
4158 (Replace_Type): move to Build_Record_Aggr_Code.
4159 (Expand_Record_Aggr_Code): if the target of the aggregate is an
4160 interface type, convert to the definite type of the aggregate itself,
4161 so that needed components are visible.
4162 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled
4163 components and the context is an extended return statement do not
4164 create a transient block for it, to prevent premature finalization
4165 before the return is executed.
4166 (Gen_Assign): Do not generate a call to deep adjust routine if the
4167 component type is itself an array of controlled (sub)-components
4168 initialized with an inner aggregate.
4169 (Component_Check): New name for Static_Check. This name is now more
4170 appropriate, and documentation is added which was missing.
4171 (Component_Check): Add test for bit aligned component value
4172 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_
4173 Tagged_Comps, name is more appropriate given added function below.
4174 (Component_Not_OK_For_Backend): Check for bit aligned component ref.
4176 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
4177 Javier Miranda <miranda@adacore.com>
4178 Robert Dewar <dewar@adacore.com>
4180 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and
4181 Terminated: Add unchecked type conversion from System.Address to
4182 System.Tasking.Task_Id when calling the predefined primitive
4184 Disable new Ada 05 accessibility check for JVM.NET targets, which
4185 cannot be implemented in a practical way.
4186 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in
4187 the sources always references the tag of the actual object. Therefore,
4188 if 'Tag is applied in the sources to class-wide interface objects we
4189 generate code that displaces "this" to reference the base of the object.
4190 (Expand_N_Attribute_Reference, case Size): Return specified size if
4192 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute
4193 has code that displaces the pointer of the object to manage interface
4194 types. However this code must not be executed when the prefix is a
4195 subprogram. This bug caused the wrong expansion of the internally
4196 generated assignment that fills the dispatch table when the primitive
4197 is a function returning a class-wide interface type.
4198 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to
4199 Set_Attribute_Name for Name_Unaligned_Valid.
4201 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4202 Gary Dismukes <dismukes@adacore.com>
4204 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address):
4205 If the initialization is the equivalent aggregate of the initialization
4206 procedure of the type, do not remove it.
4207 (Expand_N_Attribute_Definition_Clause): Exclude access variables
4208 initialized to null from having their expression reset to empty and
4209 note this exception in the comment.
4211 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
4212 Robert Dewar <dewar@adacore.com>
4213 Ed Schonberg <schonberg@adacore.com>
4214 Gary Dismukes <dismukes@adacore.com>
4216 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames.
4217 Add "with" and "use" clauses for Sem_Attr.
4218 (Expand_Current_Value): Do not replace occurences of attribute
4219 references where the prefix must be a simple name.
4221 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for
4222 Namet. Add new arrays Attribute_Name_Modifies_Prefix and
4223 Attribute_Requires_Simple_Name_Prefix.
4224 (Name_Modifies_Prefix): Body of new function.
4225 (Requires_Simple_Name_Prefix): Body of new function.
4226 (Resolve_Attribute, case Access): Improve error message for case of
4227 mismatched conventions.
4228 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an
4230 (Analyze_Attribute, case 'Access): If the type of the prefix is a
4231 constrained subtype for a nominal unconstrained type, use its base type
4232 to check for conformance with the context.
4233 (Resolve_Attribute): Remove test of the access type being associated
4234 with a return statement from condition for performing accessibility
4235 checks on access attributes, since this case is now captured by
4236 Is_Local_Anonymous_Access.
4237 (Analyze_Access_Attribute): Set Address_Taken on entity
4238 (Analyze_Attribute, case Address): Set Address_Taken on entity
4239 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when
4240 validating an access attribute whose prefix is a current instance.
4241 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address
4242 applied to dispatching operations, if freezing is required then we set
4243 the attribute Has_Delayed_Freeze in the prefix's entity.
4244 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in
4245 current scope if access of local subprogram taken
4246 (Analyze_Access_Attribute): Check legality of self-reference even if the
4247 expression comes from source, as when a single component association in
4248 an aggregate has a box association.
4249 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to
4250 the prefix if it is a protected operation and the attribute is
4251 Unrestricted_Access.
4252 (Resolve_Attribute, case 'Access): Set the Etype of the attribute
4253 reference to the base type of the context, to force a constraint check
4254 when the context is an access subtype with an explicit constraint.
4255 (Analyze_Attribute, case 'Class): If the prefix is an interface and the
4256 node is rewritten as an interface conversion. leave unanalyzed after
4257 resolution, to ensure that type checking against the context will take
4260 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4261 Javier Miranda <miranda@adacore.com>
4262 Robert Dewar <dewar@adacore.com>
4264 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a
4265 wrapper when the full view of the controlling type of an inherited
4266 function that dispatches on result implements interfaces.
4267 (Expand_N_Object_Declaration): In cases where the type of the
4268 declaration is anonymous access, create finalization list for it.
4269 (Expand_N_Object_Declaration): Generate a persistent_bss directive only
4270 if the object has no explicit initialization, to match description of
4271 functionality of pragam Persistent_BSS.
4272 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate):
4273 new function to build static aggregates, to replace initialization call
4274 when static initialization is desired.
4275 (Freeze_Type): Generate a list controller for an access type whenever
4276 its designated type has controlled anonymous access discriminants.
4277 (Build_Equivalent_Aggregate): New procedure to compute a static
4278 aggregate to be used as default initialization for composite types,
4279 instead of a generating a call to the initialization procedure for the
4281 (Build_Initialization_Call): When available, replace a call to the
4282 initialization procedure with a copy of the equivalent static aggregate
4284 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated
4285 declarations for objects of a class-wide interface type, rather than
4286 just identifiers, to prevent visibility problems.
4287 (Expand_N_Object_Declaration): When expanding the declaration for an
4288 object of a class-wide interface type, preserve the homonym chain of
4289 the original entity before exchanging it with that of the generated
4290 renaming declaration.
4291 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation
4292 active, because there is no way to handle the exception.
4293 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT
4294 to do a minimum decoration of the Access_Disp_Table list.
4295 (Expand_Record_Controller): Avoid the addition of the controller between
4296 the component containing the tag of a secondary dispatch table and its
4297 adjacent component that stores the offset to the base of the object.
4298 This latter component is only generated when the parent type has
4299 discriminants ---documented in Add_Interface_Tag_Components).
4300 (Apply_Array_Size_Check): Removed, no longer needed.
4301 (Expand_N_Full_Type_Declaration): If the type has anonymous access
4302 components, create a Master_Entity for it only if it contains tasks.
4303 (Build_Init_Procedure): Suppress the tag assignment compiling under
4305 (Freeze_Record_Type): Remove code associated with creation of dispatch
4307 (Init_Secondary_Tags): Update type of actuals when generating calls to
4308 Ada.Tags.Set_Offset_To_Top
4309 (Stream_Operation_OK): Disable use of streams compiling under no
4311 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization
4312 if Has_Init_Expression set.
4313 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to
4314 Register_Primitive, which provides the same functionality.
4315 (Requires_Init_Proc): Return false in case of interface types.
4316 (Add_Secondary_Tables): Use the new attribute Related_Interface to
4318 (Predefined_Primitive_Freeze): Do not assume that an internal entity
4319 is always associated with a predefined primitive because the internal
4320 entities associated with interface types are not predefined primitives.
4321 Therefore, the call to Is_Internal is replaced by a call to the
4322 function Is_Predefined_Dispatching_Operation.
4323 (Make_Eq_If): When generating the list of comparisons for the
4324 components of a given variant, omit the controller component that is
4325 present if the variant has controlled components.
4327 2007-06-06 Javier Miranda <miranda@adacore.com>
4328 Hristian Kirtchev <kirtchev@adacore.com>
4329 Bob Duff <duff@adacore.com>
4331 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to
4332 handle the creation of finalization lists and calls for nested
4333 coextensions when the root of the chains is part of a return statement.
4334 (Inside_A_Return_Statement): New function inside Complete_Coextension_
4336 (Expand_Record_Equality): Skip components that are interface types.
4337 (Displace_Allocator_Pointer): Add missing support for interface subtypes
4338 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant
4339 with Rewrite_Coextension. Change the condition for detecting coextension
4341 (Is_Local_Access_Discriminant): Removed.
4342 (Rewrite_Coextension): New routine which rewrites a static coextension
4343 as a temporary and uses its unrestricted access in the construction of
4345 (Complete_Coextension_Finalization): New routine. Generate finalization
4346 attachment calls to all delayed coextensions.
4347 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever
4348 the allocator is not a coextension itself and has delayed coextensions.
4349 If the current allocator is controlled, but also a coextension, delay
4350 the generation of the finalization attachment call.
4351 Rename local variable "Node" to "Nod" in order to avoid confusion with
4353 (Expand_Allocator_Expression): Call Adjust for initialized allocators of
4354 limited types that are not inherently limited. Such an allocator is
4355 illegal, but is generated by the expander for a return statement, to
4356 copy the result onto the secondary stack. This is the only case where a
4357 limited object can be copied. Generate code to displace the pointer
4358 to the object if the qualified expression is a class-wide interface
4359 object. Such displacement was missing and hence the copy of the object
4361 (Apply_Accessibility_Check): Handle allocated objects initialized in
4363 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator
4364 and Expand_Allocator_Expression. Allocating class-wide interface objects
4365 this routine displaces the pointer to the allocated object to reference
4366 the component referencing the corresponding secondary dispatch table.
4367 Expand_Allocator_Expression): Add missing support to allocate class-wide
4368 interface objects initialized with a qualified expression.
4369 (Get_Allocator_Final_List): Test for an anonymous access type that is a
4370 function result type, and use the finalization list associated with the
4371 function scope in that case (such an anonymous type should not be
4372 treated like an access parameter's type).
4374 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4375 Gary Dismukes <dismukes@adacore.com>
4376 Javier Miranda <miranda@adacore.com>
4378 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a
4379 controlled type, use Make_Handler_For_Ctrl_Operation to construct the
4380 required exception handler.
4381 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle
4382 properly the case of a function whose return type is a limited
4383 class-wide interface type. Modify the code of the accessibility
4384 check to handle class-wide interface objects. In this case we need to
4385 displace "this" to reference the primary dispatch table to get access
4386 to the TSD of the object (to evaluate its accessibility level).
4387 (Expand_N_Extended_Return_Statement): Test for a tagged result type
4388 rather than a controlling result as one of the conditions for
4389 generating tests of the implicit BIP_Alloc_Form formal. The
4390 initialization assignment is also handled according to whether the
4391 result is tagged instead of controlling.
4392 In the case where the init assignment is inserted in the "then" part of
4393 the allocation conditional, rewrite the target to be a dereference of
4394 the implicit BIP_Object_Access formal.
4395 If the returned value is unconstrained and created on the secondary
4396 stack, mark the enclosing block and function so that the secondary
4397 stack is not reclaimed on return.
4398 Treat returns from functions with controlling results similarly to
4399 returns from functions with unconstrained result subtypes.
4400 If the object returned is unconstrained, and an allocator must be
4401 created for it, analyze the allocator once the block for the extended
4402 return is installed, to ensure that finalizable components
4403 of the expression use the proper finalization list. Guard the call to
4404 Move_Final_List with a check that there is something to finalize.
4405 (Make_Tag_Ctrl_Assignment): Use "old" handling
4406 of controlled type assignment for virtual machines, since new code uses
4407 unsupported features (such as direct access to bytes in memory).
4409 2007-06-06 Gary Dismukes <dismukes@adacore.com>
4410 Ed Schonberg <schonberg@adacore.com>
4412 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra
4413 accessibility actual, check for the case of an aliased object that has
4414 been rewritten as an Access attribute, and assign Prev to Prev_Orig so
4415 we fall into processing for the attribute rather than the name of the
4417 (Expand_Inline_Call): If an actual is a literal, and the corresponding
4418 formal has its address taken in the body, create a temporary to capture
4419 value. If the return type is a limited interface, do not treat the
4420 return value as Controlled.
4421 (Is_In_Place_Function): If the return type is a limited interface,
4422 treat as returning in place. The actual returned object may not always
4423 be limited, but the caller has to assume that it is returned in place.
4424 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the
4425 context of an allocator, use the correct finalization chain (that is,
4426 the chain belonging to the access type, rather than the chain belonging
4427 to the current scope).
4428 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged
4429 result type rather than a controlling result as a precondition for
4430 adding an allocation form actual to a build-in-place call.
4431 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto.
4432 (Freeze_Subprogram): Code cleanup. Remove all the code that register the
4433 primitive in the dispatch tables. This work is now done by Make_DT when
4435 (Register_Predefined_DT_Entry): Removed.
4436 (Add_Return): If end label is not present, use sloc of last statement
4437 for generated return statement in procedure, for better gdb behavior
4439 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the
4440 object address nodes to ensure proper processing by routines like
4442 (Expand_Call): Fix generation of validity check for parameter
4443 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing
4444 the allocation form parameter if the result subtype is constrained,
4445 except when the function has a controlling result.
4446 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type
4447 rather than Is_Controlled and Has_Controlled_Component, since we want to
4448 include class-wide result types in this treatment. Also test for a
4449 controlling result, since that also requires passing a finalization
4451 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_*
4452 even when the result subtype is constrained, to handle calls involving
4453 controlling results.
4454 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_*
4455 is now called even when the result subtype is constrained, to handle
4456 calls involving controlling results.
4457 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained
4458 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure
4459 now performs the test).
4460 (Make_Build_In_Place_Call_In_Object_Declaration):
4461 Add_Alloc_Form_Actual_* is now called even when the result subtype is
4462 constrained, to handle calls involving controlling results.
4463 (Add_Return): Accomodate rewritten pattern from local raise to goto
4464 transformation, so that we still recognize an transfer statement
4465 and do the right thing here in that case.
4466 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start
4467 and end of subprogram code.
4468 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing
4469 support for primitives that are functions (without formals) with a
4471 (Inherited_From_Formal): If the actual subtype has not generic parent
4472 type, it is not an actual for a formal derived type, and there is no
4473 operation to inherit from the formal.
4475 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4476 Thomas Quinot <quinot@adacore.com>
4478 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of
4479 inserted cleanup code appropriately for GDB use.
4480 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create
4481 exception handler for Deep_Adjust or Deep_Finalize.
4482 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity
4483 Raise_From_Controlled_Operation is available, use a call to that
4484 subprogram instead of a plain "raise Program_Error" node to raise
4485 Program_Error if an exception is propagated from an Adjust or Finalize
4487 (Insert_Actions_In_Scope_Around): If the statement to be wrapped
4488 appears in the optional statement list of a triggering alternative, the
4489 scope actions can be inserted directly there, and not in the list that
4490 includes the asynchronous select itself.
4492 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4493 Robert Dewar <dewar@adacore.com>
4494 Hristian Kirtchev <kirtchev@adacore.com>
4496 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of
4497 generated exception handler appropriately when debugging generated code.
4498 Deal properly with No_Exception_Propagation restriction mode.
4499 (Expand_N_Abort_Statement): Add an unchecked type conversion from
4500 System.Address to System.Tasking.Task_Id when processing the result of
4501 the predefined primitive _disp_get_task_id.
4502 (Expand_N_Asynchronous_Select): Clarify comment.
4503 (Expand_N_Protected_Type_Declaration): Minor code cleanup.
4504 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters.
4505 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup.
4506 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for
4507 privals and for generated call to Complete_Entry_Body, for better gdb
4509 (Copy_Result_Type): Utility to construct a parameter and result profile
4510 for protected functions whose return type is an anonymous access to
4512 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type):
4514 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper
4515 point when the local-raise-to-goto transformation has taken place.
4517 2007-06-06 Javier Miranda <miranda@adacore.com>
4518 Nicolas Setton <setton@adacore.com>
4520 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its
4521 functionality when the backend is generating code.
4522 Otherwise any serious error
4523 reported by the backend calling the frontend routine Error_Msg
4524 changes the Compilation_Mode to Check_Semantics, disables the
4525 functionality of this routine and causes the generation of
4526 spureous additional errors.
4528 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the
4529 debugging information now generated by the compiler for fat-pointer
4531 Document the contents of DW_AT_producer in the GNAT Vendor extensions to
4533 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch.
4535 2007-06-06 Thomas Quinot <quinot@adacore.com>
4537 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram
4538 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
4539 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
4540 For a remote call to a function with a classwide return type, apply an
4541 E.4(18) check to the returned value.
4542 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for
4543 stream attributes of the designated type of an RACW, as they are not
4544 dispatching primitive operations.
4546 2007-06-06 Geert Bosch <bosch@adacore.com>
4548 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a
4550 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always
4552 (Do_Divide_Fixed_Universal): Handle case of negative Frac.
4553 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always
4555 (Do_Multiply_Fixed_Universal): Handle case of negative Frac.
4557 2007-06-06 Javier Miranda <miranda@adacore.com>
4559 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this
4560 attribute compiling package Ada.Tags under No_Run_Time_Mode.
4562 2007-06-06 Javier Miranda <miranda@adacore.com>
4564 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for
4565 deallocation of class-wide interface objects.
4566 (Expand_Dispatching_Constructor_Call): Take into account that if the
4567 result of the dispatching constructor is an interface type, the
4568 function returns a class-wide interface type; otherwise the returned
4569 object would be actual. The frontend previously accepted returning
4570 interface types because Expand_Interface_Actuals silently performed
4571 the management of the returned type "as if" it were a class-wide
4573 (Expand_Dispatching_Constructor_Call): Replace call to
4574 Make_DT_Access_Action by direct call to Make_Function_Call.
4576 2007-06-06 Robert Dewar <dewar@adacore.com>
4577 Ed Schonberg <schonberg@adacore.com>
4579 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to
4580 compute masking constant, since we now set Esize properly to the
4582 (Create_Packed_Array_Type): Set proper Esize value adjusted as required
4583 to match the alignment.
4584 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for
4585 packed arrays of 8 bits or less.
4587 * freeze.adb (Freeze_Entity): When freezing the formals of a
4588 subprogram, freeze the designated type of a parameter of an access type
4589 only if it is an access parameter.
4590 Increase size of C convention enumeration object
4591 (Freeze_Entity, array type case): Make sure Esize value is properly
4592 adjusted for the alignment if it is known.
4593 (Freeze_Entity, array type case): When checking bit packed arrays for
4594 the size being incorrect, check RM_Size, not Esize.
4595 (Freeze_Record_Type): Check for bad discriminated record convention
4596 (In_Exp_Body): Return true if the body is generated for a subprogram
4597 renaming, either an attribute renaming or a renaming as body.
4598 (Check_Itype): If the designated type of an anonymous access component
4599 is a non-protected subprogram type, indicate that it is frozen, to
4600 prevent out-of-scope freeze node at some subsequent call.
4601 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism
4602 only if the subprogram is neither imported nor exported, as well as the
4603 NCA descriptor class if the subprogram is exported.
4605 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4606 Arnaud Charlet <charlet@adacore.com>
4607 Robert Dewar <dewar@adacore.com>
4608 Gary Dismukes <dismukes@adacore.com>
4610 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a
4611 default initialization on an imported object, when there is no
4612 initialization call generated for it.
4613 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation
4616 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma
4617 Static_Elaboration_Desired.
4618 Remove pragma Thread_Body.
4619 Implement a new pragma No_Body
4620 Removes the Explicit_Overriding pragma
4621 Remove Optional_Overriding pragma
4622 (Prag): Deal with Universal_Aliasing.
4623 (Name_CIL, Name_CIL_Constructor, Convention_CIL,
4624 Pragma_CIL_Constructor): New names.
4626 * sem_cat.adb (Validate_Object_Declaration): An initialization that
4627 uses the equivalent aggregate of a type must be treated as an implicit
4629 (Get_Categorization): Check a unit for pragma Preelaborate only if it
4630 has none of the other categories.
4631 (Process_Import_Or_Interface_Pragma): Report an error for an attempt
4632 to apply Import to an object renaming declaration.
4634 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported
4635 from a C++ class should be declared as limited and that it will be
4636 considererd limited.
4637 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class
4638 should be declared as limited and that it will be considererd limited.
4639 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas
4640 (Analyze_Pragma, case Export): Diagnose export of enumeration literal
4641 (Analyze_Pragma): Deal with Universal_Aliasing.
4642 (Sig_Flags): Likewise.
4643 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP.
4644 (Overflow_Checks_Unsuppressed): New flag.
4645 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4646 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in
4647 case of JVM or .NET targets, and compiling user code.
4648 Add debugging convenience routine rv
4650 2007-06-06 Robert Dewar <dewar@adacore.com>
4652 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that
4654 (Build_Elementary_Input_Call): For floating-point use right type in the
4655 absence of strange size or stream size clauses.
4656 (Build_Elementary_Write_Call): Same fix
4657 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute
4658 set to value that does not match base type size.
4660 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4662 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an
4663 object of a limited type can be initialized with a call to a function
4664 that returns in place. If the limited type has unknown discriminants,
4665 and the underlying type is a constrained composite type, build an actual
4666 subtype from the function call, as is done for private types.
4667 (Side_Effect_Free): An expression that is the renaming of an object or
4668 whose prefix is the renaming of a object, is not side-effect free
4669 because it may be assigned through the renaming and its value must be
4670 captured in a temporary.
4671 (Has_Controlled_Coextensions): New routine.
4672 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface,
4673 as is done for other limited types.
4674 (Non_Limited_Designated_Type): new predicate.
4675 (Make_CW_Equivalent_Type): Modified to handle class-wide interface
4677 Remove all handling of with_type clauses.
4679 * par-ch10.adb: Remove all handling of with_type clauses.
4681 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the
4682 checksum if the main source could not be parsed.
4683 (Loat_Unit): When processing a child unit, determine properly whether
4684 the parent unit is a renaming when the parent is itself a child unit.
4685 Remove handling of with_type clauses.
4687 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function.
4688 (Set_Is_Static_Coextension): New procedure.
4689 (Has_Local_Raise): New function
4690 (Set_Has_Local_Raise): New procedure
4691 (Renaming_Exception): New field
4692 (Has_Init_Expression): New flag
4693 (Delay_Finalize_Attach): Remove because flag is obsolete.
4694 (Set_Delay_Finalize_Attach): Remove because flag is obsolete.
4695 Remove all handling of with_type clauses.
4696 (Exception_Junk): Can now be set in N_Block_Statement
4698 2007-06-06 Vincent Celier <celier@adacore.com>
4699 Robert Dewar <dewar@adacore.com>
4701 * frontend.adb (Frontend): Return immediately if the main source could
4702 not be parsed, because of preprocessing errors.
4704 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully.
4705 (Gnat1drv): Exit with errors if the main source could not be parsed,
4706 because of preprocessing errors.
4707 (Check_Rep_Info): New procedure
4709 2007-06-06 Robert Dewar <dewar@adacore.com>
4711 * g-hesorg.ads, g-heasor.ads,
4712 g-busorg.ads, g-bubsor.ads: Update documentation
4713 GNAT.Heap/Bubble_Sort_G is now pure
4715 2007-06-06 Robert Dewar <dewar@adacore.com>
4717 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string
4719 2007-06-06 Robert Dewar <dewar@adacore.com>
4720 Ed Schonberg <schonberg@adacore.com>
4722 * g-comlin.ads, g-comlin.adb:
4723 Add new warning for renaming of function return objects
4725 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size
4726 (Tree_Read): Use size of object instead of type'object_size, since the
4727 latter is incorrect for packed array types.
4728 (Tree_Write): Same fix
4730 * opt.ads: Add new warning for renaming of function return objects
4731 (Generating_Code): New boolean variable used to indicate that the
4732 frontend as finished its work and has called the backend to process
4733 the tree and generate the object file.
4734 (GCC_Version): Is now private
4735 (Static_Dispatch_Tables): New constant declaration.
4736 (Overflow_Checks_Unsuppressed): New flag.
4737 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed.
4738 (List_Closure): New flag for gnatbind (-R)
4739 Zero_Formatting: New flag for gnatbind (-Z)
4740 (Special_Exception_Package_Used): New flag.
4741 (Warn_On_Unrepped_Components): New flag.
4743 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed
4744 unit is a compilation unit, rather than relying on its scope, so that
4745 Standard can be renamed.
4746 (Analyze_Object_Renaming): Add new warning for renaming of function
4748 Also reject attempt to rename function return object in Ada 83 mode.
4749 (Attribute_Renaming): In case of tagged types, add the body of the
4750 generated function to the freezing actions of the type.
4751 (Find_Type): A protected type is visible right after the reserved word
4752 "is" is encountered in its type declaration. Set the entity and type
4753 rather than emitting an error message.
4754 (New_Scope): Properly propagate Discard_Names to inner scopes
4755 (Check_Nested_Access): New procedure.
4756 (Has_Nested_Access, Set_Has_Nested_Access): New procedures.
4757 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
4759 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning
4760 Add new warning for renaming of function return objects
4761 (Check_References): Suppress warnings for objects whose type or
4762 base type has Warnings suppressed.
4763 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C
4764 (Set_Warning_Switch): Include new -gnatwc in -gnatwa
4766 2007-06-06 Vincent Celier <celier@adacore.com>
4767 Emmanuel Briot <briot@adacore.com>
4768 Olivier Hainque <hainque@adacore.com>
4770 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the
4771 absolute value of Header.Block_Size when displaying the freed physical
4773 (Allocate): Compute Storage_Address using Integer_Address, not
4774 Storage_Offset, because the range of Storage_Offset may not be large
4776 (Configure): New parameter Low_Level_Traces
4777 (Allocate, Deallocation, Free_Physically): Added low-level traces
4778 (Configure): new parameter Errors_To_Stdout.
4779 (Output_File): new subprogram
4780 (Deallocate, Dereference): Send error messages to the proper stream
4781 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as
4782 documented. Previous code would send it to the current output file
4783 defined in GNAT.IO, which might not be stdout
4784 (Is_Valid): Adjust comment to mention that a positive reply means that
4785 Header_Of may be used to retrieve the allocation header associated with
4786 the subprogram Storage address argument. Return False early if this
4787 address argument is misaligned.
4789 2007-06-06 Vincent Celier <celier@adacore.com>
4791 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept
4793 (ASIS_Main): New global variable
4794 (Get_Closure): New procedure
4795 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat
4796 check, metric or pretty. Call Get_Closure in this case.
4797 (Check_Files): For GNAT LIST, check all sources of all projects when
4798 All_Projects is True.
4799 (GNATCmd): Accept -U for GNAT LIST
4801 2007-06-06 Vincent Celier <celier@adacore.com>
4803 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK=
4805 Correct error message when invocation of the linker fails
4806 Add explicit size clause for the C imported variables
4807 Object_List_File_Supported and Using_GNU_Linker to emphasize that
4808 we expect char size.
4809 Read target parameters earlier, since this is needed to set
4810 Target_VM properly. Also do not use -static/shared-libgcc for non GCC
4813 2007-06-06 Vincent Celier <celier@adacore.com>
4816 Add 3 spaces before the default project directory when displaying
4817 the project search path.
4818 Add new command line switch '-l' to display license information.
4820 2007-06-06 Vasiliy Fofanov <fofanov@adacore.com>
4822 * gmem.c: Add support for timestamps on memory operations.
4824 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory
4825 operations (not used currently, just foundation for future
4826 enhancements). Add possibility to perform full dump of gmem.out file.
4827 (Print_Back_Traces): Declare accesses to root arrays constants since
4828 they aren't modified.
4829 (Print_Back_Traces): allocate root arrays on the heap rather than stack.
4831 2007-06-06 Vincent Celier <celier@adacore.com>
4833 * gnatsym.adb: Update Copyright notice
4834 (Parse_Cmd_Line): Accept new switch -D
4835 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol
4838 * prj.ads (Policy): New policy Direct
4839 (Yes_No_Unknown): New enumeration type
4840 (Project_Data): New component Libgnarl_Needed
4842 * prj-nmsc.adb (Check_For_Source): When recording a source file make
4843 use the untouched pathname casing.
4844 (Get_Directories): Ensure that the Display_Exec_Directory is using the
4845 proper casing on non case-sensitive platforms like Windows.
4846 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s)
4847 on all platforms, as it is not possible to know which one is allowed
4848 before processing the project files.
4849 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is
4850 specified when symbol policy is Direct. Check that when there is a
4851 symbol file defined (either by default or with attribute
4852 Library_Symbol_File) it is not the same as the reference symbol file.
4853 (Check_Stand_Alone_Library): Recognize new symbol policy Direct.
4854 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non
4856 (Record_Ada_Source): Record a source that has been locally removed in an
4859 * symbols.ads (Policy): New policy Direct
4861 * symbols-vms.adb (Initialize): Take new policy Direct in case
4864 2007-06-06 Vincent Celier <celier@adacore.com>
4866 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory):
4867 Correct obvious bug (return Dir; instead of return Directory;).
4868 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last
4870 2007-06-06 Thomas Quinot <quinot@adacore.com>
4872 * g-pehage.adb (Produce): Open output files in Binary mode, so that
4873 they have UNIX line endings (LF only) even on Windows, and thus pass
4874 all GNAT style checks.
4876 2007-06-06 Emmanuel Briot <briot@adacore.com>
4878 * g-regpat.adb (Quote): Fix improper quoting of '.'
4880 2007-06-06 Thomas Quinot <quinot@adacore.com>
4882 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by
4883 default, set False on a per-runtime basis.
4884 (Need_Netdb_Buffer): New constant.
4886 * g-socket.ads, g-socket.adb: Import new package
4887 GNAT.Sockets.Thin.Task_Safe_NetDB.
4888 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin
4889 binding to obtain proper message.
4890 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close.
4891 Replace various occurrences of Arry (Arry'First)'Address with the
4892 equivalent Arry'Address (GNAT always follows implementation advice from
4894 (Get_Host_By_Address, Get_Host_By_Name,
4895 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock;
4896 instead, rely on platform-specific task safe netdb operations provided
4899 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal
4900 parameter Process_Blocking_IO.
4901 (Host_Error_Messages): Add stub body.
4902 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close.
4903 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname,
4904 Safe_Getservbyport): Move functions into new child package
4906 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr,
4907 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines.
4908 (In_Addr): Add alignment clause.
4910 2007-06-06 Robert Dewar <dewar@adacore.com>
4912 * g-trasym.ads, g-traceb.ads: Update list of supported targets
4913 Add note about symbolic traceback
4915 2007-06-06 Pascal Obry <obry@adacore.com>
4917 * hostparm.ads (Normalized_CWD): Use the host directory separator
4918 instead of the hardcoded forward slash which is not the proper
4919 character on Windows for example.
4922 2007-06-06 Vincent Celier <celier@adacore.com>
4923 Arnaud Charlet <charlet@adacore.com>
4925 * a-clrefi.adb, a-clrefi.ads: New files
4927 * impunit.adb: Add s-os_lib in the list of user visible units.
4928 (Non_Imp_File_Names_95): Add a-clrefi to this list
4929 Remove obsolete run-time entries.
4930 (Non_Imp_File_Names_05): Add Ada 2005 entries for:
4931 "a-exetim" -- Ada.Execution_Time
4932 "a-extiti" -- Ada.Execution_Time.Timers
4934 * mlib-prj.ads, mlib-prj.adb
4935 (Build_Library): Use untouched object dir and library dir. At the
4936 same time makes sure that the checks are done using the canonical
4937 form. Removes hard-coded directory separator and use the proper host
4939 (Process_Project): Do not look in object directory to check if libgnarl
4940 is needed for a library, if there is no object directory.
4941 (Build_Library): Scan the ALI files to decide if libgnarl is needed for
4943 (Build_Library): When invoking gnatbind, use a response file if the
4944 total size of the arguments is too large.
4946 * Makefile.rtl: (g-sttsne): New object file.
4947 Add entry for a-clrefi, s-utf_32, System.Exceptions
4949 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o.
4950 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o.
4951 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o
4952 Change g-string to s-string, g-os_lib to s-os_lib
4953 Change all g-utf_32 references to s-utf_32
4955 2007-06-06 Tristan Gingold <gingold@adacore.com>
4956 Olivier Hainque <hainque@adacore.com>
4958 * init.c: Do not adjust IP of an imported VMS exception of ia64.
4959 LIB$STOP is called to raise an exception and the IP of the exception
4960 is the instruction right after the call.
4961 (__gnat_adjust_context_for_raise, AIX): Implement.
4962 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call
4963 adjust_context_for_raise before Raise_From_Signal_Hanler.
4964 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure
4965 siginfo is passed to the handler, necessary to let the zcx propagation
4966 engine unwind past it.
4968 2007-06-06 Olivier Hainque <hainque@adacore.com>
4970 * initialize.c (__gnat_initialize for vxworks): Update documentation
4971 on the ZCX support, using different sets of crtstuff objects than with
4974 2007-06-06 Robert Dewar <dewar@adacore.com>
4976 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package
4978 (Layout_Type): Fix recomputation of size from alignment.
4980 2007-06-06 Ed Schonberg <schonberg@adacore.com>
4981 Javier Miranda <miranda@adacore.com>
4983 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others
4984 association in an instance.
4985 (Copy_Generic_Node): If the node is a string literal, no need to copy
4987 (Is_Generic_Formal): For a formal subprogram, the declaration is the
4988 grandparent of the entity.
4989 (Analyze_Formal_Interface_Type): Transform into a full type declaration,
4990 to simplify handling of formal interfaces that derive from other formal
4992 (Instantiate_Subprogram_Body): The defining unit name of the body of
4993 the instance should be a defining identifier.
4994 (Install_Formal_Packages): make global to the package, for use in
4995 instantiations of child units.
4996 (Analyze_Package_Instantiation): Do not attempt to set information on an
4997 enclosing master of an entry when expansion is disabled.
4998 (Instantiate_Type): If the actual is a tagged synchronized type and the
4999 generic ancestor is an interface, create a generic actual for the
5000 corresponding record.
5001 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type
5002 declaration, to ensure that the interface list is processed correctly.
5003 (Inline_Instance_Body): If enclosing scope is an instance body, remove
5004 its entities from visibiility as well.
5005 (Pre_Analyze_Actuals): if the actual is an allocator with constraints
5006 given with a named association, analyze the expression only, not the
5007 discriminant association itself.
5008 (Reset_Entity): If the analysis of a selected component is transformed
5009 into an expanded name in the prefix of a call with parameters, do not
5010 transform the original node into an expanded name, to prevent visibility
5011 errors in the case of nested generics.
5012 (Check_Private_View): For an array type, check whether the index types
5013 may need exchanging.
5015 2007-06-06 Arnaud Charlet <charlet@adacore.com>
5016 Vincent Celier <celier@adacore.com>
5018 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java,
5019 since both are separated.
5020 Add support for imported CIL packages.
5021 Add further special handling of "value_type" for CIL.
5022 Add special handling of pragma Import for CIL.
5024 * make.ads, make.adb: When switch -eS is used, direct all outputs to
5025 standard output instead of standard error, except errors.
5026 (Absolute_Path): Use untouched casing for the parent directory.
5027 (Add_Library_Search_Dir): Use the untouched directory name.
5028 (Add_Source_Search_Dir): Idem.
5029 (Change_To_Object_Directory): Update output to use proper casing.
5030 (Create_Binder_Mapping_File): Use the untouched filename to set
5032 (Gnatmake): Use untouched library and executable directory names.
5033 (Insert_Project_Sources): Use untouched filename for spec and body.
5034 (Is_In_Object_Directory): Use untouched object directory.
5035 (Mark_Directory): Idem.
5036 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always
5037 contains the non-canonical filename in all cases.
5038 (Change_To_Object_Directory): In verbose mode, display the name of the
5039 object directory we're changing to.
5040 (Compile_Sources): Make sure, when a project file is used, to compile
5041 the body of the unit, when there is one, even when only the spec is
5042 recorded in an ALI file.
5043 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the
5045 (Report_Compilation_Failed): New procedure
5046 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg):
5047 procedures moved from the spec to the body.
5048 (Extract_Failure): Removed, not used
5049 Replace explicit raises of exception Bind_Failed and Link_Failed with
5050 calls to Make_Failed with the proper message.
5051 Replace explicit raises of exception Compilation_Failed with calls to
5052 procedure Report_Compilation_Failed.
5053 (Initialize): Create mapping files unconditionally when using project
5056 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL,
5057 Pragma_CIL_Constructor): New names.
5059 * targparm.ads, targparm.adb
5060 (Compiler_System_Version): Removed, no longer used.
5061 (Get_Target_Parameters): Relax checks on system.ads validity. Add
5062 handling of two new system flags: JVM and CLI.
5064 2007-06-06 Jose Ruiz <ruiz@adacore.com>
5065 Arnaud Charlet <charlet@adacore.com>
5067 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run
5068 time, use the default s-interr body that provides interrupt support
5070 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of
5071 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b},
5072 g-soccon.ads, and s-taprop.adb for the marte run time.
5073 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and
5074 timers are supported on marte.
5075 (EH_MECHANISM for marte): Do not use ZCX.
5076 (THREADSLIB for marte): Use -lmarte.
5077 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS
5078 Add mlib-tgt-specific.o to gnatmake objects
5079 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no
5081 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks
5082 6, either kernel or rtp, use a specialized version of s-osinte.ads.
5084 2007-06-06 Pascal Obry <obry@adacore.com>
5086 * mkdir.c (__gnat_mkdir): Add support for UTF-8.
5088 2007-06-06 Vincent Celier <celier@adacore.com>
5090 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory
5091 separator, use instead the proper host directory separator.
5092 (Copy_ALI_Files): Make sure that an already existing ALI file in the
5093 ALI copy dir is writable, before doing the copy.
5095 * mlib-utl.ads, mlib-utl.adb:
5096 (Gcc): If length of command line is too long, put the list of object
5097 files in a response file, if this is supported by the platform.
5098 (Ar): If invocation of the archive builder is allowed to be done in
5099 chunks and building it in one shot would go above an OS dependent
5100 limit on the number of characters on the command line, build the archive
5103 2007-06-06 Vincent Celier <celier@adacore.com>
5105 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name
5106 of specified object file is not equal to base name of source.
5108 2007-06-06 Javier Miranda <miranda@adacore.com>
5109 Hristian Kirtchev <kirtchev@adacore.com>
5110 Ed Schonberg <schonberg@adacore.com>
5112 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to
5113 the full type declaration.
5114 (Analyze_Component_Declaration): Add local variable E to capture the
5115 initialization expression of the declaration. Replace the occurences of
5116 Expression (N) with E.
5117 (OK_For_Limited_Init_In_05): Allow initialization of class-wide
5118 limited interface object with a function call.
5119 (Array_Type_Declaration): If the declaration lacks subtype marks for
5120 indices, create a simple index list to prevent cascaded errors.
5121 (Is_Null_Extension): Ignore internal components created for secondary
5122 tags when checking whether a record extension is a null extension.
5123 (Check_Abstract_Interfaces): Add missing support for interface subtypes
5124 and generic formals.
5125 (Derived_Type_Declaration): Add missing support for interface subtypes
5126 and generic formals.
5127 (Analyze_Object_Declaration): If an initialization expression is
5128 present, traverse its subtree and mark all allocators as static
5130 (Add_Interface_Tag_Component): When looking for components that may be
5131 secondary tags, ignore pragmas that can appear within a record
5133 (Check_Abstract_Overriding): an inherited function that dispatches on
5134 result does not need to be overriden if the controlling type is a null
5136 (Mentions_T): Handle properly a 'class attribute in an anonymous access
5137 component declaration, when the prefix is an expanded name.
5138 (Inherit_Component): If the derivation is for a private extension,
5139 inherited components remain visible and their ekind should not be set
5141 (Find_Type_Of_Object): In the case of an access definition, always set
5142 Is_Local_Anonymous_Access. We were previously not marking the anonymous
5143 access type of a return object as a local anonymous type.
5144 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete
5145 range with character literal bounds.
5146 (Constrain_Array): Initialize the Packed_Array_Type field to Empty.
5147 (Access_Subprogram_Declaration): Indicate that the type declaration
5148 depends on an incomplete type only if the incomplete type is declared
5150 (Analyze_Subtype_Declaration): Handle properly subtypes of
5151 synchronized types that are tagged, and that may appear as generic
5153 (Access_Subprogram_Declaration): An anonymous access to subprogram can
5154 appear as an access discriminant in a private type declaration.
5155 (Add_Interface_Tag_Components): Complete decoration of the component
5156 containing the tag of a secondary dispatch table and the component
5157 containing the offset to the base of the object (this latter component
5158 is only generated when the parent type has discriminants --as documented
5160 (Inherit_Components): Use the new decoration of the tag components to
5161 improve the condition that avoids inheriting the components associated
5162 with secondary tags of the parent.
5163 (Build_Discriminanted_Subtype): Indicate to the backend that the
5164 size of record types associated with dispatch tables is known at
5166 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed.
5167 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface
5168 to include task, protected, and synchronized interfaces as limited
5170 (Process_Discriminants): Remove the setting of
5171 Is_Local_Anonymous_Access on the type of (anonymous) access
5172 discriminants of nonlimited types.
5173 (Analyze_Interface_Type_Declaration): Complete the decoration of the
5174 class-wide entity it is is already present. This situation occurs if
5175 the limited-view has been previously built.
5176 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep
5178 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute
5181 2007-06-06 Ed Schonberg <schonberg@adacore.com>
5183 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components
5184 of the type that specify the position of interface tags when the type
5185 inherits discriminated array components from the parent type.
5186 If a component is initialized with a box, check for the presence of a
5187 default expression in its declaration before using its default
5188 initialization procedure.
5189 (Resolve_Record_Aggregate): If a component is box-initialized, and the
5190 component type has a discriminants, create a partial aggregate for it
5191 by copying the discriminants of the component subtype.
5192 Reject attempt to initialize a discriminant with a box.
5193 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays
5194 associated with dispatch tables is known at compile time.
5195 (Get_Value): If an association in a record aggregate has a box
5196 association, and the corresponding record component has a default
5197 expression, always copy the default expression, even when the
5198 association has a single choice, in order to create a proper
5199 association for the expanded aggregate.
5201 2007-06-06 Ed Schonberg <schonberg@adacore.com>
5202 Robert Dewar <dewar@adacore.com>
5204 * par-ch12.adb (P_Generic_Associations): The source position of an
5205 Others association is that of the others keyword, not that of the token
5206 that follows the box.
5207 (P_Formal_Type_Definition): Handle formal access types that carry a
5210 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If
5211 multiple identifier are present, save Scan_State before scanning the
5212 colon, to ensure that separate trees are constructed for each
5214 (P_Identifier_Declarations): For object declaration, set new flag
5215 Has_Init_Expression if initialization expression present.
5216 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL
5217 Improve NOT NULL error messages
5219 2007-06-06 Robert Dewar <dewar@adacore.com>
5221 * par-ch4.adb: (P_Name): Recover from literal used as name
5223 2007-06-06 Vincent Celier <celier@adacore.com>
5225 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented,
5227 In the "not" case, recursive call with Complemented set to True.
5228 Do not allow "or" or "and" operators when Complemented is True.
5230 2007-06-06 Vincent Celier <celier@adacore.com>
5232 * prj.adb (Project_Empty): Gives default value for new component
5235 * prj-attr.ads: Minor reformatting
5237 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object
5238 directory using the untouched casing.
5239 (For_All_Source_Dirs): Idem.
5241 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record
5242 directories specified with switches -aP.
5243 (Add_Search_Project_Directory): New procedure
5244 (Initialize_Project_Path): Put the directories in table
5245 Search_Directories in the project search path.
5246 (Initialize_Project_Path): For VMS, transform into canonical form the
5249 2007-06-06 Arnaud Charlet <charlet@adacore.com>
5251 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return
5252 true if configurable run-time or No_Run_Time is set.
5253 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when
5254 processing an unit which is not the one being compiled.
5256 2007-06-06 Arnaud Charlet <charlet@adacore.com>
5258 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax.
5259 Replace UC by Ada.UC
5261 * s-bitops.adb: Get rid of System.Pure_Exceptions.
5262 Replace UC by Ada.UC
5264 2007-06-06 Robert Dewar <dewar@adacore.com>
5266 * scng.adb: (Check_End_Of_Line): Deal with very long lines
5268 2007-06-06 Robert Dewar <dewar@adacore.com>
5270 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names
5271 Remove no longer used nodes.
5273 2007-06-06 Javier Miranda <miranda@adacore.com>
5274 Ed Schonberg <schonberg@adacore.com>
5275 Robert Dewar <dewar@adacore.com>
5277 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check
5278 on obsolescent withed unit in case of limited-withed units.
5279 (Analyze_Compilation_Unit): Add guard to code that removed an
5280 instantiation from visibility, to prevent compiler aborts when
5281 instantiation is abandoned early on.
5282 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the
5283 current unit being analyzed, and Distinguish local incomplete types
5284 from limited views of types declared elsewhere.
5285 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation
5286 to state that the class-wide entity is shared by the limited-view
5288 (Analyze_With_Clause): Improve placement of flag for case of
5290 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a
5291 manner similar to GNAT.Current_Exception. This is a violation of
5292 restriction (No_Exception_Propagation), and also inhibits the
5293 optimization of local raise to goto.
5294 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed,
5295 and if so set Most_Recent_Exception_Used flag in Opt, and also check
5296 for violation of restriction No_Exception_Propagation.
5298 2007-06-06 Javier Miranda <miranda@adacore.com>
5299 Hristian Kirtchev <kirtchev@adacore.com>
5300 Gary Dismukes <dismukes@adacore.com>
5302 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the
5303 use of entity Exception_Occurrence if it is not available in the
5306 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When
5307 concurrent types are declared within an Ada 2005 generic, build their
5308 corresponding record types since they are needed for overriding-related
5310 (Analyze_Protected_Type): Rearrange and simplify code for testing that a
5311 protected type does not implement a task interface or a nonlimited
5313 (Analyze_Task_Type): Rearrange and simplify code for testing that a task
5314 type does not implement a protected interface or a nonlimited interface.
5315 (Single_Task_Declaration, Single_Protected_Declaration): use original
5316 entity for variable declaration, to ensure that debugging information
5317 is correcty generated.
5318 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander
5319 routines if the expander is not active.
5320 (Analyze_Task_Body): Mark all handlers to stop optimization of local
5321 raise, since special things happen for task exception handlers.
5323 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for
5324 concurrent types declared within a generic.
5325 (Check_Dispatching_Operation): Do not emit warning about late interface
5326 operations in the context of an instance.
5327 (Check_Dispatching_Call): Remove restriction against calling a
5328 dispatching operation with a limited controlling result.
5329 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and
5330 Register_Interface_DT_Entry by calls to Register_Primitive.
5331 (Check_Dispatching_Formals): Handle properly a function with a
5332 controlling access result.
5334 2007-06-06 Robert Dewar <dewar@adacore.com>
5335 Arnaud Charlet <charlet@adacore.com>
5337 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size):
5338 Check for restriction No_Implementation_Attributes if in Ada 95 mode.
5339 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available
5340 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error
5341 message when using a VM, since this attribute is not supported.
5342 (Analyze_Record_Representation_Clause): Give unrepped component warnings
5344 * usage.adb: Add new warning for renaming of function return objects
5345 Indicate that -gnatwp and -gnatwP concern front-end inlining
5346 Add line for -gnatyg
5347 Add usage information for -gnatw.c/C
5349 2007-06-06 Robert Dewar <dewar@adacore.com>
5350 Ed Schonberg <schonberg@adacore.com>
5353 (Find_Var): Do not consider function call in test for infinite loop
5354 warning if warnings set off for function entity.
5355 (One_Bound): Do not create a temporary for a loop bound if it is a
5357 (Analyze_Assignment): Traverse the right hand side of an assignment and
5358 mark all allocators as static coextensions.
5359 (Analyze_Assignment): Exempt assignments involving a dispatching call
5360 to a function with a controlling access result from the check requiring
5361 the target to be class-wide.
5363 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
5364 Ed Schonberg <schonberg@adacore.com>
5365 Robert Dewar <dewar@adacore.com>
5366 Javier Miranda <miranda@adacore.com>
5368 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the
5369 chain of coextensions when an allocator serves as the root of such a
5371 (Propagate_Coextensions): Remove the test for the root being an
5373 (Resolve_Allocator): Add condition to ensure that all future decoration
5374 occurs on an allocator node. Add processing and cleanup for static
5376 (Valid_Conversion): If the operand type is the limited view of a
5377 class-wide type, use the non-limited view is available to determine
5378 legality of operation.
5379 (Ambiguous_Character): move to spec, for use elsewhere.
5380 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode
5381 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are
5383 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting
5384 Do_Division_Check flag explicitly.
5385 (Resolve_Actuals): If the actual is of a synchronized type, and the
5386 formal is of the corresponding record type, this is a call to a
5387 primitive operation of the type, that is declared outside of the type;
5388 the actual must be unchecked-converted to the type of the actual
5389 (Resolve_Call): Kill all current values for any subprogram call if
5390 flag Suppress_Value_Tracking_On_Call is set.
5391 (Resolve_Type_Conversion): Generate error message the the operand
5392 or target of interface conversions come from a limited view.
5393 (Check_Infinite_Recursion): Ignore generated calls
5394 (Check_Allocator_Discrim_Accessibility): New procedure for checking
5395 that an expression that constrains an access discriminant in an
5396 allocator does not denote an object with a deeper level than the
5397 allocator's access type.
5398 (Resolve_Allocator): In the case of an allocator initialized by an
5399 aggregate of a discriminated type, check that associations for any
5400 access discriminants satisfy accessibility requirements by calling
5401 Check_Allocator_Discrim_Accessibility.
5402 (Resolve_Equality_Op): Handle comparisons of anonymous access to
5403 subprogram types in the same fashion as other anonymous access types.
5404 (Resolve_Concatenation_Arg): Remove initial character '\' in an error
5405 message that is not a continuation message.
5406 (Resolve_Type_Conversion): Add missing support for conversion to
5408 (Resolve_Actuals): Introduce a transient scope around the call if an
5409 actual is a call to a function returning a limited type, because the
5410 resulting value must be finalized after the call.
5411 (Resolve_Actuals): If the call was given in prefix notations, check
5412 whether an implicit 'Access reference or implicit dereference must be
5413 added to make the actual conform to the controlling formal.
5415 2007-06-06 Robert Dewar <dewar@adacore.com>
5416 Javier Miranda <miranda@adacore.com>
5418 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body
5419 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit
5420 overriding of an inherited private subprogram now there is no need to
5421 inherit its dispatching slot and reduce the size of the dispatch table.
5422 Set_All_DT_Position now ensures that the same slot is now assigned to
5423 both entities. This is required to statically build the dispatch table.
5424 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need
5425 of calling Set_All_DT_Position to re-evaluate the position of the
5426 entries in the dispatch table. Such reevaluation is not desired if
5427 the tagged type is already frozen.
5429 2007-06-06 Hristian Kirtchev <kirtchev@adacore.com>
5430 Gary Dismukes <dismukes@adacore.com>
5431 Robert Dewar <dewar@adacore.com>
5432 Javier Miranda <miranda@adacore.com>
5434 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute
5435 reference acts as an lvalue when the attribute name modifies the prefix
5436 (Is_Coextension_Root): New routine.
5437 (Mark_Static_Coextensions): New routine.
5438 (Type_Access_Level): Revise code for checking the level of the
5439 anonymous access type of a return object.
5440 (Safe_To_Capture_Value): Not safe to capture if Address_Taken
5441 (Matches_Prefixed_View_Profile): Remove the no longer necessary
5442 retrieval of the corresponding controlling record type.
5443 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of
5444 concurrent types declared within a generic as well as class wide types.
5445 Emit a mode incompatibility error whenever a protected entry or routine
5446 override an interface routine whose first parameter is not of mode
5447 "out", "in out" or access to variable.
5448 (Overrides_Synchronized_Primitive): Rename to
5449 Find_Overridden_Synchronized_Primitive.
5450 (Collect_Interface_Components): New subprogram that collects all the
5451 components of a tagged record containing tags of secondary dispatch
5453 (Add_Global_Declaration): New procedure
5454 (Abstract_Interface_List): Handle properly the case of a subtype of a
5456 (Type_Access_Level): In the case of a type whose parent scope is a
5457 return statement, call Type_Access_Level recursively on the enclosing
5458 function's result type to determine the level of the return object's
5460 (Build_Elaboration_Entity): Build name of elaboration entity from the
5461 scope chain of the entity, rather than the unit name of the file name.
5462 (Check_Nested_Access): New procedure.
5463 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures.
5464 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access.
5465 (Get_Renamed_Entity): Utility routine for performing common operation
5466 of chasing the Renamed_Entity field of an entity.
5468 2007-06-06 Robert Dewar <dewar@adacore.com>
5470 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on
5472 (Check_A_Call): Add check for entry call which was causing blowup
5474 2007-06-06 Olivier Hainque <hainque@adacore.com>
5476 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add
5477 special code on ia64-vms to handle major incompatibilities between the
5478 GCC unwinding ABI and the VMS Condition Handling Facility, both calling
5479 this routine with a very different set of arguments and expectations on
5482 2007-06-06 Thomas Quinot <quinot@adacore.com>
5484 * socket.c (__gnat_close_signalling_fd): New function.
5485 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname,
5486 __gnat_safe_getservbyname, __gnat_safe_getservbyport):
5487 New supporting functions for task safe Netdb operations.
5489 2007-06-06 Thomas Quinot <quinot@adacore.com>
5490 Olivier Hainque <hainque@adacore.com>
5492 * a-except-2005.ads, a-except-2005.adb
5493 (Raise_From_Controlled_Operation): New procedure in
5494 (private part of) Ada.Exceptions (standard runtime version). Used to
5495 provide informational exception message when Program_Error is raised as
5496 a result of an Adjust or Finalize operation propagating an exception.
5497 (Rmsg_28): Fix description for E.4(18) check.
5498 (Raise_Current_Excep): Call Debug_Raise_Exception just before
5499 propagation starts, to let debuggers know about the event in a reliable
5501 Take the address of E and dereference to make sure it is homed on stack
5502 and prevent the stores from being deleted, necessary for proper
5503 debugger behavior on "break exception" hits.
5504 (Local_Raise): Moved to System.Exceptions
5506 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate
5507 exception message from the current occurrence and raise Program_Error
5508 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation.
5510 2007-06-06 Jose Ruiz <ruiz@adacore.com>
5511 Arnaud Charlet <charlet@adacore.com>
5513 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying
5516 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling
5517 priority associated to a lock.
5519 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax
5520 assertion to take into account case of no abort restriction.
5521 (Initialize_Protection_Entries): Add initialization for the field
5522 New_Ceiling associated to the protected object.
5523 (Unlock_Entries): Change the ceiling priority of the underlying lock, if
5526 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5527 since this function needs to be set consistently with Update_Exception.
5529 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest,
5530 since this function needs to be set consistently with Update_Exception.
5532 * s-taskin.ads: Update comments on
5533 Interrupt_Server_Blocked_On_Event_Flag.
5534 (Unbind_Handler): Fix handling of server_task wakeup
5535 (Server_Task): Set self's state so that Unbind_Handler can take
5536 appropriate actions.
5537 (Common_ATCB): Now use a constant from System.Parameters to determine
5538 the max size of the Task_Image field.
5540 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the
5541 Initialize_Analyzer function.
5542 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to
5543 take into account case of no abort restriction.
5544 ([Vulnerable_]Complete_Master): Modify assertion.
5546 * s-tataat.adb (Finalize): Use the nestable versions of
5547 Defer/Undefer_Abort.
5549 * s-tpobop.adb (Protected_Entry_Call): Relax assertion.
5551 * s-tpobop.ads: Update comments.
5553 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead
5554 of locking the object manually, to avoid inconsistencies between
5555 Lock/Unlock_Entry assertions.
5557 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when
5559 application and System.Parameters.No_Abort is True.
5560 Update comments on Interrupt_Server_Blocked_On_Event_Flag.
5561 (Unbind_Handler): Fix handling of server_task wakeup
5562 (Server_Task): Set self's state so that Unbind_Handler can take
5563 appropriate actions.
5565 2007-06-06 Thomas Quinot <quinot@adacore.com>
5567 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure
5568 declarations instead of an explicit null body, for conciseness.
5570 2007-06-06 Robert Dewar <dewar@adacore.com>
5572 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an
5573 illegal aggregate and the type is still Any_Composite.
5574 (Subtypes_Statically_Match): Fix problem of empty discriminant list
5576 2007-06-06 Ed Schonberg <schonberg@adacore.com>
5578 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object,
5579 to prevent subsequent expansion.
5581 2007-06-06 Robert Dewar <dewar@adacore.com>
5583 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body
5585 2007-06-06 Ed Schonberg <schonberg@adacore.com>
5586 Robert Dewar <dewar@adacore.com>
5588 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for
5590 (Write_Itype): Handle case of string literal subtype, which
5591 comes up in this context.
5592 (Update_Itype): when debugging expanded code, update sloc of itypes
5593 associated with defining_identifiers and ranges, for gdb use.
5594 (Sprint_Node_Actual): Add static keyword to object or exception
5595 declaration output if Is_Statically_Allocated is True.
5596 (Sprint_End_Label): Set entity of end marker for a subprogram, package,
5597 or task body, so that the tree carries the proper Sloc information for
5599 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes
5601 2007-06-06 Arnaud Charlet <charlet@adacore.com>
5603 * s-secsta.adb (Chunk): Ensure this object has a static size known at
5604 compile time, to avoid dynamic memory allocation
5605 (Elaboration code): Only use dynamic memory allocation when needed.
5607 2007-06-06 Quentin Ochem <ochem@adacore.com>
5609 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter
5611 (Stack_Analyzer): Added field "Overflow_Guard"
5612 (Task_Result): Added field "Overflow_Guard".
5613 (Index_Str): New constant.
5614 (Task_Name_Str): New constant.
5615 (Actual_Size_Str): New constant.
5616 (Pattern_Array_Element_Size): New constant.
5617 (Get_Usage_Range): New subprogram.
5618 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len.
5619 Now align the output.
5621 (Initialize): Added value for Overflow_Guard.
5622 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant.
5623 Update the value of the overflow guard according to the actual
5624 beginning of the pattern array.
5625 (Initialize_Analyzer): Added parameter Overflow_Guard.
5626 Take this parameter into accound when computing the max size.
5627 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant.
5628 (Report_Result): Removed extra useless procedure.
5629 Updated call to Output_Result.
5630 Moved full computation of the Task_Result here.
5632 2007-06-06 Thomas Quinot <quinot@adacore.com>
5634 * g-soccon-darwin.ads, gen-soccon.c: Add new constant
5635 Thread_Blocking_IO, always True by default, set False on a per-runtime
5637 Add Windows-specific constants
5638 Add new constant Need_Netdb_Buffer.
5639 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5640 not, whether to use getXXXbyYYY_r.
5642 * gsocket.h: Add new constant Need_Netdb_Buffer.
5643 Add new macros to indicate whether getXXXbyYYY is thread safe and, if
5644 not, whether to use getXXXbyYYY_r.
5646 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
5648 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier
5649 than their first call.
5650 Add type Dummy_Communication_Block used in the generation of the pre-
5651 defined dispatching primitive _disp_asynchronous_select.
5652 (Storage_Element): Put Pragma Universal_Aliasing on it.
5654 2007-06-06 Vincent Celier <celier@adacore.com>
5656 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean
5659 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive
5660 letter if it is not followed by a '/' or a '\'.
5661 (Windows): New Boolean function
5663 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma
5665 (Containing_Directory): On Windows, keep at least one '/' or '\' after a
5667 (Containing_Directory): Raise Use_Error when the directory is a root
5669 (Extension): When returning the result, use a conversion to Result_Type,
5670 not a qualification.
5672 2007-06-06 Robert Dewar <dewar@adacore.com>
5674 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure
5675 (Set_Style_Check_Options): Recognize new -gnatyg style switch
5677 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set
5678 Warn_On_Non_Local_Exception to False, to turn off warnings for
5679 No_Exception_Propagation in ZFP runtime.
5680 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC
5682 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks
5684 2007-06-06 Vincent Celier <celier@adacore.com>
5686 * switch-b.adb (Scan_Binder_Switches): Add processing for new
5689 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E
5690 (Scan_Make_Switches): Recognize new switch -aP
5692 2007-06-06 Matthew Gingell <gingell@adacore.com>
5693 Jose Ruiz <ruiz@adacore.com>
5695 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the
5696 VxWorks task descriptor in the Ada run time, call a C subprogram
5697 (__gnat_get_stack_info) that extracts the required information.
5699 * sysdep.c: Back out temporary lynxos workaround.
5700 (__gnat_get_stack_info): Add this procedure that passes to the Ada run
5701 time the stack information associated to the currently executing task.
5702 Only VxWorks systems require this function.
5704 2007-06-06 Eric Botcazou <ebotcazou@adacore.com>
5706 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not
5707 add the stack bias if the offset is computed from a frame address.
5708 (__gnat_backtrace): Adjust for above change.
5710 2007-06-06 Thomas Quinot <quinot@adacore.com>
5712 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to
5713 PE_Non_Transportable_Actual.
5714 (By_Descriptor_Last): New constant.
5715 (By_Copy_Return): Likewise.
5717 2007-06-06 Vincent Celier <celier@adacore.com>
5719 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as
5722 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X
5723 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg
5724 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg
5725 Add missing comment for /OPTIMIZE=SPACE
5726 Add entry for OPTIMIZE=SPACE
5727 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST
5728 Add documentation for new qualifiers corresponding to -gnatw.c/.C
5730 2007-06-06 Vincent Celier <celier@adacore.com>
5731 Robert Dewar <dewar@adacore.com>
5733 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and
5736 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake
5737 Document gnatbind switch -a
5738 (case Constructions): Document that variables declarations are allowed
5739 for previously declared variables.
5740 Fix external lib project example
5741 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL
5742 Indicate that "#if not X or Y then" is not allowed in input files to
5744 Document gnatw.x and gnatw.X warning flags
5745 Mention -Winline switch to activate warnings when back-end inlining is
5747 Add gnatcheck rule descriptions
5748 Describe how to use the GNAT driver to call a tool on a closure.
5749 Describe how to run project-wide checks or metrics.
5750 Document gnatbind's -R option
5751 Updated to account for Ada 2005 support
5753 * gnat_rm.texi (Case Construction): Allow variable declarations for
5754 previously declared variables.
5755 (Representation Clauses and Pragmas): Lift restriction on alignment
5756 clauses for record types.
5757 (Ada.Characters.*): Fix typo in reference to A.3.3(27).
5758 Document No_Exception_Propagation restriction
5759 Document No_Body pragma
5760 Updated to account for Ada 2005 support; corrected some typos
5761 (Implementation Defined Pragmas): Document pragma Universal_Aliasing.
5763 * gnat-style.texi: Make it clear that we never use mode IN for
5764 procedures or functions
5766 * ug_words: Add entries for -gnatw.x and -gnatw.X
5767 Add entries for -gnatw.c/.C
5769 2007-06-06 Pascal Obry <obry@adacore.com>
5770 Vincent Celier <celier@adacore.com>
5772 * makegpr.adb (Add_Archive_Path): Use untouched object and library
5773 dirs and library name.
5774 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate
5776 (Build_Library): Idem.
5777 (Compile_Individual_Sources): Idem.
5778 (Compile_Link_With_Gnatmake): Idem.
5779 (Compile_Sources): Idem.
5780 (Get_Imported_Directories): Idem.
5781 (Link_Executables): Idem. Same change for the executable dir.
5782 (Check_Compilation_Needed): C_Source_Path new variable containing
5783 the canonical form of Source_Path to check against the source names
5784 in the dependency file.
5785 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In
5786 verbose mode, display the name of the object directory we're changing
5788 (Saved_Switches): New name of table X_Switches
5789 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches
5790 (Usage): New line for switch -aP
5791 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before
5792 testing if a directory should be added to the search path.
5794 2007-06-06 Javier Miranda <miranda@adacore.com>
5796 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads,
5797 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object
5798 declaration after freezing point of all its associated tagged types;
5799 otherwise such types are frozen too early.
5801 2007-06-06 Robert Dewar <dewar@adacore.com>
5803 * a-reatim.adb: Documentation addition
5805 * g-cgideb.adb: Minor code reorganization
5807 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb,
5808 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads,
5809 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting.
5811 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete
5812 function. Change name New_Scope to Push_Scope
5813 (Get_Debug_Flag_K): Remove unused obsolete function.
5815 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to
5818 * makeusg.adb: Update Copyright notice
5819 Add line for switch -aP
5821 * makeusg.adb: Fix wording of some usage messages
5823 * s-assert.adb (Raise_Assert_Failure): Add call to
5824 Debug_Raise_Assert_Failure.
5826 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min
5827 (2, Standard'Alignment) for compatibility with AAMP (where alignment
5828 is restricted to 1).
5830 * s-wchjis.adb: Remove use of System.Pure_Exceptions
5832 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the
5833 node location to No_Location when we're not debugging the expanded
5836 2007-05-22 Alexandre Oliva <aoliva@redhat.com>
5838 * misc.c (enumerate_modes): Consider log2_b to always be one.
5840 2007-05-14 Rafael Avila de Espindola <espindola@google.com>
5842 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
5844 2007-05-02 Pascal Obry <obry@adacore.com>
5846 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation
5847 to use Stream_IO.File_Type. This is needed to make use of the UTF-8
5848 encoding support of Stream_IO.
5851 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the
5852 filename and corresponding encoding to match the OS requirement.
5853 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this
5854 routine will fail on specific devices like CON: AUX: ...
5856 PR ada/29856: Add missing braces
5858 2007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com>
5861 * ada-tree.h (lang_tree_node): Fix typo in chain_next.
5863 2007-04-21 Jan Hubicka <jh@suse.cz>
5865 * misc.c (gnat_expand_body): Don't call target for destructors,
5866 avoid redundant check on syntax errors.
5868 2007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com>
5870 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT
5871 instead of checking GIMPLE_STMT_P in chain_next.
5873 2007-04-17 Andreas Krebbel <krebbel1@de.ibm.com>
5876 * system-linux-alpha.ads: Disable constant condition warning for the
5877 Default_Bit_Order variable.
5878 * system-linux-s390.ads: Likewise.
5879 * system-linux-s390x.ads: Likewise.
5880 * system-linux-sparc.ads: Likewise.
5882 2007-04-06 Javier Miranda <miranda@adacore.com>
5883 Matt Heaney <heaney@adacore.com>
5884 Robert Dewar <dewar@adacore.com>
5886 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
5887 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
5888 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
5889 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
5890 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
5891 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
5892 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
5893 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
5894 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
5895 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
5896 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
5897 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
5898 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
5899 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
5900 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
5901 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
5902 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
5903 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
5904 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
5905 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
5906 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
5907 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
5908 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
5909 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
5910 s-taprop-tru64.adb, s-taprop-irix.adb,
5911 s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
5912 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
5913 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
5914 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
5915 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
5916 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
5917 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
5918 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
5919 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
5920 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
5921 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
5922 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
5923 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
5924 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
5925 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
5926 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
5927 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
5928 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
5929 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
5930 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
5932 Update documentation.
5935 2007-04-06 Robert Dewar <dewar@adacore.com>
5937 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads,
5938 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
5939 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads,
5940 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
5941 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads,
5942 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
5943 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
5944 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads,
5945 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads,
5946 system-hpux-ia64.ads, targparm.adb,
5947 targparm.ads (Functions_Return_By_DSP_On_Target): Removed
5949 * system.ads: Move Functions_Return_By_DSP to obsolete section,
5950 kept for bootstrap purposes only.
5952 2007-04-06 Arnaud Charlet <charlet@adacore.com>
5954 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads,
5955 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads,
5956 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info.
5957 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants.
5959 2007-04-06 Robert Dewar <dewar@adacore.com>
5961 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb
5962 (Local_Raise): New dummy procedure called when a raise is converted
5963 to a local goto. Used for debugger to detect that the exception
5966 * debug.adb: Document new d.g flag (expand local raise statements to
5967 gotos even if pragma Restriction (No_Exception_Propagation) is not set)
5969 * exp_sel.adb: Use Make_Implicit_Exception_Handler
5971 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to
5972 suppress warnings for unused handlers.
5973 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress
5974 warnings for raise statements not handled locally.
5975 (Get_RT_Exception_Entity): New function
5976 (Get_Local_Call_Entity): New function
5977 (Find_Local_Handler): New function
5978 (Warn_If_No_Propagation): New procedure
5979 (Expand_At_End_Handler): Call Make_Implicit_Handler
5980 (Expand_Exception_Handlers): Major additions to deal with local handlers
5981 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error,
5982 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling
5985 * exp_ch11.ads (Get_RT_Exception_Entity): New function
5986 (Get_Local_Call_Entity): New function
5988 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list
5989 of restrictions that the binder will never suggest adding.
5991 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field
5994 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not
5995 be with'ed in the presence of pragma Restriction
5996 (No_Exception_Propagation).
5998 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes
6000 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice
6001 parameter, then the handler is not a suitable target for a local raise,
6002 and this is a violation of restriction No_Exception_Propagation.
6003 (Analyze_Handled_Statements): Analyze choice parameters in exception
6004 handlers before analyzing statement sequence (needed for proper
6005 detection of local raise statements).
6006 (Analyze_Raise_Statement): Reraise statement is a violation of the
6007 No_Exception_Propagation restriction.
6009 * s-rident.ads: Add new restriction No_Exception_Propagation
6011 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New
6012 function, like Make_Exception_Handler but sets Local_Raise_Statements
6014 (Add_Unique_Serial_Number): Deal with case where this is called during
6015 processing of configuration pragmas.
6017 2007-04-06 Thomas Quinot <quinot@adacore.com>
6018 Pat Rogers <rogers@adacore.com>
6019 Pascal Obry <obry@adacore.com>
6021 * g-stsifd-sockets.adb: New file.
6023 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb,
6024 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads,
6025 g-socthi-vms.adb: Move signalling
6026 fd management to a nested package, so that they can conveniently be
6027 moved to a subunit that is shared across Windows, VMS, and VxWorks
6028 (Ada implementation) or completed with imported bodies from socket.c
6030 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New
6032 (Check_Selector): Use Read_Signalling_Fd to read and discard data from
6033 the signalling file descriptor.
6034 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the
6035 signalling file descriptor.
6036 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds
6037 instead of creating a pair of sockets for signalling here.
6039 * g-socthi.adb: Ditto.
6040 Set the runtime process to ignore SIGPIPEs on platforms that support
6041 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
6043 * g-socthi-mingw.adb: Ditto.
6044 (WS_Version): Use Windows 2.2.
6045 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
6047 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support.
6048 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API.
6050 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb.
6051 added GNAT byte swapping facility
6052 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6.
6054 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files.
6056 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd):
6058 (__gnat_create_signalling_fds): New subprogram.
6059 Set the runtime process to ignore SIGPIPEs on platforms that support
6060 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality.
6062 2007-04-06 Hristian Kirtchev <kirtchev@adacore.com>
6063 Vincent Celier <celier@adacore.com>
6065 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb:
6066 New version of Ada.Calendar which supports the new upper bound of Ada
6067 time (2399-12-31 86_399.999999999).
6068 The following modifications have been made to the package:
6069 - New representation of time as count of nanoseconds since the start of
6070 Ada time (1901-1-1 0.0).
6071 - Target independent Split and Time_Of routines which service both
6072 Ada 95 and Ada 2005 code.
6073 - Target independent interface to the Ada 2005 children of Calendar.
6074 - Integrated leap seconds into Ada 95 and Ada 2005 mode.
6075 - Handling of non-leap centenial years.
6076 - Updated clock function.
6077 - Updated arithmetic and comparison operators.
6079 * a-caldel.adb (To_Duration): Add call to target independent routine in
6080 Ada.Calendar to handle the conversion of time to duration.
6082 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off
6084 If timezone is obviously incorrect (outside of -14 hours .. 14 hours),
6086 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these
6087 targets do not have a natural time zone, GMT is used as a default.
6088 (__gnat_get_task_options): New.
6090 * a-direct.adb (Modification_Time): Add with and use clauses for
6091 Ada.Calendar and Ada.
6092 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion
6093 since it is no longer needed.
6094 (Duration_To_Time): Removed.
6095 (OS_Time_To_Long_Integer): Removed.
6096 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar.
6097 Formatting Time_Of routines which automatically handle time zones,
6098 buffer periods and leap seconds.
6100 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to
6101 target independent routines in Ada.Calendar.
6103 * a-calfor.ads, a-calfor.adb:
6104 Code cleanup and addition of validity checks in various routines.
6105 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in
6108 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target
6109 independent routine in Ada.Calendar.
6111 2007-04-06 Olivier Hainque <hainque@adacore.com>
6114 (convert_addresses): Adjust prototype and dummy definition to expect an
6115 extra file_name argument.
6117 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses,
6118 filling the now expected file_name argument with the appropriate
6120 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it.
6121 (tracebk): Array of void * instead of char *, corresponding to what
6122 convert_addresses expects.
6123 (exename): New static global, to hold the executable file name to be
6124 used in all convert_addresses invocations.
6125 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type
6127 (__gnat_gmem_a2l_initialize): Resolve exename.
6128 (__gnat_convert_addresses): Use exename as the convert_addresses
6131 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported
6132 "convert_addresses", now expecting a filename argument. Import the
6133 necessary entities to compute the filename to use and pass it to
6136 2007-04-06 Matt Gingell <gingell@adacore.com>
6138 * system-aix.ads: Back out previous change.
6139 (Functions_Return_By_DSP): Removed
6141 2007-04-06 Pascal Obry <obry@adacore.com>
6143 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one
6144 or the monotonic used by Ada.Real_Time) to compute the sleep duration
6147 2007-04-06 Jose Ruiz <ruiz@adacore.com>
6149 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this
6150 function. Its value changes in different VxWorks versions, and it is
6151 now handled by the function __gnat_get_task_options.
6153 * s-taprop-vxworks.adb (Create_Task): Call the function
6154 __gnat_get_task_options to get the required options for creating a task.
6156 2007-04-06 Pascal Obry <obry@adacore.com>
6157 Thomas Quinot <quinot@adacore.com>
6159 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when
6160 dealing with filename.
6161 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the
6162 filename from a standard string to a wide-string depending on the
6164 (__gnat_freopen): Idem.
6165 (__gnat_current_time): New function (wrapper for time(3) standard C
6168 * g-os_lib.ads (Current_Time): New function. Returns the current
6169 system time as an OS_Time value.
6171 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch.
6172 (Monotonic_Clock): Same.
6174 2007-04-06 Quentin Ochem <ochem@adacore.com>
6176 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is
6178 (Scan_ALI): Cancel the xref line if there has been a reading ALI error.
6180 2007-04-06 Jose Ruiz <ruiz@adacore.com>
6182 * a-retide.adb: Add elaboration code to ensure that the tasking run
6183 time is initialized when using delay operations even when no task is
6186 2007-04-06 Javier Miranda <miranda@adacore.com>
6188 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove
6189 component Num_Prim_Ops.
6190 (Set_Num_Prim_Ops): Removed.
6191 Remove all the assertions because all the routines of this
6192 package are inline always.
6193 (Get_Offset_Index): Add support to primary dispatch tables.
6194 Move the documentation about the dispatch table to a-tags.ads
6195 (Set_External_Tag): Removed
6196 (Inherit_TSD): Removed.
6197 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations
6199 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags,
6200 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences
6201 of the TSD field "Table" because this field has been renamed to
6203 (Inherit_CPP_DT): Removed.
6204 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature,
6205 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These
6206 declarations have been moved to a-tags.ads
6207 (Check_Size): Removed.
6208 (Expanded_Name): Updated to get access to the new field of TSD
6209 containing the address of the expanded name.
6210 (Get_Access_Level/Set_Access_Level): Removed.
6211 (Get_Predefined_Prim_Op_Address): Removed.
6212 (Set_Predefined_Prim_Op_Address): Removed.
6213 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed.
6214 (Get_Remotely_Callable/Set_Remotely_Callable): Removed.
6215 (Set_Expanded_Name): Removed.
6216 (Inherit_DT): Removed.
6217 (Inherit_CPP_DT): Removed.
6218 (Set_RC_Offset): Removed.
6220 (Base_Address): New function that displaces "this" to point to the base
6221 of the object (that is, to point to the primary tag of the object).
6223 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6224 Javier Miranda <miranda@adacore.com>
6226 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an
6227 anonymous access component, do not create a master_id if type already
6228 has one, as may happen if the type is a subcomponent of a packed array
6230 (Build_Init_Procedure, Component_Needs_Simple_Initialization,
6231 Initialize_Tag): Remove code associated with the old CPP pragmas.
6232 CPP_Virtual and CPP_Vtable are no longer supported.
6233 (Build_Offset_To_Top_Internal): Add support for concurrent record types
6234 (Build_Offset_To_Top_Functions): Add support for concurrent record types
6235 (Freeze_Record_Type): Remove call to
6236 Init_Predefined_Interface_Primitives.
6237 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the
6238 code required to initialize the tags of the secondary dispatch tables.
6239 This leaves the algoritm more clear.
6240 (Init_Secondary_Tags): Add support for concurrent record types
6241 (Make_Predefined_Primitive_Specs): Code cleanup.
6242 (Predefined_Primitive_Bodies): Code cleanup.
6243 (Build_Master_Renaming): New local subprogram.
6244 (Expand_N_Full_Type_Declaration): Build the master_id associated with
6245 anonymous access to task type components.
6246 (Expand_N_Subtype_Indication): The bounds of a range constraint in a
6247 subtype indication are resolved during analysis, and must not be done
6249 (Stream_Operation_OK): Check Restriction_Active before RTE_Available.
6251 2007-04-06 Geert Bosch <bosch@adacore.com>
6252 Ed Schonberg <schonberg@adacore.com>
6253 Javier Miranda <miranda@adacore.com>
6254 Bob Duff <duff@adacore.com>
6256 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing
6257 for conversion of a Float_Type'Truncation to integer.
6259 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to
6260 check if a node is an attribute that can be handled directly by the
6262 (Expand_N_Attribute_Reference): Suppress expansion of floating-point
6263 attributes that can be handled directly by the back end.
6264 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access):
6265 use new predicate Is_Access_Protected_Subprogram_Type.
6266 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for
6267 and Unchecked_Union if it is generated as part of the default Output
6268 procedure for a type with default discriminants.
6269 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls
6270 if we are compiling under restriction No_Dispatching_Calls.
6271 (Constrained): Use Underlying_Type, in case the type is private without
6272 discriminants, but the full type has discriminants.
6273 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by
6274 call to Build_Get_Access_Level.
6275 (Expand_N_Attribute_Reference): The use of 'Address with class-wide
6276 interface objects requires a call to the run-time subprogram that
6277 returns the base address of the object.
6278 (Valid_Conversion): Improve error message on illegal attempt to store
6279 an anonymous access to subprogram value into a record component.
6281 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access =
6283 (Simplify_Type_Conversion): New procedure that performs simplification
6284 of Int_Type (Float_Type'Truncation (X)).
6285 (Resolve_Type_Conversion): Call above procedure after resolving operand
6286 and before performing checks. This replaces the existing ineffective
6288 (Set_String_Literal_Subtype): When creating the internal static lower
6289 bound subtype for a string literal, use a newly created copy of the
6290 subtree representing the lower bound.
6291 (Resolve_Call): Exclude build-in-place function calls from transient
6292 scope treatment. Update comments to describe this exception.
6293 (Resolve_Equality_Op): In case of dispatching call check violation of
6294 restriction No_Dispatching_Calls.
6295 (Resolve_Call): If the call returns an array, the context imposes the
6296 component type of the array, and the function has one non-defaulted
6297 parameter, rewrite the call as the indexing of a call with a single
6298 parameter, to handle an Ada 2005 syntactic ambiguity for calls written
6300 (Resolve_Actuals): If an actual is an allocator for an access parameter,
6301 the master of the created object is the innermost enclosing statement.
6302 (Remove_Conversions): For a binary operator, check if type of second
6303 formal is numeric, to check if an abstract interpretation is present
6304 in the case of exponentiation as well.
6306 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6307 Bob Duff <duff@adacore.com>
6309 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When
6310 copying a parameter list in a call, set properly the First_Named_Formal
6311 and Next_Named_Formal fields in the new list and in the enclosing call.
6312 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten
6313 names, to ease typing in the debugger. Improve comments.
6314 (Watch_Node): New variable, intended to be set in the debugger.
6315 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on,
6316 called when the watched node is created.
6317 (New_Node_Debugging_Output): Combined version of local procedures
6318 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global,
6319 with a parameter so that conditional breakpoints like "if Node = 12345"
6321 (New_Node, New_Entity): Call the global New_Node_Debugging_Output.
6324 2007-04-06 Thomas Quinot <quinot@adacore.com>
6325 Ed Schonberg <schonberg@adacore.com>
6326 Gary Dismukes <dismukes@adacore.com>
6328 * checks.ads, checks.adb (Selected_Range_Checks): No range check is
6329 required for a conversion between two access-to-unconstrained-array
6331 (Expr_Known_Valid): Validity checks do not apply to discriminants, but
6332 to discriminant constraints on discriminant objects. This rule must
6333 apply as well to discriminants of protected types in private components.
6334 (Null_Exclusion_Static_Checks): If No_Initialization is set on an
6335 object of a null-excluding access type then don't require the
6336 the object declaration to have an expression and don't emit a
6339 2007-04-06 Arnaud Charlet <charlet@adacore.com>
6340 Eric Botcazou <botcazou@adacore.com>
6342 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type
6345 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter
6346 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't
6349 * fe.h (Compiler_Abort): Add third parameter.
6351 * misc.c (internal_error_function): Build third argument from current
6352 input location and pass it to Compiler_Abort.
6354 2007-04-06 Gary Dismukes <dismukes@adacore.com>
6356 * cstand.adb (Create_Standard): When the target's storage unit size is
6357 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on
6360 2007-04-06 Nicolas Roche <roche@adacore.com>
6362 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which
6363 absolute path can have the following form: device:/a/b. In this case
6364 '/' should be inserted between the path and the filename.
6366 2007-04-06 Olivier Hainque <hainque@adacore.com>
6367 Eric Botcazou <botcazou@adacore.com>
6369 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external
6370 VAR_DECL to a CONST_DECL we make for a public constant when we know the
6371 corresponding definition has created the so made visible variable.
6372 Handle anonymous access to protected subprogram.
6373 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an
6374 object with an address clause volatile. Re-enable original fix.
6375 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type
6377 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL
6378 associated with either the Equivalent or Root type, instead of the
6380 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET
6381 subtree for every field of a global record type.
6382 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has
6383 discriminants, invoke again variable_size on its newly computed sizes.
6385 2007-04-06 Robert Dewar <dewar@adacore.com>
6386 Thomas Quinot <quinot@adacore.com>
6387 Ed Schonberg <schonberg@adacore.com>
6388 Bob Duff <duff@adacore.com>
6390 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function
6391 (Next_Component_Or_Discriminant): New function and procedure
6392 (First_Index, First_Literal, Master_Id,
6393 Set_First_Index, Set_First_Literal, Set_Master_Id):
6394 Add missing Ekind assertions.
6395 (Is_Access_Protected_Subprogram_Type): New predicate.
6396 (Has_RACW): New entity flag, set on package entities to indicate that
6397 the package contains the declaration of a remote accecss-to-classwide
6399 (E_Return_Statement): This node type has the Finalization_Chain_Entity
6400 attribute, in case the result type has controlled parts.
6401 (Requires_Overriding): Add this new flag, because "requires
6402 overriding" is subtly different from "is abstract" (see AI-228).
6403 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and
6404 Is_Abstract_Type. Make sure these are called only when appropriate.
6405 (Has_Pragma_Unreferenced_Objects): New flag
6407 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is
6408 class-wide, the tag of the right-hand side must be an exact match, not
6409 an ancestor of that of the object on left-hand side.
6410 (Move_Activation_Chain): New procedure to create the call to
6411 System.Tasking.Stages.Move_Activation_Chain.
6412 (Expand_N_Extended_Return_Statement): Generate code to call
6413 System.Finalization_Implementation.Move_Final_List at the end of a
6414 return statement if the function's result type has controlled parts.
6415 Move asserts to Build_In_Place_Formal.
6416 (Move_Final_List): New function to create the call statement.
6417 (Expand_N_Assignment_Statement): In case of assignment to a class-wide
6418 tagged type, replace generation of call to the run-time subprogram
6419 CW_Membership by call to Build_CW_Membership.
6420 (Expand_N_Return_Statement): Replace generation of call to the run-time
6421 subprogram Get_Access_Level by call to Build_Get_Access_Level.
6422 (Expand_N_Simple_Function_Return): Replace generation of call to the
6423 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6425 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate
6426 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous
6427 access to protected operations.
6428 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the
6429 master and chain actual parameters to a build-in-place function call
6431 (BIP_Formal_Suffix): Add new enumeration literals to complete the case
6433 (Make_Build_In_Place_Call_In_Allocator,
6434 Make_Build_In_Place_Call_In_Anonymous_Context,
6435 Make_Build_In_Place_Call_In_Assignment,
6436 Make_Build_In_Place_Call_In_Object_Declaration): Call
6437 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master.
6438 (Expand_Inlined_Call): If the subprogram is a null procedure, or a
6439 stubbed procedure with a null body, replace the call with a null
6440 statement without using the full inlining machinery, for efficiency
6441 and to avoid invalid values in source file table entries.
6443 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for
6444 renamings of calls to build-in-place functions.
6446 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that
6447 provides the functionality of RTE_Available to record components.
6448 (RTU_Entity): The function Entity has been renamed to RTU_Entity
6449 to avoid undesired overloading.
6450 (Entity): New subprogram that returns the entity for the referened
6451 unit. If this unit has not been loaded, it returns Empty.
6452 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities.
6453 Remove no longer used entities.
6454 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities.
6455 (RE_Type_Specific_Data): New entity.
6456 (RE_Move_Any_Value): New entity.
6457 (RE_TA_A, RE_Get_Any_Type): New entities.
6458 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count,
6459 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable,
6460 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added.
6461 (Entity): New subprogram that returns the entity for the referened
6462 unit. If this unit has not been loaded, it returns Empty.
6463 (RTE): Addition of a new formal that extends the search to the scopes
6464 of the record types found in the chain of the package.
6466 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print
6467 "abstract subprograms must be visible" message, whether or not the type
6468 is an interface; that is, remove the special case for interface types.
6469 (Analyze_Function_Return): Remove error message "return of task objects
6470 is not yet implemented" because this is now implemented.
6471 (Create_Extra_Formals): Add the extra master and activation chain
6472 formals in case the result type has tasks.
6473 Remove error message "return of limited controlled objects is not yet
6475 (Create_Extra_Formals): Add the extra caller's finalization list formal
6476 in case the result type has controlled parts.
6477 (Process_Formals): In case of access formal types there is no need
6478 to continue with the analysis of the formals if we already notified
6480 (Check_Overriding_Indicator): Add code to check overriding of predefined
6482 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained
6483 flags for formals that do not require them,.
6484 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless
6485 hidden entity is use visible or directly visible.
6486 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body,
6487 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification,
6488 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator,
6489 New_Overloaded_Entity): Split Is_Abstract flag into
6490 Is_Abstract_Subprogram and Is_Abstract_Type.
6492 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move
6493 a return statement's finalization list to the caller's list, used for
6494 build-in-place functions with result type with controlled parts.
6495 Remove no longer used entities.
6497 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no
6498 longer needed, because the full type is now limited, and therefore a
6499 pass-by-reference type.
6500 (Foreign_Task_Level): New constant.
6502 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to
6503 move tasks from the activation chain belonging to a return statement to
6504 the one passed in by the caller, and update the master to the one
6505 passed in by the caller.
6506 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master
6507 of unactivated tasks, so we don't kill the ones that are being returned
6508 by a build-in-place function.
6509 (Create_Task): Ignore AI-280 for foreign threads.
6511 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6512 Robert Dewar <dewar@adacore.com>
6513 Bob Duff <duff@adacore.com>
6514 Gary Dismukes <dismukes@adacore.com>
6516 * errout.adb (Unwind_Internal_Type): Use predicate
6517 Is_Access__Protected_Subprogram_Type.
6519 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant
6520 (Freeze_Entity, packed array case): Do not override explicitly set
6521 alignment and size clauses.
6522 (Freeze_Entity): An entity declared in an outer scope can be frozen if
6523 the enclosing subprogram is a child unit body that acts as a spec.
6524 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type.
6525 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order
6526 Remove all code for DSP option
6528 * layout.adb (Layout_Record_Type): Use First/
6529 Next_Component_Or_Discriminant
6530 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type,
6531 to handle properly the anonymous access case.
6533 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type
6534 for all access attributes, because overload resolution should work the
6535 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This
6536 causes the error message for the ambiguous "X'Access = Y'Access" and
6537 "X'Unrestricted_Access = Y'Access" and so forth to match.
6538 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type,
6539 now that anonymous access to protected operations have their own kind.
6540 (Resolve_Attribute): In case of dispatching call check the violation of
6541 restriction No_Dispatching_Calls.
6542 (Check_Array_Type): Check new -gnatyA array index style option
6544 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an
6545 attempt to derive from a synchronized tagged type.
6546 (Analyze_Type_Declaration): If there is a incomplete tagged view of the
6547 type, inherit the class-wide type already created, because it may
6548 already have been used in a self-referential anonymous access component.
6549 (Mentions_T): Recognize self-referential anonymous access components
6550 that use (a subtype of) the class-wide type of the enclosing type.
6551 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass
6552 Derived_Type for Prev formal on call to
6553 Check_Anonymous_Access_Components rather than Empty.
6554 (Make_Incomplete_Type_Declaration): Add test for case where the type has
6555 a record extension in deciding whether to create a class-wide type,
6556 rather than just checking Tagged_Present.
6557 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies
6558 to stand-alone object declarations as well as component declarations.
6559 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to
6560 prevent accidental overwriting when enclosing package appears in
6561 a limited_with_clause.
6562 (Array_Type_Declaration): If the component type is an anonymous access,
6563 the associated_node for the itype is the type declaration itself.
6564 (Add_Interface_Tag_Components): Modified to support concurrent
6565 types with abstract interfaces.
6566 (Check_Abstract_Interfaces): New subprogram that verifies the ARM
6567 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2).
6568 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration
6569 to complete the decoration of synchronized interface types. Add also
6570 a call to Check_Abstract_Interfaces to verify the ARM rules.
6571 (Derive_Interface_Subprograms): Modified to support concurrent types
6572 with abstract interfaces.
6573 (Analyze_Subtype_Indication): Resolve the range with the given subtype
6574 mark, rather than delaying the full resolution depending on context.
6575 (Analyze_Component_Declaration,Analyze_Interface_Declaration,
6576 Analyze_Object_Declaration,Analyze_Subtype_Declaration,
6577 Array_Type_Declaration,Build_Derived_Record_Type,
6578 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion,
6579 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type,
6580 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into
6581 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6582 called only when appropriate.
6583 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type
6585 (Analyze_Subtype_Declaration): For an access subtype declaration, create
6586 an itype reference for the anonymous designated subtype, to prevent
6587 scope anonmalies in gigi.
6588 (Build_Itype_Reference): New utility, to simplify construction of such
6591 2007-04-06 Vincent Celier <celier@adacore.com>
6593 * errutil.adb (Initialize): Initialize warnings table, if all warnings
6594 are suppressed, supply an initial dummy entry covering all possible
6597 * make.adb (Scan_Make_Arg): Reject options that should start with "--"
6598 and start with only one, such as "-RTS=none".
6599 (Collect_Arguments): Do not check for sources outside of projects.
6600 Do not collect arguments if project is externally built.
6601 (Compile_Sources): Do nothing, not even check if the source is up to
6602 date, if its project is externally built.
6603 (Compile): When compiling a predefined source, add -gnatpg
6604 as the second switch, after -c.
6605 (Compile_Sources): Allow compilation of Annex J renames without -a
6606 (Is_In_Object_Directory): Check if the ALI file is in the object
6607 even if there is no project extension.
6608 (Create_Binder_Mapping_File): Only put a unit in the mapping file for
6609 gnatbind if the ALI file effectively exists.
6610 (Initialize): Add the directory where gnatmake is invoked in front of
6611 the path if it is invoked from a bin directory, even without directory
6612 information, so that the correct GNAT tools will be used when spawned
6613 without directory information.
6615 * makeusg.adb: Change switch -S to -eS
6616 Add lines for new switches -we, -wn and -ws
6617 Add line for new switch -p
6619 * prj-proc.adb (Process): Set Success to False when Warning_Mode is
6620 Treat_As_Error and there are warnings.
6622 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip
6623 -gnatww Change gnatmake switch -S to -eS
6624 (Scan_Make_Switches): Code reorganisation. Process separately multi
6625 character switches and single character switches.
6626 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to
6627 False when switch is not recognized by gnatmake.
6628 (Scan_Make_Switches): Set Setup_Projects True when -p or
6629 --create-missing-dirs is specified.
6631 * fname.adb (Is_Predefined_File_Name): Return True for annex J
6632 renamings Calendar, Machine_Code, Unchecked_Conversion and
6633 Unchecked_Deallocation only when Renamings_Included is True.
6635 * par.adb: Allow library units Calendar, Machine_Code,
6636 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even
6637 when -gnatg is not specified.
6638 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
6639 there is no need to generate always a record_definition_node in case
6640 of synchronized interface types.
6641 (SIS_Entry_Active): Initialize global variable to False
6642 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to
6643 indicate cases where AI-447 says "not null" is legal.
6645 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function
6647 * makegpr.adb (Check_Compilation_Needed): Take into account dependency
6648 files with with several lines starting with the object fileb name.
6649 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs
6651 (Initialize): Add the directory where gprmake is invoked in front of the
6652 path, if it is invoked from a bin directory or with directory
6653 information, so that the correct GNAT tools will be used when invoked
6655 (Check_Compilation_Needed): Process correctly backslashes on Windows.
6657 * vms_data.ads: Update switches/qualifiers
6659 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6660 Thomas Quinot <quinot@adacore.com>
6663 If the array component is a discriminated record, the array aggregate
6664 is non-static even if the component is given by an aggregate with
6666 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant
6667 (Convert_Aggr_In_Allocator): If the allocator is for an access
6668 discriminant and the type is controlled. do not place on a finalization
6669 list at this point. The proper list will be determined from the
6671 (Build_Record_Aggr_Code): If aggregate has box-initialized components,
6672 initialize record controller if needed, before the components, to ensure
6673 that they are properly finalized.
6674 (Build_Record_Aggr_Code): For the case of an array component that has a
6675 corresponding array aggregate in the record aggregate, perform sliding
6678 2007-04-06 Javier Miranda <miranda@adacore.com>
6679 Gary Dismukes <dismukes@adacore.com>
6680 Ed Schonberg <schonberg@adacore.com>
6682 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the
6683 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag.
6685 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time
6686 accessibility on class-wide allocators if the allocator occurs at the
6687 same scope level as the allocator's type. The check is guaranteed to
6688 succeed in that case, even when the expression originates from a
6689 parameter of the containing subprogram.
6690 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling
6691 under No_Dispatching_Calls restriction. During the semantic analysis
6692 we already notified such violation.
6693 (Tagged_Membership): Constant folding. There is no need to check
6694 the tag at run-time if the type of the right operand is non
6695 class-wide abstract.
6696 Replace call to Is_Ancestor by call to Is_Parent
6697 to support concurrent types with interface types.
6698 (Expand_N_Allocator): Add an assertion associated with the generation
6700 (Expand_N_Slice): Do not enable range check to nodes associated
6701 with the frontend expansion of the dispatch table.
6702 (Is_Local_Access_Discriminant): Subsidiary function to
6704 (Tagged_Membership): Replace generation of call to the run-time
6705 subprogram CW_Membership by call to Build_CW_Membership.
6706 (Expand_Allocator_Expression): Replace generation of call to the
6707 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level.
6709 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to
6710 initialize most the TSD components by means of an aggregate.
6711 Modify the declaration of the object containing the TSD
6712 because we now expand code that has a higher level of abstraction.
6713 The TSD has a discriminant containing the Inheritance Depth Level,
6714 value that is used in the membership test but also to fix the size
6715 of the table of ancestors.
6716 (Expand_Interface_Conversion): Insert function body at the closest place
6717 to the conversion expression, to prevent access-before-elaboration
6718 errors in the backend.
6719 Code improved to reduce the size of the dispatch table if
6720 compiling under restriction No_Dispatching_Calls plus code cleanup.
6721 Code reorganization plus removal of calls to Set_Num_Prim_Ops
6722 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops.
6723 (Expand_Dispatching_Call): Minor code reorganization plus addition of
6724 code to return immediately if compiling under No_Dispatching_Calls
6726 (Set_All_DT_Position): Remove code associated with the old CPP pragmas.
6727 CPP_Virtual and CPP_Vtable are no longer supported.
6728 (Expand_Interface_Conversion): Add missing support for interface type
6730 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to
6731 Is_Parent to support concurrent types with interfaces.
6732 (Init_Predefined_Interface_Primitives): Removed.
6733 (Make_Secondary_DT): Modified to support concurrent record types.
6734 (Set_All_DT_Position): Modified to support concurrent record types.
6735 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6736 with Get_External_Tag, Inherit_TSD, Set_External_Tag.
6737 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated
6739 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated
6740 with Get_Access_Level, Get_Predefined_Prim_Op_Address,
6741 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT,
6742 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address,
6743 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD.
6744 (Expand_Dispatching_Call): Replace generation of call to the run-time
6745 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by
6746 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_
6748 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to
6749 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_
6750 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and
6751 Build_Set_Prim_Op_Address.
6752 (Get_Remotely_Callable): Subprogram removed.
6753 (Init_Predefined_Interface_Primitives): Replace generation of call to
6754 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_
6757 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to
6758 First (Parameter_Associations ()) with the call to First_Actual that
6759 returns an actual parameter expression for both named and positional
6762 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call
6763 check violation of restriction No_Dispatching_Calls.
6764 (Check_Controlling_Type): A formal of a tagged incomplete type is a
6765 controlling argument.
6767 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use
6768 First/Next_Component_Or_Discriminant
6769 (Insert_Actions): Add entries for new N_Push and N_Pop nodes
6770 (Find_Implemented_Interface): Removed. All the calls to this subprogram
6771 specify Any_Limited_Interface, and this functionality is already
6772 provided by the function Has_Abstract_Interfaces.
6773 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to
6774 support concurrent types implementing interfaces.
6775 (Find_Implemented_Interface): Removed. All the calls to this subprogram
6776 specify kind Any_Limited_Interface, and this functionality is already
6777 provided by the function Has_Abstract_Interfaces.
6778 (Remove_Side_Effects): replace Controlled_Type by
6779 CW_Or_Controlled_Type whenever the issue is related to
6780 using or not the secondary stack.
6782 * par-ch12.adb (P_Formal_Type_Definition): Update calls to
6783 P_Interface_Type_Definition to fulfill the new interface (the formal
6784 Is_Synchronized is no longer required).
6786 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o
6787 Update dependencies.
6789 * exp_atag.ads, exp_atag.adb: New file
6791 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6792 Bob Duff <duff@adacore.com>
6793 Cyrille Comar <comar@adacore.com>
6795 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is
6796 anonymous, use finalization list of enclosing dynamic scope.
6797 (Expand_N_Package_Declaration): For a library package declaration
6798 without a corresponding body, generate RACW subprogram bodies in the
6799 spec (just as we do for the task activation call).
6800 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and
6801 Is_Abstract_Type. Make sure these are called only when appropriate.
6802 Remove all code for DSP option
6803 (CW_Or_Controlled_Type): new subprogram.
6805 2007-04-06 Eric Botcazou <botcazou@adacore.com>
6806 Ed Schonberg <schonberg@adacore.com>
6807 Gary Dismukes <dismukes@adacore.com>
6809 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean
6810 parameter. If it is set to true, return a result capped according to
6811 the global upper bound for the index of an entry family.
6812 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset
6813 (Build_Find_Body_Index): Adjust for above change.
6814 (Entry_Index_Expression): Likewise.
6815 (Is_Potentially_Large_Family): New function extracted from...
6816 (Collect_Entry_Families): ...here. Call it to detect whether the family
6817 is potentially large.
6818 (Build_Entry_Count_Expression): If the family is potentially large, call
6819 Family_Size with 'Cap' set to true.
6820 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate
6821 a protected version of an operation declared in the private part of
6822 a protected object, because they may be invoked through a callback.
6823 (Set_Privals): If the type of a private component is an anonymous access
6824 type, do not create a new itype for each protected body.
6825 If the body of a protected operation creates
6826 controlled types (including allocators for class-widetypes), the
6827 body of the corresponding protected subprogram must include a
6829 (Build_Activation_Chain_Entity): Build the chain entity for extended
6831 (Type_Conformant_Parameters): Use common predicate Conforming_Types
6832 to determine whether operation overrides an inherited primitive.
6833 (Build_Wrapper_Spec): Add code to examine the parents while looking
6834 for a possible overriding candidate.
6835 (Build_Simple_Entry_Call): Set No_Initialization on the object used to
6836 hold an actual parameter value since its initialization is separated
6837 from the the declaration. Prevents errors on null-excluding access
6840 2007-04-06 Thomas Quinot <quinot@adacore.com>
6842 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call):
6843 Do an Unchecked_Conversion to handle the passage from the Underlying
6844 Type to the Base Type when calling Build_To_Any_Call and
6845 Build_From_Any_Call.
6846 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or
6847 E_Constant, depending upon Variable formal.
6848 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6849 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal
6850 parameter that requires an extra constrained parameter, declare
6851 temporary for actual as a variable, not a constant.
6852 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when
6853 the unit being compiled is the one that contains the stub type.
6854 Change primitive operation name for the RACW associated with a RAS
6855 from Call to _Call so it cannot clash with any legal identifier.
6856 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant
6858 (Append_RACW_Bodies): New subprogram.
6859 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to
6860 Add_Receiving_Stubs_To_Declarations functions.
6861 When expanding a package body, this list correspond to the
6862 statements in the HSS at the end of the pacakge.
6863 When expanding a package spec, this list correspond to the
6865 (Add_Receiving_Stubs_To_Declarations): Append the function
6866 registering the receiving stubs at the end of the 'Stmts' list.
6867 (RCI_Package_Locator): Pass the new Version generic formal when
6868 instantiating a RCI_Locator package.
6869 (Build_From_Any_Function): To compute the High bound for an
6870 unconstrained array actual, we add the Low bound with the length.
6871 Thus we must convert the low bound and the length to an appropriate
6872 type before doing the sum.
6873 (Build_Subprogram_Receiving_Stubs, PolyORB):
6874 * Retrieve the extra formals parameters at the
6875 end of the parameter stream.
6876 * Use Move_Any_Value to write back out parameters
6877 after executing the request as it is more efficient
6878 than Copy_Any_Value.
6879 * Build the any containing Extra Formals with the
6880 appropriate typecode.
6881 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an
6882 empty Component_List.
6883 (Build_Actual_Object_Declaration): New subprogram. Build and insert into
6884 the tree the declaration for an object that serves as actual parameter
6885 in server-side stubs.
6886 (GARLIC_Support.Build_Subprogram_Receiving_Stubs,
6887 PolyORB_Support.Build_Subprogram_Receiving_Stubs):
6888 Use Build_Actual_Object_Declaration to prepare the actuals.
6889 (Add_Parameter_To_NVList): Set the parameter mode to In for
6890 Extra Constrained Parameters.
6891 (Build_General_Calling_Stubs): Set the parameter type to boolean for
6892 Extra Constrained parameters.
6893 (Build_To_Any_Function, Build_From_Any_Function,
6894 Built_TypeCode_Function): When Typ is implicit, call the correct
6895 function with the first not implicit parent type.
6896 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element,
6897 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the
6898 typecode from the Etype. Therefore we retrieve the correct typecode
6899 with a call to Get_Any_Type.
6900 (Copy_Specification): Do controlling formal type substitution based on
6901 Is_Controlling_Formal flag, instead of caller-provided object type.
6902 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for
6903 a RACW primitive operation, we might get a subprogram declaration for an
6904 ancestor of the RACW designated type (not for the designated type
6905 itself), in the case where this operation is inherited. In this case we
6906 have no easy means of determining the original tagged type for which
6907 the primitive was declared, so instead we now rely on
6908 Copy_Specification to use the Is_Controlling_Formal flag to determine
6909 which formals require type substitution.
6911 2007-04-06 Robert Dewar <dewar@adacore.com>
6912 Ed Schonberg <schonberg@adacore.com>
6914 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in
6915 GNAT.Current_Exception are not allowed if pragma Restrictions
6916 (No_Exception_Propagation) is set and in any case make the associated
6917 handler unsuitable as a target for a local raise statement.
6918 (Expand_Dispatching_Constructor_Call): Replace generation of call to the
6919 run-time subprogram CW_Membership by call to Build_CW_Membership.
6920 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given
6921 by a function call, a temporary must be created before expanding the
6922 Constructor_Call itself, to prevent out-of-order elaboration in the
6923 back-end when stack checking is enabled..
6925 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6927 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the
6928 result are the bounds of the left operand, not the right.
6930 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6933 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use
6934 discriminant defaults.
6935 (Build_Record_Or_Elementary_Output_Procedure): Ditto.
6936 (Make_Component_List_Attributes): Ditto.
6938 2007-04-06 Ed Schonberg <schonberg@adacore.com>
6939 Bob Duff <duff@adacore.com>
6941 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat
6942 an association with a box as providing a value even though the
6943 initialization procedure for the type is not available.
6944 (Resolve_Record_Aggregate): Check that a choice of an association with a
6945 box corresponds to a component of the type.
6946 (Resolve_Record_Aggregate): Split Is_Abstract flag into
6947 Is_Abstract_Subprogram and Is_Abstract_Type.
6949 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for
6952 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into
6953 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are
6954 called only when appropriate.
6956 2007-04-06 Olivier Hainque <hainque@adacore.com>
6958 * g-alleve.ads (Low Level Vector type definitions): Map each to the
6959 associated vector view instead of all to the unsigned char view.
6961 * g-altcon.adb (Generic_Conversions): New internal generic package,
6962 offering facilities for all the Vector/View conversion routines
6963 implemented by this unit.
6964 (To_View/To_Vector - all versions): Reimplemented in a systematic
6965 manner, using the internal Generic_Conversions facilities.
6967 2007-04-06 Pascal Obry <obry@adacore.com>
6969 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source
6971 (Create): Free the source string before storing the new one.
6973 2007-04-06 Vincent Celier <celier@adacore.com>
6975 * g-debpoo.adb (Validity): New package with a complete new
6976 implementation of subprograms Is_Valid and Set_Valid.
6977 (Is_Valid): Move to local package Validity
6978 (Set_Valid): Move to local package Validity
6980 2007-04-06 Arnaud Charlet <charlet@adacore.com>
6982 * g-expect.adb (Get_Command_Output): When expanding the output buffer
6983 we must ensure that there is enough place for the new data we are going
6986 2007-04-06 Thomas Quinot <quinot@adacore.com>
6988 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding
6991 2007-04-06 Jose Ruiz <ruiz@adacore.com>
6992 Vincent Celier <celier@adacore.com>
6994 * gnatcmd.adb (B_Start): Add prefix of binder generated file.
6995 (Stack_String): Add this String that contains the name of the Stack
6996 package in the project file.
6997 (Packages_To_Check_By_Stack): Add this list that contains the packages
6998 to be checked by gnatstack, which are the naming and the stack packages.
6999 (Check_Files): If no .ci files were specified for gnatstack we add all
7000 the .ci files belonging to the projects, including binder generated
7002 (Non_VMS_Usage): Document that gnatstack accept project file switches.
7003 (GNATCmd): Update the B_Start variable if we are in a VMS environment.
7004 Add gnatstack to the list of commands that use project file related
7005 switches, and get the single attribute Switches from the stack package
7006 in a project file when calling gnatstack. Parse the -U flag for
7007 processing files belonging to all projects in the project tree.
7008 Remove all processing for command Setup
7010 * prj-attr.adb: Add new package Stack with single attribute Switches
7012 * vms_conv.ads (Command_Type): Add command Stack.
7013 Move to body declarations that are only used in the body: types Item_Id,
7014 Translation_Type, Item_Ptr, Item and its subtypes.
7016 * vms_conv.adb: (Initialize): Add data for new command Stack.
7017 Add declarations moved from the spec: types Item_Id, Translation_Type,
7018 Item_Ptr, Item and its subtypes.
7019 (Cargs_Buffer): New table
7020 (Cargs): New Boolean global variable
7021 (Process_Buffer): New procedure to create arguments
7022 (Place): Put character in table Buffer or Cargs_Buffer depending on the
7024 (Process_Argument): Set Cargs when processing qualifiers for GNAT
7026 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not
7027 empty, for table Cargs_Buffer.
7028 (Initialize): Remove component Setup in Command_List
7030 2007-04-06 Vincent Celier <celier@adacore.com>
7032 * gprep.adb (Process_Files.Process_One_File): Use full file name when
7033 issuing pragma Source_Reference.
7035 2007-04-06 Emmanuel Briot <briot@adacore.com>
7037 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of
7038 [[:xdigit:]] character class.
7039 Also raise an exception when an invalid character class is used.
7041 2007-04-06 Pascal Obry <obry@adacore.com>
7043 * i-cstrea.ads: (fopen): Add encoding parameter.
7045 Change reference from a-sysdep.c to sysdep.c in comment.
7046 Update copyright notice.
7047 This set of patch add support for the encoding form parameter.
7049 * mingw32.h (S2WSU): New macro to convert from a string to a
7050 wide-string using the UTF-8 encoding. The S2WS macro supports now only
7051 standard 8bits encoding.
7052 (WS2SU): As above but converting from wide-sring to string.
7053 This is needed as it is necessary to have access to both versions in the
7054 runtime for the form parameter encoding support.
7055 This set of patch add support for the encoding form parameter.
7056 (S2WS): Improve implementation to handle cases where the filename is not
7057 UTF-8 encoded. In this case we default to using the current code page
7060 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration
7061 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match
7062 the constants defined in adaint.h.
7063 (fopen): Add encoding parameter.
7066 * s-ficobl.ads (AFCB): Add Encoding field to record the filename
7067 encoding. This is needed for the Reset routine (freopen low level-call).
7069 * s-fileio.adb (Open): Decode encoding form parameter and set the
7070 corresponding encoding value into AFCB structure.
7071 (Reset): Pass the encoding value to freopen.
7072 (Close): Move the call to Lock_Task to the beginning of the procedure.
7074 2007-04-06 Geert Bosch <bosch@adacore.com>
7075 Robert Dewar <dewar@adacore.com>
7077 * i-fortra.ads: Add Double_Complex type.
7079 * impunit.adb: (Is_Known_Unit): New function
7080 Add Gnat.Byte_Swapping
7082 Add new Ada 2005 units
7083 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays,
7084 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays,
7085 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays,
7086 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays
7088 * impunit.ads (Is_Known_Unit): New function
7090 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb,
7091 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads,
7092 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb,
7093 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads,
7094 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb,
7095 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads:
7098 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio
7100 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units.
7102 2007-04-06 Eric Botcazou <botcazou@adacore.com>
7103 Arnaud Charlet <charlet@adacore.com>
7105 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except
7106 __gnat_adjust_context_for_raise.
7107 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same
7108 implementation of floating point operations as native x86 targets.
7109 So the FPU should be initialized in the same way using finit. Fix
7110 floating point operations accuracy issues.
7111 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction
7112 member in struct sigaction, so as to avoid warning for incompatible
7115 2007-04-06 Serguei Rybin <rybin@adacore.com>
7117 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the
7118 switches from previously loaded tree
7120 2007-04-06 Thomas Quinot <quinot@adacore.com>
7122 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the
7123 cases where a given dependency has a body or not.
7124 (Write_With_File_Names): New subprogram, common code for the two cases
7127 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7128 Javier Miranda <miranda@adacore.com>
7130 * lib-xref.ads, lib-xref.adb:
7131 Modify the loop that collects type references, to include interface
7132 types that the type implements. List each of these interfaces when
7133 building the entry for the type.
7134 (Generate_Definition): Initialize component Def and Typ of new entry
7135 in table Xrefs, to avoid to have these components unitialized.
7136 (Output_References): Split Is_Abstract flag into
7137 Is_Abstract_Subprogram and Is_Abstract_Type.
7138 (Generate_Reference): Add barrier to do not generate the warning
7139 associated with Ada 2005 entities with entities generated by the
7142 2007-04-06 Robert Dewar <dewar@adacore.com>
7143 Arnaud Charlet <charlet@adacore.com>
7144 Vincent Celier <celier@adacore.com>
7146 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation
7147 Update 'Exception Handling Control' chapter which was outdated.
7148 Minor fix to documentation of -gnatwq
7149 Remove section "Adapting the Run Time to a New C++ Compiler" because
7151 Add passage on need of -nostart-files in some non-ada-main cases.
7152 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake
7153 Update documentation about Interfacing with C++
7154 Add documentation for new gnatmake switch -p
7155 Add missing protocol part in URLs.
7157 Document pragma Compile_Time_Error
7158 Add documentation for Object_Size indicating that stand alone
7159 objects can have a larger size in some cases.
7160 Add node for GNAT.Byte_Swapping, GNAT.SHA1
7161 Update reference to the Ravenscar profile.
7162 Document pragma Unreferenced_Objects
7164 * gnat-style.texi: Fix typo
7166 2007-04-06 Vincent Celier <celier@adacore.com>
7168 * mlib.adb (Building_Library): Only output "building a library..." in
7171 * mlib-prj.adb (Build_Library): Only output lists of object and ALI
7172 files in verbose mode.
7174 * mlib-utl.adb (Ar): Only output the first object files when not in
7176 (Gcc): Do not display all the object files if not in verbose mode, only
7179 2007-04-06 Robert Dewar <dewar@adacore.com>
7181 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling
7182 it no longer destroys the contents of Name_Buffer or Name_Len and
7183 non-standard and invalid names are handled better.
7184 (Get_Decoded_Name_String): Improve performance by using
7185 Name_Has_No_Encodings flag in the name table.
7186 (Is_Valid_Name): New function to determine whether a Name_Id is valid.
7187 Used for debugging printouts.
7189 2007-04-06 Robert Dewar <dewar@adacore.com>
7190 Javier Miranda <miranda@adacore.com>
7191 Bob Duff <duff@adacore.com>
7193 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location
7194 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because
7195 there is no need to generate always a record_definition_node in case
7196 of synchronized interface types.
7197 (P_Type_Declaration): Update calls to P_Interface_Type_Definition.
7198 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being
7199 illegal in Ada 95, in cases where it is legal. Change the warnings to
7200 errors in other cases. Don't give the error unless the "not null"
7201 parses properly. Correct the source position at which the error occurs.
7202 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to
7203 P_Null_Exclusion, to suppress "not null" warnings.
7204 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and
7205 associated goto statements.
7207 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement
7210 * scans.ads (Type_Token_Location): New flag
7212 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS
7213 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to
7214 P_Null_Exclusion, to suppress "not null" warnings.
7216 2007-04-06 Robert Dewar <dewar@adacore.com>
7217 Javier Miranda <miranda@adacore.com>
7218 Bob Duff <duff@adacore.com>
7219 Vincent Celier <celier@adacore.com>
7221 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error
7222 (Extensions_Allowed): No longer sets Ada_Version
7223 Entry for pragma Unreferenced_Objects
7225 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of
7226 system.tasking if pragma priority used in a procedure
7227 (Analyze_Pragma, case Warning): Handle dot warning switches
7228 (Process_Compile_Time_Warning_Or_Error): New procedure
7229 (Analyze_Pragma): Add processing for Compile_Time_Error
7230 Add support for extra arguments External_Name and Link_Name.
7231 Remove code associated with pragmas CPP_Virtual and CPP_Vtable.
7232 (Process_Import_Or_Interface): Add support for the use of pragma Import
7234 (Extensions_Allowed): No longer affects Ada_Version
7235 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and
7236 Is_Abstract_Type. Make sure these are called only when appropriate.
7237 Add processing for pragma Unreferenced_Objects
7239 * snames.h, snames.ads, snames.adb: Add entry for pragma
7241 Add new standard name Minimum_Binder_Options for new gprmake
7242 Add new standard names for gprmake: Archive_Suffix,
7243 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported,
7244 Library_Support, Library_Version_Options,
7245 Shared_Library_Minimum_Options,
7246 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported.
7247 Change Name_Call to Name_uCall so that it cannot clash with a legal
7249 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix
7250 Append C_Plus_Plus to convention identifiers as synonym for CPP
7251 Add new standard names Stack and Builder_Switches
7252 Add new standard names: Compiler_Minimum_Options, Global_Config_File,
7253 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File,
7254 Run_Path_Option, Toolchain_Version.
7255 Entry for pragma Unreferenced_Objects
7257 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD
7258 switches, without repetition of "eD". Make sure that last character of
7259 -gnatep= switch is not taken as -gnat switch character.
7260 Complete rewrite of circuit for handling saving compilation options
7261 Occasioned by need to support dot switchs for -gnatw, but cleans up
7263 -gnatX does not affect Ada_Version
7264 Include -gnatyA in -gnatg style switches
7266 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude
7267 warnings on return objects.
7268 (Warn_On_Useless_Assignment): Exclude warnings on return objects
7269 (Set_Dot_Warning_Switch): New procedure
7270 (Check_References): Add missing case of test for
7271 Has_Pragma_Unreferenced_Objects
7272 (Output_Unreferenced_Messages): Implement effect of new pragma
7273 Unreferenced_Objects, remove special casing of limited controlled
7276 2007-04-06 Vincent Celier <celier@adacore.com>
7278 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize
7279 the default project path, initially done during elaboration of the
7281 If the prefix returned by Sdefault is null, get the prefix from a call
7282 to Executable_Prefix_Path.
7283 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is
7286 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non
7287 canonical directory name to open the directory from which files are
7289 (Record_Other_Sources): Idem.
7290 (Locate_Directory): Add the possibility to create automatically missing
7291 directories when Setup_Projects is True.
7292 Call Locate_Directory so that the directory will be created when
7293 Setup_Projects is True, for object dir, library dir, library ALI dir,
7294 library source copy dir and exec dir.
7296 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older
7299 2007-04-06 Robert Dewar <dewar@adacore.com>
7301 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order):
7302 Use First/Next_Component_Or_Discriminant
7303 (Analyze_Record_Representation_Clause):
7304 Use First/Next_Component_Or_Discriminant
7305 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant
7306 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject
7307 definition if type is unconstrained.
7308 (Adjust_Record_For_Reverse_Bit_Order): New procedure
7309 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into
7310 Is_Abstract_Subprogram and Is_Abstract_Type.
7311 (Adjust_Record_For_Reverse_Bit_Order): New procedure
7313 * repinfo.adb (List_Record_Info): Use First/
7314 Next_Component_Or_Discriminant.
7316 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index):
7319 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch
7320 Include -gnatyA in default switches
7322 * opt.ads: (Warn_On_Non_Local_Exception): New flag
7323 (Warn_On_Reverse_Bit_Order): New flag
7324 (Extensions_Allowed): Update the documentation.
7325 (Warn_On_Questionable_Missing_Parens): Now on by default
7327 * usage.adb: Add documentation of -gnatw.x/X switches
7328 Document new -gnatyA style switch
7329 -gnatq warnings are on by default
7331 2007-04-06 Ed Falis <falis@adacore.com>
7333 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last
7334 full word is no longer compared twice.
7336 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7338 * sem_ch10.adb (Install_Limited_Context_Clauses.
7339 Expand_Limited_With_Clause): Use a new copy of selector name in the
7340 call to Make_With_Clause. This fixes the tree structure for ASIS
7341 purposes. Nothing is changed in the compiler behaviour.
7342 (Process_Body_Clauses): Handle properly use clauses whose prefix is
7344 (Install_Limited_With_Clauses): Do not install non-limited view when it
7345 is still incomplete.
7347 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7348 Gary Dismukes <dismukes@adacore.com>
7350 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual
7351 when capturing size information, instead of base type, which for a
7352 formal array type will be the unconstrained type.
7353 (Analyze_Formal_Object_Declaration): Add check for illegal default
7354 expressions for a formal in object of a limited type.
7355 (Instantiate_Object): Ditto.
7356 (Check_Formal_Package_Instance): Skip entities that are formal objects,
7357 because they were defaulted in the formal package and no check applies
7359 (Check_Formal_Package_Instance): Extend conformance check to other
7360 discrete types beyond Integer.
7361 (Process_Default): Copy directly the unmatched formal. A generic copy
7362 has already been performed in Analyze_Formal_Package.
7363 (Analyze_Associations): If a formal subprogram has no match, check for
7364 partial parametrization before looking for a default, to prevent
7366 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do
7367 not set the instantiation environment before analyzing the actuals.
7368 Fixes regression on 8515-003 with implementation of AI-133.
7369 Set_Instance_Env checks whether the generic unit is a predefined
7370 unit, in which case the instance must be analyzed with the latest Ada
7371 mode. This setting must take place after analysis of the actuals,
7372 because the actuals must be analyzed and frozen in the Ada mode extant
7373 outside of the current instantiation.
7374 (Save_Env, Restore_Env): Preserve and restore the configuration
7375 parameters so that predefined units can be compiled in the proper Ada
7377 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram,
7378 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram
7379 and Is_Abstract_Type.
7380 (Analyze_Formal_Package): For better error recovery, Add exception
7381 handler to catch Instantion_Error, which can be raised in
7382 Analyze_Associations
7384 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7385 Bob Duff <duff@adacore.com>
7386 Gary Dismukes <dismukes@adacore.com>
7388 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the
7389 prefix type is a discriminated subtype of the type of the formal.
7390 (Analyze_Allocator): Collect all coextensions regardless of the context.
7391 Whether they can be allocated statically is determined in exp_ch4.
7392 (Analyze_Selected_Component): If the prefix is a limited view and the
7393 non-limited view is available, use the non-limited one.
7394 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and
7395 therefore illegal), suggest a qualified expression rather than a type
7396 conversion, because a type conversion would be illegal in this context.
7397 (Anayze_Allocator): Trace recursively all nested allocators so that all
7398 coextensions are on the corresponding list for the root. Do no mark
7399 coextensions if the root allocator is within a declaration for a stack-
7400 allocated object, because the access discriminants will be allocated on
7402 (Analyze_Call): Remove restriction on calls to limited functions for the
7403 cases of generic actuals for formal objects, defaults for formal objects
7404 and defaults for record components.
7405 (Analyze_Allocator): Before analysis, chain coextensions on the proper
7406 element list. Their expansion is delayed until the enclosing allocator
7407 is processed and its finalization list constructed.
7408 (Try_Primitive_Operation): If the prefix is a concurrent type, looks
7409 for an operation with the given name among the primitive operations of
7410 the corresponding record type.
7411 (Analyze_Selected_Component): If the prefix is a task type that
7412 implements an interface, and there is no entry with the given name,
7413 check whether there is another primitive operation (e.g. a function)
7415 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle
7416 properly the indexing of a function call written in prefix form, where
7417 the function returns an array type, and all parameters of the function
7418 except the first have defaults.
7419 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep
7420 the original operands, rather than relocating them, for efficiency and
7421 to work properly when an operand is overloaded.
7422 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split
7423 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type.
7424 (Analyze_Selected_Component): If the prefix is a private extension, only
7425 scan the visible components, not those of the full view.
7426 (Try_Primitive_Operation): If the operation is a procedure, collect all
7427 possible interpretations, as for a function, because in the presence of
7428 classwide parameters several primitive operations of the type can match
7429 the given arguments.
7431 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7432 Robert Dewar <dewar@adacore.com>
7434 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a
7435 tag-indeterminate call to an abstract function, when the left-hand side
7437 (Analyze_Loop_Statement): Improve detection of infinite loops
7439 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7440 Thomas Quinot <quinot@adacore.com>
7442 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move
7443 out of Analyze_Package_Declaration, because processing must be applied
7444 to package bodies as well, for deferred constants completed by pragmas.
7445 (Analyze_Package_Declaration): When the package declaration being
7446 analyzed does not require an explicit body, call Check_Completion.
7447 (May_Need_Implicit_Body): An implicit body is required when a package
7448 spec contains the declaration of a remote access-to-classwide type.
7449 (Analyze_Package_Body): If the package contains RACWs, append the
7450 pending subprogram bodies generated by exp_dist at the end of the body.
7451 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into
7452 Is_Abstract_Subprogram and Is_Abstract_Type.
7453 (Preserve_Full_Attributes): The full entity list is not an attribute
7454 that must be preserved from full to partial view.
7456 * sem_dist.adb (Add_RAS_Dereference_TSS):
7457 Change primitive name to _Call so it cannot clash with any legal
7458 identifier, and be special-cased in Check_Completion.
7459 Mark the full view of the designated type for the RACW associated with
7460 a RAS as Comes_From_Source to get proper view switching when installing
7461 private declarations.
7462 Provite a placeholder nested package body along with the nested spec
7463 to have a place for Append_RACW_Bodies to generate the calling stubs
7464 and stream attributes.
7466 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7467 Robert Dewar <dewar@adacore.com>
7469 * sem_ch8.adb (Has_Components): If the argument is an incomplete type
7470 that is a limited view, check the non-limited view if available.
7471 (Undefined): Refine error message for missing with of Text_IO
7472 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message
7473 to distinguish real missing with cases.
7474 Fix format of all missing with messages
7475 (Analyze_Subprogram_Renaming): Emit proper error message on illegal
7476 renaming as body when renamed entity is abstract.
7478 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7479 Javier Miranda <miranda@adacore.com>
7481 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make
7482 predicate recursive, to handle complex expressions on literals whose
7483 spurious ambiguity comes from the abstract interpretation of some
7485 (Interface_Present_In_Ancestor): Add support to concurrent record
7487 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into
7488 Is_Abstract_Subprogram and Is_Abstract_Type.
7490 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7491 Javier Miranda <miranda@adacore.com>
7493 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a
7494 dereference of a local object R created as a reference to another
7495 object O, use the access level of O.
7496 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types,
7497 rather than local Same_Formal_Type, to check whether protected operation
7498 overrides an inherited one.
7499 (Same_Formal_Type): New predicate, used when matching signatures of
7500 overriding synchronized operations, to handle the case when a formal
7501 has a type that is a generic actual.
7502 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by
7503 predicate Is_Concurrent_Type. This ensures supportin case of subtypes.
7504 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve
7505 syntactic ambiguities involving indexing of function calls that return
7507 (Abstract_Interface_List): New subprogram that returns the list of
7508 abstract interfaces associated with a concurrent type or a
7509 concurrent record type.
7510 (Interface_Present_In_Parent): New subprogram used to check if a
7511 given type or some of its parents implement a given interface.
7512 (Collect_Abstract_Interfaces): Add support for concurrent types
7513 with interface types.
7514 (Has_Abstract_Interfaces): Add support for concurrent types with
7516 (Is_Parent): New subprogram that determines whether E1 is a parent
7517 of E2. For a concurrent type its parent is the first element of its
7518 list of interface types; for other types this function provides the
7519 same result than Is_Ancestor.
7520 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement.
7521 (Collect_Synchronized_Interfaces): Removed because the subprogram
7522 Collect_Abstract_Interfaces provides this functionality.
7523 (Collect_Abstract_Interfaces): Minor update to give support to
7524 concurrent types and thus avoid undesired code duplication.
7525 (Get_Subprogram_Entity): Handle entry calls.
7526 (May_Be_Lvalue): Include actuals that appear as in-out parameters in
7528 (Enter_Name): Do not give -gnatwh hiding warning for record component
7529 entities, they never result in hiding.
7531 2007-04-06 Ed Schonberg <schonberg@adacore.com>
7532 Robert Dewar <dewar@adacore.com>
7534 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators,
7535 to chain nested components that are allocators for access discriminants
7536 of the enclosing object.
7537 Add N_Push and N_Pop nodes
7538 New field Exception_Label added
7539 (Local_Raise_Statements): New field in N_Exception_Handler_Node
7540 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node
7541 (Is_Coextension): New flag for allocators, to mark allocators that
7542 correspond to access discriminants of dynamically allocated objects.
7543 (N_Block_Statement): Document the fact that the corresponding entity
7544 can be an E_Return_Statement.
7545 (Is_Coextension): New flag for allocators.
7546 Remove all code for DSP option
7548 * sprint.ads, sprint.adb: Display basic information for class_wide
7549 subtypes. Add handling of N_Push and N_Pop nodes
7551 2007-04-06 Arnaud Charlet <charlet@adacore.com>
7553 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion
7554 before propagating exception.
7556 2007-04-06 Olivier Hainque <hainque@adacore.com>
7558 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield
7559 an address always within the call instruction from a return address.
7561 2007-04-06 Olivier Hainque <hainque@adacore.com>
7562 Eric Botcazou <botcazou@adacore.com>
7564 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an
7565 expression with a COMPOUND_EXPR including the call instead of emitting
7566 the call directly here.
7567 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the
7568 high bound is constant and the slice is empty. Tidy.
7569 (tree_transform, case N_Op_Not): Handle properly the case where the
7570 operation applies to a private type whose full view is a modular type.
7571 (Case_Statement_To_gnu): If an alternative is an E_Constant with an
7572 Address_Clause, use the associated Expression as the GNAT tree
7573 representing the choice value to ensure the corresponding GCC tree is
7575 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole
7576 instead of just the operands, as the base GCC stabilize_reference does.
7577 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not
7578 requested; otherwise fail.
7579 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P.
7581 2007-04-06 Thomas Quinot <quinot@adacore.com>
7583 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous
7584 implementation of UI_Div.
7585 (UI_Div): Reimplement as a call to UI_Div_Rem.
7586 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the
7587 remainder, avoiding the cost of a multiplication and a subtraction.
7588 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem
7589 provides both quotient and remainder in a single computation.
7590 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic
7592 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram
7593 is undefined if the given n is not inversible.
7595 2007-04-06 Olivier Hainque <hainque@adacore.com>
7597 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and
7598 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion
7601 2007-04-06 Eric Botcazou <botcazou@adacore.com>
7602 Olivier Hainque <hainque@adacore.com>
7604 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs
7605 when updating the contents of the old pointer to an unconstrained array.
7606 (end_subprog_body): Set error_gnat_node to Empty.
7607 (write_record_type_debug_info): Do not be unduly sparing with our bytes.
7608 (unchecked_convert): For subtype to base type conversions, require that
7609 the source be a subtype if it is an integer type.
7610 (builtin_decls): New global, vector of available builtin functions.
7611 (gnat_pushdecl): Add global builtin function declaration nodes to the
7613 (gnat_install_builtins): Adjust comments.
7614 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before
7615 calling gnat_pushdecl, so that it knows when it handed a builtin
7616 function declaration node.
7617 (builtin_decl_for): Search the builtin_decls list.
7619 2007-04-06 Eric Botcazou <botcazou@adacore.com>
7621 * s-stchop-vxworks.adb:
7622 (Stack_Check): Raise Storage_Error if the argument has wrapped around.
7624 2007-04-06 Robert Dewar <dewar@adacore.com>
7625 Arnaud Charlet <charlet@adacore.com>
7627 * a-diroro.ads: Inserted the pragma Unimplemented_Unit
7629 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start
7631 Add mention of -Sev (set initialize_scalars option from environment
7632 variable at run time) in gnatbind usage message.
7634 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure
7636 * fname-uf.ads: Minor comment fix
7638 * osint.ads: Change pragma Elaborate to Elaborate_All
7640 * par-load.adb: Add documentation.
7642 * sem_cat.ads, sem_cat.adb: Minor code reorganization
7644 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal
7646 * s-secsta.ads: Extra comments
7648 * s-soflin.ads: Minor comment fixes
7650 * s-stratt.ads (Block_Stream_Ops_OK): Removed.
7652 * s-wchcon.ads: Minor comment addition
7654 * treepr.adb: Minor change in message
7655 (Print_Name,Print_Node): Make these debug printouts more robust: print
7656 "no such..." instead of crashing on bad input.
7658 2007-03-30 Rafael Avila de Espindola <espindola@google.com>
7660 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type
7661 instead of gnat_signed_or_unsigned_type.
7662 * utils.c (gnat_signed_or_unsigned_type): Remove.
7663 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove
7664 * gigi.h (gnat_signed_or_unsigned_type): Remove
7666 2007-03-09 Roger Sayle <roger@eyesopen.com>
7668 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling
7669 fold with the result of buildN.
7670 * decl.c (gnat_to_gnu_entity): Likewise.
7671 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise.
7672 * utils.c (finish_record_type, merge_sizes, max_size, convert):
7674 * utils2.c (gnat_truthvalue_conversion, compare_arrays,
7675 nonbinary_modular_operation, build_binary_op, build_unary_op,
7676 build_cond_expr): Likewise.
7678 * utils.c (convert): Use fold_build1 when casting values to void.
7679 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and
7680 fold_convert instead of convert when appropriate.
7682 2007-03-01 Brooks Moses <brooks.moses@codesourcery.com>
7684 * Make-lang.in: Add install-pdf target as copied from
7685 automake v1.10 rules.
7687 2007-02-28 Andreas Schwab <schwab@suse.de>
7689 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on
7690 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi.
7691 (doc/gnat-style.info): Likewise.
7693 2007-02-26 Brooks Moses <brooks.moses@codesourcery.com>
7695 * gnat-style.texi: Standardize title page.
7696 * gnat_rm.texi: Likewise.
7697 * gnat_ugn.texi: Likewise.
7699 2007-02-25 Mark Mitchell <mark@codesourcery.com>
7701 * decl.c (annotate_value): Adjust for refactoring of tree_map
7704 2007-02-24 Mark Mitchell <mark@codesourcery.com>
7706 * decl.c (annotate_value): Adjust for refactoring of tree_map
7709 2007-02-21 Ed Schonberg <schonberg@adacore.com>
7712 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an
7713 untagged derived type, add hidden components to keep discriminant
7714 layout consistent, when a given discriminant of the derived type
7715 constraints several discriminants of the parent type.
7717 2007-02-16 Eric Botcazou <ebotcazou@adacore.com>
7718 Sandra Loosemore <sandra@codesourcery.com>
7720 * trans.c (call_to_gnu): Use build_call_list instead of build3 to
7721 build the call expression.
7722 (gnat_stabilize_reference_1): Handle tcc_vl_exp.
7723 * utils.c (max_size) <tcc_exceptional>: Delete.
7724 <tcc_vl_exp>: New case.
7725 <tcc_expression>: Delete CALL_EXPR subcase.
7726 (build_global_cdtor): Use build_call_nary instead of build3.
7727 * utils2.c (build_call_1_expr): Likewise.
7728 (build_call_2_expr): Likewise.
7729 (build_call_0_expr): Likewise.
7730 (build_call_alloc_dealloc): Likewise.
7732 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com>
7734 * raise-gcc.c (get_region_description_for, get_call_site_action_for,
7735 get_action_description_for): Replace _Unwind_Word with _uleb128_t
7736 and _Unwind_SWord with _sleb128_t.
7738 2007-02-06 Paolo Bonzini <bonzini@gnu.org>
7740 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency.
7741 * decl.c: Include gt-ada-decl.h.
7742 (annotate_value_cache): New.
7743 (annotate_value): Use it instead of TREE_COMPLEXITY.
7745 2007-02-03 Kazu Hirata <kazu@codesourcery.com>
7747 * misc.c, utils2.c: Fix comment typos.
7749 2007-01-24 Roger Sayle <roger@eyesopen.com>
7751 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of
7752 TREE_CONSTANT_OVERFLOW.
7753 (allocatable_size_p, annotate_value): Likewise.
7754 * trans.c (gnat_to_gnu): Likewise.
7755 * utils.c (unchecked_convert): Likewise.
7756 * utils2.c (build_simple_component_ref): Likewise.
7758 2007-01-23 Richard Guenther <rguenther@suse.de>
7761 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE).
7762 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX.
7763 (gnatboot3): Likewise.
7764 (GNATBIND): Do not define.
7765 * Makefile.in (GNATBIND): Do not define.
7767 2007-01-08 Richard Guenther <rguenther@suse.de>
7769 * cuintp.c (build_cst_from_int): Use built_int_cst_type.
7770 * trans.c (gnat_to_gnu): Likewise.
7772 2006-12-07 Geoffrey Keating <geoffk@apple.com>
7774 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
7775 * adaint.c: Likewise.
7777 2006-12-05 Aldy Hernandez <aldyh@redhat.com>
7779 Merge from gimple-tuples-branch:
7780 2006-11-02 Aldy Hernandez <aldyh@redhat.com>
7782 * ada-tree.h (lang_tree_node): Handle gimple tuples.
7783 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
7786 2006-12-02 Kazu Hirata <kazu@codesourcery.com>
7788 * Makefile.in, mingw32.h, trans.c: Fix comment typos.
7789 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
7792 2006-11-17 Eric Botcazou <ebotcazou@adacore.com>
7795 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
7796 if the initializer takes into account the padding.
7798 2006-11-11 Richard Guenther <rguenther@suse.de>
7800 * trans.c (maybe_stabilize_reference): Remove handling of
7801 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
7803 2006-11-05 Arnaud Charlet <charlet@adacore.com>
7806 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
7807 (To_Target_Priority): New function.
7809 2006-10-31 Robert Dewar <dewar@adacore.com>
7811 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
7812 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
7813 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
7814 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
7815 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
7816 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
7817 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
7818 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
7819 a-szbzha.adb: Minor reformatting. Fix header.
7821 * a-numaux-x86.adb: Add parentheses for use of unary minus
7822 * a-ngcefu.adb: Supply missing parentheses for unary minus
7823 * a-ngcoty.adb: Add parens for use of unary minus
7824 * a-ngelfu.adb: Add missing parens for unary minus
7825 * a-tifiio.adb: Add parentheses for uses of unary minus
7827 2006-10-31 Robert Dewar <dewar@adacore.com>
7828 Bob Duff <duff@adacore.com>
7829 Ed Schonberg <schonberg@adacore.com>
7831 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
7832 with multiplying operator.
7833 (Expected_Type_Is_Any_Real): New function to determine from the Parent
7834 pointer whether the context expects "any real type".
7835 (Resolve_Arithmetic_Op): Do not give an error on calls to the
7836 universal_fixed "*" and "/" operators when they are used in a context
7837 that expects any real type. Also set the type of the node to
7838 Universal_Real in this case, because downstream processing requires it
7839 (mainly static expression evaluation).
7840 Reword some continuation messages
7841 Add some \\ sequences to continuation messages
7842 (Resolve_Call): Refine infinite recursion case. The test has been
7843 sharpened to eliminate some false positives.
7844 Check for Current_Task usage now includes entry barrier, and is now a
7845 warning, not an error.
7846 (Resolve): If the call is ambiguous, indicate whether an interpretation
7847 is an inherited operation.
7848 (Check_Aggr): When resolving aggregates, skip associations with a box,
7849 which are priori correct, and will be replaced by an actual default
7850 expression in the course of expansion.
7851 (Resolve_Type_Conversion): Add missing support for conversion from
7852 a class-wide interface to a tagged type. Minor code cleanup.
7853 (Valid_Tagged_Converion): Add support for abstact interface type
7855 (Resolve_Selected_Component): Call Generate_Reference here rather than
7856 during analysis, and use May_Be_Lvalue to distinguish read/write.
7857 (Valid_Array_Conversion): New procedure, abstracted from
7858 Valid_Conversion, to incorporate accessibility checks for arrays of
7859 anonymous access types.
7860 (Valid_Conversion): For a conversion to a numeric type occurring in an
7861 instance or inlined body, no need to check that the operand type is
7862 numeric, since this has been checked during analysis of the template.
7863 Remove legacy test for scope name Unchecked_Conversion.
7865 * sem_res.ads: Minor reformatting
7867 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
7868 (PE_Current_Task_In_Entry_Body): New exception code
7869 (SE_Restriction_Violation): Removed, not used
7871 * a-except.ads: Update comments.
7873 * types.h, types.ads: Add definition for Validity_Check
7874 (PE_Current_Task_In_Entry_Body): New exception code
7875 (SE_Restriction_Violation): Removed, not used
7877 2006-10-31 Thomas Quinot <quinot@adacore.com>
7879 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
7882 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
7883 Jose Ruiz <ruiz@adacore.com>
7885 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
7886 part of Ada.Calendar: all subprogram raise Unimplemented.
7887 (Split_W_Offset): Temp function body, raising Unimplemented
7889 * a-calend.ads, a-calend-vms.ads:
7890 Add imported variable Invalid_TZ_Offset used to designate targets unable
7891 to support time zones.
7892 (Unimplemented): Temporary function raised by the body of new
7894 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
7895 unit provides handling of leap seconds and is used by the new Ada 2005
7896 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
7897 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
7898 version returns an extra value which is the offset to UTC.
7900 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
7901 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
7902 (Split_W_Offset): New function body.
7903 (Time_Of): When a date is close to UNIX epoch, compute the time for
7904 that date plus one day (that amount is later substracted after
7905 executing mktime) so there are no problems with time zone adjustments.
7907 * a-calend-mingw.adb: Remove Windows specific version no longer needed.
7909 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
7910 a-catizo.ads, a-catizo.adb: New files.
7912 * impunit.adb: Add new Ada 2005 entries
7914 * sysdep.c: Add external variable __gnat_invalid_tz_offset.
7915 Rename all occurences of "__gnat_localtime_r" to
7916 "__gnat_localtime_tzoff".
7917 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
7918 zone data and calculate the GMT offset.
7919 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
7920 Use the field "tm_gmtoff" to extract the GMT offset.
7921 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
7922 the external variable "timezone" to calculate the GMT offset.
7924 2006-10-31 Arnaud Charlet <charlet@adacore.com>
7925 Jose Ruiz <ruiz@adacore.com>
7927 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
7928 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
7929 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
7930 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
7931 System.Any_Priority to a POSIX priority on the target.
7933 * system-linux-ia64.ads:
7934 Extend range of Priority types on Linux to use the whole range made
7935 available by the system.
7937 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
7938 function maps from System.Any_Priority to a POSIX priority on the
7940 (PTHREAD_PRIO_PROTECT): Set real value.
7941 (PTHREAD_PRIO_INHERIT): Now a function.
7942 (SIGCPUFAIL): New signal.
7943 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
7944 are documented as reserved by the OS.
7946 * system-aix.ads: Use the full range of priorities provided by the
7949 * s-taprop-posix.adb: Call new function To_Target_Priority.
7950 (Set_Priority): Take into account Task_Dispatching_Policy and
7951 Priority_Specific_Dispatching pragmas when determining if Round Robin
7952 must be used for scheduling the task.
7954 * system-linux-x86_64.ads, system-linux-x86.ads,
7955 system-linux-ppc.ads: Extend range of Priority types on Linux to use
7956 the whole range made available by the system.
7958 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
7959 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
7960 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
7961 when deallocating the TCB in order to avoid potential references to
7963 (Set_Priority): Take into account Task_Dispatching_Policy and
7964 Priority_Specific_Dispatching pragmas when determining if Round Robin
7965 or FIFO within priorities must be used for scheduling the task.
7967 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
7968 the Thread field (to be used internally by the run-time system) and the
7969 kernel-level task id in the LWP field (to be used by the debugger).
7970 (Create_Task): Reorganize to unify the calls to taskSpawn into a single
7971 instance, and propagate the current task options to the spawned task.
7972 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
7973 (Initialize): Set Round Robin dispatching when the corresponding pragma
7976 2006-10-31 Robert Dewar <dewar@adacore.com>
7978 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7979 system-linux-hppa.ads, system-hpux-ia64.ads,
7980 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
7981 system-vxworks-sparcv9.ads, system-solaris-x86.ads,
7982 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
7983 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
7984 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
7985 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
7986 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
7987 Default_Bit_Order) to kill constant condition warnings for references
7990 2006-10-31 Vincent Celier <celier@adacore.com>
7991 Eric Botcazou <ebotcazou@adacore.com>
7993 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
7994 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
7995 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
7996 Ext_To, when building the library file name
7998 * mlib-tgt-vxworks.adb: ditto.
7999 (Get_Target_Suffix): Add support for x86 targets.
8001 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
8003 * mlib-tgt-darwin.adb:
8004 Use Append_To, instead of Ext_To, when building the library file name
8005 (Flat_Namespace): New global variable.
8006 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
8007 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
8008 (Link_Shared_Libgcc): Delete.
8009 (Build_Dynamic_Library): Adjust for above changes.
8011 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
8013 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
8015 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
8016 (Initialize): Add type conversions required by above change.
8018 2006-10-31 Jose Ruiz <ruiz@adacore.com>
8020 * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
8021 (getpid): New body for this function that uses the underlying taskIdSelf
8022 function for VxWorks 5 and VxWorks 6 in kernel mode.
8023 (unsigned_int): New type, modular to allow logical bit operations.
8024 (taskOptionsGet): New imported function.
8026 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
8027 field to be compliant with the type used by the corresponding operating
8030 2006-10-31 Pascal Obry <obry@adacore.com>
8031 Eric Botcazou <ebotcazou@adacore.com>
8032 Vincent Celier <celier@adacore.com>
8034 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
8035 ASCII version of the registry API. This is needed as the GNAT runtime
8036 is now UNICODE by default.
8038 (get_gcc_version): Do not hardcode the return value.
8039 (__gnat_file_time_name): On Windows properly set the default returned
8040 value to -1 which corresponds to Invalid_Time.
8041 (__gnat_fopen): New routine. A simple wrapper on all plateforms
8042 except on Windows where it does conversion for unicode support.
8043 (__gnat_freopen): Idem.
8044 (__gnat_locate_exec_on_path): If environment variable PATH does not
8045 exist, return a NULL pointer
8047 * adaint.h: (__gnat_fopen): Declare.
8048 (__gnat_freopen): Likewise.
8050 * mingw32.h (_tfreopen): Define this macro here for older MingW
8052 Activate the unicode support on platforms using a MingW runtime
8053 version 3.9 or newer.
8055 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
8056 This is needed for proper unicode support on Windows.
8059 2006-10-31 Eric Botcazou <ebotcazou@adacore.com>
8060 Nicolas Setton <setton@adacore.com>
8061 Olivier Hainque <hainque@adacore.com>
8062 Gary Dismukes <dismukes@adacore.com>
8064 * gigi.h: (tree_code_for_record_type): Declare.
8065 (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
8066 (get_global_renaming_pointers): Rename to
8067 invalidate_global_renaming_pointers.
8068 (static_ctors): Delete.
8069 (static_dtors): Likewise.
8070 (gnat_write_global_declarations): Declare.
8071 (create_var_decl): Adjust descriptive comment to indicate that the
8072 subprogram may return a CONST_DECL node.
8073 (create_true_var_decl): Declare new function, similar to
8074 create_var_decl but forcing the creation of a VAR_DECL node.
8075 (get_global_renaming_pointers): Declare.
8076 (add_global_renaming_pointer): Likewise.
8078 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
8080 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
8081 tree before setting TREE_ADDRESSABLE for by-reference return mechanism
8083 (gnat_to_gnu_entity): Remove From_With_Type from computation for
8085 <E_Access_Type>: Use the Non_Limited_View as the full view of the
8086 designated type if the pointer comes from a limited_with clause. Make
8087 incomplete designated type if it is in the main unit and has a freeze
8089 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
8090 Underlying_Full_View similarly. Return earlier if the full view already
8091 has an associated tree.
8092 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
8093 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
8094 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
8095 reference type built for objects with an address clause.
8096 Use create_true_var_decl with const_flag set for
8097 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
8099 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
8100 for Character and Wide_Character types. This info is read by the
8101 dwarf-2 writer, and is needed to be able to use the command "ptype
8102 character" in the debugger.
8103 (gnat_to_gnu_entity): When generating a type representing
8104 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
8105 so that debug writers can distinguish it from ordinary integers.
8106 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
8107 addition to TREE_READONLY to assert the constantness of variables for
8108 elaboration purposes.
8109 (gnat_to_gnu_entity, subprogram cases): Change loops on formal
8110 parameters to call new Einfo function First_Formal_With_Extras.
8111 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
8112 protected type with its corresponding discriminant, to obtain a usable
8114 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
8115 for a multiple elaboration of the "equivalent" type.
8116 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
8117 into record_global_renaming_pointer.
8118 (gnat_to_gnu_entity) <E_Array_Type>: Do not force
8119 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
8120 <E_Array_Subtype>: Likewise.
8121 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
8122 incomplete subtypes and incomplete subtypes of incomplete types visible
8123 through a limited with clause.
8124 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
8125 the base index type for the maximum size of the array only if they are
8127 (gnat_to_gnu_entity, renaming object case): Do not wrap up the
8128 expression into a SAVE_EXPR if stabilization failed.
8130 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
8131 a result decl into DECL_BY_REFERENCE on this decl, now what is expected
8132 by lower level compilation passes.
8133 (gnat_genericize): New function, lowering a function body to GENERIC.
8134 Turn the type of RESULT_DECL into a real reference type if the decl
8135 has been marked DECL_BY_REFERENCE, and adjust references to the latter
8137 (gnat_genericize_r): New function. Tree walking callback for
8139 (convert_from_reference, is_byref_result): New functions. Helpers for
8141 (create_type_decl): Call gnat_pushdecl before calling
8142 rest_of_decl_compilation, to make sure that field TYPE_NAME of
8143 type_decl is properly set before calling the debug information writers.
8144 (write_record_type_debug_info): The heuristics which compute the
8145 alignment of a field in a variant record might not be accurate. Add a
8146 safety test to make sure no alignment is set to a smaller value than
8147 the alignment of the field type.
8148 (make_dummy_type): Use the Non_Limited_View as the underlying type if
8149 the type comes from a limited_with clause. Do not loop on the full view.
8150 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
8151 (dummy_node_table): New global variable, moved from decl.c.
8152 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
8153 (save_gnu_tree): Use above macros.
8154 (get_gnu_tree): Likewise.
8155 (present_gnu_tree): Likewise.
8156 (init_dummy_type): New function, moved from decl.c. Use above macros.
8157 (make_dummy_type): Likewise.
8158 (tree_code_for_record_type): New function extracted from make_dummy_type
8159 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
8160 (static_ctors): Change it to a vector, make static.
8161 (static_dtors): Likewise.
8162 (end_subprog_body): Adjust for above change.
8163 (build_global_cdtor): Moved from trans.c.
8164 (gnat_write_global_declarations): Emit global constructor and
8165 destructor, and call cgraph_optimize before emitting debug info for
8166 global declarations.
8167 (global_decls): New global variable.
8168 (gnat_pushdecl): Store the global declarations in global_decls, for
8170 (gnat_write_global_declarations): Emit debug information for global
8172 (create_var_decl_1): Former create_var_decl, with an extra argument to
8173 state whether the creation of a CONST_DECL is allowed.
8174 (create_var_decl): Behavior unchanged. Now a wrapper around
8175 create_var_decl_1 allowing CONST_DECL creation.
8176 (create_true_var_decl): New function, similar to create_var_decl but
8177 forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
8178 (create_field_decl): Do not always mark the field as addressable
8179 if its type is an aggregate.
8180 (global_renaming_pointers): New static variable.
8181 (add_global_renaming_pointer): New function.
8182 (get_global_renaming_pointers): Likewise.
8184 * misc.c (gnat_dwarf_name): New function.
8185 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
8186 (gnat_post_options): Add comment about structural alias analysis.
8187 (gnat_parse_file): Do not call cgraph_optimize here.
8188 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
8190 * trans.c (process_freeze_entity): Don't abort if we already have a
8191 non dummy GCC tree for a Concurrent_Record_Type, as it might
8192 legitimately have been elaborated while processing the associated
8193 Concurrent_Type prior to this explicit freeze node.
8194 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
8195 exception handler volatile if it is of variable size.
8196 (process_type): Remove bypass for types coming from a limited_with
8198 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
8199 actual, convert the corresponding gnu_actual to the real destination
8200 type when necessary.
8201 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
8202 originally TREE_READONLY but whose elaboration cannot be performed
8204 Part of fix for F504-021.
8205 (tree_transform, subprogram cases): Change loops on formal parameters to
8206 call new Einfo function First_Formal_With_Extras.
8207 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
8208 stemming from type conversion for the lhs.
8209 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
8210 number of bits per unit for components of records.
8211 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
8212 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
8213 with At_End_Proc after the SJLJ EH cleanup.
8214 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
8216 (elaborate_all_entities): Do not retest type_annotate_only.
8217 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
8218 result type of an abstract subprogram, which may be an itype associated
8219 with an anonymous access result (related to AI-318-02).
8220 (build_global_cdtor): Move to utils.c.
8221 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
8222 this choice is not a null tree nor an integer constant.
8223 (gigi): Run unshare_save_expr via walk_tree_without_duplicates
8224 on the body of elaboration routines instead of mark_unvisited.
8225 (add_stmt): Do not mark the tree.
8226 (add_decl_expr): Tweak comment.
8227 (mark_unvisited): Delete.
8228 (unshare_save_expr): New static function.
8229 (call_to_gnu): Issue an error when making a temporary around a
8230 procedure call because of non-addressable actual parameter if the
8231 type of the formal is by_reference.
8232 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
8233 after building the elaboration routine.
8235 2006-10-31 Bob Duff <duff@adacore.com>
8237 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
8238 as finalization-started, so we can raise Program_Error on 'new'.
8240 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
8241 collection has already started.
8243 * s-finimp.ads (Collection_Finalization_Started): Added new special
8244 flag value for indicating that a collection's finalization has started.
8246 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
8247 create a task whose master has already waited for dependent tasks.
8249 2006-10-31 Robert Dewar <dewar@adacore.com>
8251 * lib.adb, lib.ads: (In_Predefined_Unit): New functions
8253 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
8254 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
8255 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
8256 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
8257 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
8258 a-except-2005.ads: Add pragma Preelaborable_Warning
8260 2006-10-31 Robert Dewar <dewar@adacore.com>
8261 Jose Ruiz <ruiz@adacore.com>
8263 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
8265 * ali.adb (Get_Name): Properly handle scanning of wide character names
8266 encoded with brackets notation.
8267 (Known_ALI_Lines): Add S lines to this list.
8268 (Scan_ALI): Acquire S (priority specific dispatching) lines.
8269 New flag Elaborate_All_Desirable in unit table
8271 * ali.ads (Priority_Specific_Dispatching): Add this range of
8272 identifiers to be used for Priority_Specific_Dispatching table entries.
8273 (ALIs_Record): Add First_Specific_Dispatching and
8274 Last_Specific_Dispatching that point to the first and last entries
8275 respectively in the priority specific dispatching table for this unit.
8276 (Specific_Dispatching): Add this table for storing each S (priority
8277 specific dispatching) line encountered in the input ALI file.
8278 New flag Elaborate_All_Desirable in unit table
8280 * bcheck.adb: (Check_Configuration_Consistency): Add call to
8281 Check_Consistent_Dispatching_Policy.
8282 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
8283 verifying that the use of Priority_Specific_Dispatching,
8284 Task_Dispatching_Policy, and Locking_Policy is consistent across the
8287 * bindgen.adb: (Public_Version_Warning): function removed.
8288 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
8289 required information from ALI files in order to initialize the table
8290 containing the specific dispatching policy.
8291 (Gen_Adainit_Ada): Generate the variables required for priority specific
8292 dispatching entries (__gl_priority_specific_dispatching and
8293 __gl_num_specific_dispatching).
8294 (Gen_Adainit_C): Generate the variables required for priority specific
8295 dispatching entries (__gl_priority_specific_dispatching and
8296 __gl_num_specific_dispatching).
8297 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
8299 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
8300 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
8302 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
8303 a call to gnat_set_globals.
8304 Generate a string containing settings from
8305 Priority_Specific_Dispatching pragma entries.
8306 (Gen_Object_Files_Options): Do not include the runtime libraries when
8307 pragma No_Run_Time is specified.
8309 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
8310 consistency with s-intman-posix.adb.
8311 (__gnat_error_handler, case FreeBSD): Account for the fact that the
8312 handler is installed with SA_SIGINFO.
8313 (__gnat_adjust_context_for_raise, FreeBSD case): New function for
8314 FreeBSD ZCX support, copied from Linux version.
8315 Add MaRTE-specific definitions for the linux target. Redefine sigaction,
8316 sigfillset, and sigemptyset so the routines defined by MaRTE.
8317 (__gl_priority_specific_dispatching): Add this variable that stores the
8318 string containing priority specific dispatching policies in the
8320 (__gl_num_specific_dispatching): Add this variable that indicates the
8321 highest priority for which a priority specific dispatching pragma
8323 (__gnat_get_specific_dispatching): Add this routine that returns the
8324 priority specific dispatching policy, as set by a
8325 Priority_Specific_Dispatching pragma appearing anywhere in the current
8326 partition. The input argument is the priority number, and the result
8327 is the upper case first character of the policy name.
8328 (__gnat_set_globals): Now a dummy function.
8329 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
8330 mechargs instead of sigargs, as the latter can be retrieved from the
8331 former and sigargs is not what we want on ia64.
8332 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
8334 (__gnat_adjust_context_for_raise, ia64-vms): New function.
8335 (tasking_error): Remove unused symbol.
8336 (_abort_signal): Move this symbol to the IRIX specific part since this
8337 is the only target that uses this definition.
8338 (Check_Abort_Status): Move this symbol to the IRIX specific part since
8339 this is the only target that uses this definition.
8340 (Lock_Task): Remove unused symbol.
8341 (Unlock_Task): Remove unused symbol.
8343 * lib-writ.adb (Write_ALI): Output new S lines for
8344 Priority_Specific_Dispatching pragmas.
8345 Implement new flag BD for elaborate body desirable
8347 * lib-writ.ads: Document S lines for Priority Specific Dispatching.
8348 (Specific_Dispatching): Add this table for storing the entries
8349 corresponding to Priority_Specific_Dispatching pragmas.
8350 Document new BD flag for elaborate body desirable
8352 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
8355 2006-10-31 Javier Miranda <miranda@adacore.com>
8357 * a-tags.ads, a-tags.adb:
8358 (Predefined_DT): New function that improves readability of the code.
8359 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
8360 Inherit_DT): Use the new function Predefined_DT to improve code
8362 (Register_Interface_Tag): Update assertion.
8363 (Set_Interface_Table): Update assertion.
8364 (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
8365 determining progenitor interfaces in Tags.
8366 (Inherit_CPP_DT): New subprogram.
8368 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
8369 analysis of the thunk code.
8370 (Expand_Interface_Conversion): Handle run-time conversion of
8371 access to class wide types.
8372 (Expand_Dispatching_Call): When generating the profile for the
8373 subprogram itype for a dispatching operation, properly terminate the
8374 formal parameters chaind list (set the Next_Entity of the last formal
8376 (Collect_All_Interfaces): Removed. This routine has been moved to
8377 sem_util and renamed as Collect_All_Abstract_Interfaces.
8378 (Set_All_DT_Position): Hidden entities associated with abstract
8379 interface primitives are not taken into account in the check for
8380 3.9.3(10); this check is done with the aliased entity.
8381 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
8382 interfacing with CPP by default.
8383 (Expand_Interface_Conversion): Add missing support for static conversion
8384 from an interface to a tagged type.
8385 (Collect_All_Interfaces): Add new out formal containing the list of
8386 abstract interface types to cleanup the subprogram Make_DT.
8387 (Make_DT): Update the code to generate the table of interfaces in case
8388 of abstract interface types.
8389 (Is_Predefined_Dispatching_Alias): New function that returns true if
8390 a primitive is not a predefined dispatching primitive but it is an
8391 alias of a predefined dispatching primitive.
8392 (Make_DT): If the ancestor of the type is a CPP_Class and we are
8393 compiling under full ABI compatibility mode we avoid the generation of
8394 calls to run-time services that fill the dispatch tables because under
8395 this mode we currently inherit the dispatch tables in the IP subprogram.
8396 (Write_DT): Emit an "is null" indication for a null procedure primitive.
8397 (Expand_Interface_Conversion): Use an address as the type of the formal
8398 of the internally built function that handles the case in which the
8399 target type is an access type.
8401 2006-10-31 Robert Dewar <dewar@adacore.com>
8403 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
8405 2006-10-31 Robert Dewar <dewar@adacore.com>
8407 * bindusg.ads, bindusg.adb:
8408 Change to package and rename procedure as Display, which
8409 now ensures that it only outputs usage information once.
8411 2006-10-31 Jose Ruiz <ruiz@adacore.com>
8413 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
8416 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
8419 2006-10-31 Robert Dewar <dewar@adacore.com>
8420 Ed Schonberg <schonberg@adacore.com>
8422 * treepr.adb: Use new subtype N_Membership_Test
8424 * checks.ads, checks.adb: Add definition for Validity_Check
8425 (Range_Or_Validity_Checks_Suppressed): New function
8426 (Ensure_Valid): Test Validity_Check suppressed
8427 (Insert_Valid_Check): Test Validity_Check suppressed
8428 (Insert_Valid_Check): Preserve Do_Range_Check flag
8429 (Validity_Check_Range): New procedure
8430 (Expr_Known_Valid): Result of membership test is always valid
8431 (Selected_Range_Checks): Range checks cannot be applied to discriminants
8432 by themselves. Disabling those checks must also be done for task types,
8433 where discriminants may be used for the bounds of entry families.
8434 (Apply_Address_Clause_Check): Remove side-effects if address expression
8435 is non-static and is not the name of a declared constant.
8436 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
8437 Code cleanup and new error messages.
8438 (Enable_Range_Check): Test for some cases of suppressed checks
8439 (Generate_Index_Checks): Suppress index checks if index checks are
8440 suppressed for array object or array type.
8441 (Apply_Selected_Length_Checks): Give warning for compile-time detected
8442 length check failure, even if checks are off.
8443 (Ensure_Valid): Do not generate a check on an indexed component whose
8444 prefix is a packed boolean array.
8445 * checks.adb: (Alignment_Checks_Suppressed): New function
8446 (Apply_Address_Clause_Check): New procedure, this is a completely
8447 rewritten replacement for Apply_Alignment_Check
8448 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
8449 we request a discriminal value only in case of discriminants.
8450 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
8451 assignments where the target subtype is unconstrained and the target
8452 object is a parameter or dereference (other aliased cases are known
8453 to be unconstrained).
8455 2006-10-31 Robert Dewar <dewar@adacore.com>
8457 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
8458 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
8459 vms_conv.adb: Fix bad table increment values (much too small)
8461 * table.adb (Realloc): Make sure we get at least some new elements
8462 Defends against silly small values for table increment
8464 2006-10-31 Robert Dewar <dewar@adacore.com>
8465 Ed Schonberg <schonberg@adacore.com>
8466 Bob Duff <duff@adacore.com>
8468 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
8469 entities. Move other fields around to make this possible
8470 (Is_Derived_Type): Add missing call to Is_Type.
8471 (Extra_Formals): New function for subprograms, entries, subprogram
8473 (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
8474 (First_Formal_With_Extras): New function for subprogs, entries, subp
8476 (Write_Field28_Name): New procedure for node display of "Extra_Formals".
8477 Add node information for E_Return_Statement.
8478 (Elaborate_Body_Desirable): New flag
8479 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
8480 to be Is_Inherently_Limited_Type, because return-by-reference has
8481 no meaning in Ada 2005.
8482 (E_Return_Statement): New entity kind.
8483 (Return_Applies_To): Field of E_Return_Statement.
8484 (Is_Return_Object): New flag in object entities.
8485 (Is_Dynamic_Scope): Make it True for E_Return_Statement.
8486 (Must_Have_Preelab_Init): New flag
8487 (Known_To_Have_Preelab_Init): New flag
8488 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
8489 (Is_Visible_Formal): New flag on entities in formal packages.
8490 (Low_Bound_Known): New flag
8491 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
8493 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
8494 output when Id is an incomplete subtype.
8496 2006-10-31 Robert Dewar <dewar@adacore.com>
8498 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
8499 Avoid abbreviation Creat
8500 (Finalize): List all sources in extended mail source if -gnatl
8502 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
8503 (Finalize): Implement new -gnatl=xxx switch to output listing to file
8504 (Set_Specific_Warning_On): New procedure
8505 (Set_Specific_Warning_Off): New procedure
8506 Add implementation of new insertion \\
8507 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
8508 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
8510 (Error_Msg_Internal): Make sure that we set Last_Killed to
8511 True when a message from another package is suppressed.
8512 Implement insertion character ~ (insert string)
8513 (First_Node): Minor adjustments to get better placement.
8516 Implement new -gnatl=xxx switch to output listing to file
8519 Implement new -gnatl=xxx switch to output listing to file
8521 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
8522 (Commands_To_Stdout): New flag
8523 Implement new -gnatl=xxx switch to output listing to file
8524 New switch Dump_Source_Text
8525 (Warn_On_Deleted_Code): New warning flag for -gnatwt
8526 Define Error_Msg_Line_Length
8527 (Warn_On_Assumed_Low_Bound): New switch
8529 * osint.ads, osint.adb
8530 (Normalize_Directory_Name): Fix bug.
8531 Implement new -gnatl=xxx switch to output listing to file
8532 (Concat): Removed, replaced by real concatenation
8533 Make use of concatenation now allowed in compiler
8534 (Executable_Prefix.Get_Install_Dir): First get the full path, so that
8535 we find the 'lib' or 'bin' directory even when the tool has been
8536 invoked with a relative path.
8537 (Executable_Name): New function taking string parameters.
8539 * osint-c.ads, osint-c.adb:
8540 Implement new -gnatl=xxx switch to output listing to file
8542 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
8545 Implement new -gnatl=xxx switch to output listing to file
8546 Recognize new -gnatL switch
8547 (no longer keep in old warning about old style usage)
8548 Use concatenation to simplify code
8549 Recognize -gnatjnn switch
8550 (Scan_Front_End_Switches): Clean up handling of -gnatW
8551 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
8553 2006-10-31 Robert Dewar <dewar@adacore.com>
8555 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
8556 (Set_Specific_Warning_Off): New procedure
8557 (Warning_Specifically_Suppressed): New function
8558 (Validate_Specific_Warnings): New procedure
8559 (Output_Msg_Text): Complete rewrite to support -gnatjnn
8561 * err_vars.ads: Implement insertion character ~ (insert string)
8563 2006-10-31 Bob Duff <duff@adacore.com>
8564 Ed Schonberg <schonberg@adacore.com>
8566 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
8567 the parent part is a build-in-place function call, generate assignments.
8568 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
8569 are build-in-place function calls.
8570 (Replace_Self_Reference): New subsidiary of
8571 Make_OK_Assignment_Statement, to replace an access attribute that is a
8572 self-reference into an access to the appropriate component of the
8573 target object. Generalizes previous mechanism to handle self-references
8574 nested at any level.
8575 (Is_Self_Referential_Init): Remove, not needed.
8576 (Is_Self_Referential_Init): New predicate to simplify handling of self
8577 referential components in record aggregates.
8578 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
8579 check for presence of entity before checking for self-reference.
8580 (Has_Default_Init_Comps): Return True if a component association is a
8581 self-reference to the enclosing type, which can only come from a
8582 default initialization.
8583 (Make_OK_Assignment_Statement): If the expression is of the form
8584 Typ'Acc, where Acc is an access attribute, the expression comes from a
8585 default initialized self-referential component.
8586 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
8587 that has been derived from several abstract interfaces we must also
8588 initialize the tags of the secondary dispatch tables.
8590 2006-10-31 Ed Schonberg <schonberg@adacore.com>
8591 Thomas Quinot <quinot@adacore.com>
8592 Javier Miranda <miranda@adacore.com>
8593 Robert Dewar <dewar@adacore.com>
8596 (Expand_Access_To_Protected_Op): If the context indicates that an access
8597 to a local operation may be transfered outside of the object, create an
8598 access to the wrapper operation that must be used in an external call.
8599 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
8600 target, pass the Valid attribute applied to a floating-point prefix on
8601 to the back end without expansion.
8602 (Storage_Size): Use the new run-time function Storage_Size to retrieve
8603 the allocated storage when it is specified by a per-object expression.
8604 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
8605 Nothing to do here, the attribute has been rewritten during semantic
8607 (Expand_Attribute_Reference): Handle expansion of the new Priority
8609 (Find_Fat_Info): Handle case of universal real
8610 (Expand_Access_To_Protected_Op): Fix use of access to protected
8611 subprogram from inside the body of a protected entry.
8612 (Expand_Access_To_Protected_Op): Common procedure for the expansion of
8613 'Access and 'Unrestricted_Access, to transform the attribute reference
8615 (Is_Constrained_Aliased_View): New predicate to help determine whether a
8616 subcomponent's enclosing variable is aliased with a constrained subtype.
8617 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
8618 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
8619 an aliased prefix must be known to be constrained in order to use True
8620 for the attribute value, and now it's possible for some aliased views
8621 to be unconstrained.
8623 2006-10-31 Robert Dewar <dewar@adacore.com>
8625 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
8626 (Expand_Entity_Reference): Correct error of not handling subprogram
8627 formals in current_value processing.
8629 2006-10-31 Javier Miranda <miranda@adacore.com>
8630 Robert Dewar <dewar@adacore.com>
8631 Ed Schonberg <schonberg@adacore.com>
8632 Gary Dismukes <dismukes@adacore.com>
8634 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
8635 register in the final list objects containing class-wide interfaces;
8636 otherwise we incorrectly register the tag of the interface in the final
8638 (Make_Controlling_Function_Wrappers): Add missing barrier to do not
8639 generate the wrapper if the parent primitive is abstract. This is
8640 required to report the correct error message.
8641 (Expand_N_Subtype_Indication): Do validity checks on range
8642 (Clean_Task_Names): If an initialization procedure includes a call to
8643 initialize a task (sub)component, indicate that the procedure will use
8644 the secondary stack.
8645 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
8646 compatibility for interfacing with CPP by default.
8647 (Expand_N_Object_Declaration): Only build an Adjust call when the
8648 object's type is a nonlimited controlled type.
8649 * exp_ch3.adb: Add with and use of Exp_Ch6.
8650 (Expand_N_Object_Declaration): Check for object initialization that is a
8651 call to build-in-place function and apply Make_Build_In_Place_Call_In_
8652 Object_Declaration to the call.
8653 (Freeze_Type): When the designated type of an RACW was not frozen at the
8654 point where the RACW was declared, validate the primitive operations
8655 with respect to E.2.2(14) when it finally is frozen.
8656 (Build_Initialization_Call,Expand_Record_Controller): Rename
8657 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
8658 return-by-reference has no meaning in Ada 2005.
8659 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
8660 to register tag of the immediate ancestor interfaces in the
8662 (Init_Secondary_Tags): Moved to the specification to allow the
8663 initialization of extension aggregates with abstract interfaces.
8664 (Build_Master_Renaming): Make public, for use by function declarations
8665 whose return type is an anonymous access type.
8666 (Freeze_Record_Type): Replace call to Insert_List_Before by call to
8667 Insert_List_Before_And_Analyze after the generation of the specs
8668 associated with null procedures.
8669 (Expand_Tagged_Root): Update documentation in its specification.
8670 (Init_Secondary_Tags): Update documentation.
8671 (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
8672 tibility mode and the immediate ancestor is a CPP_Pragma tagged type
8673 then generate code to inherit the contents of the dispatch table
8674 directly from the ancestor.
8675 (Expand_Record_Controller): Insert controller component after tags of
8676 implemented interfaces.
8677 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
8678 create null procedure overridings when null procedures are inherited
8680 (Make_Null_Procedure_Specs): New procedure to generate null procedure
8681 declarations for overriding null primitives inherited from interfaces.
8682 (Is_Null_Interface_Procedure): New function in
8683 Make_Null_Procedure_Specs.
8684 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
8685 immediate ancestor of a tagged type is an abstract interface type we
8686 must generate the specification of the predefined primitives associated
8687 with controlled types (because the dispatch table of the ancestor is
8688 null and hence these entries cannot be inherited). This is required to
8689 elaborate well the dispatch table.
8691 2006-10-31 Javier Miranda <miranda@adacore.com>
8692 Ed Schonberg <schonberg@adacore.com>
8693 Bob Duff <duff@adacore.com>
8694 Gary Dismukes <dismukes@adacore.com>
8695 Robert Dewar <dewar@adacore.com>
8697 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
8699 (Expand_N_In): Do validity checks on range
8700 (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
8701 (Expand_N_Allocator): For "new T", if the object is constrained by
8702 discriminant defaults, allocate the right amount of memory, rather than
8703 the maximum for type T.
8704 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
8705 when the allocator is initialized by a build-in-place call, since the
8706 allocator is already rewritten as a reference to the function result,
8707 and this prevents an unwanted duplication of the function call.
8708 Add with and use of Exp_Ch6.
8709 (Expand_Allocator_Expresssion): Check for an allocator whose expression
8710 is a call to build-in-place function and apply
8711 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
8712 untagged designated types).
8713 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
8714 optimization if source or target is biased.
8715 (Expand_N_Allocator): Add comments for case of an allocator within a
8716 function that returns an anonymous access type designating tasks.
8717 (Expand_N_Allocator): apply discriminant checks for access
8718 discriminants of anonymous access types (AI-402, AI-416)
8720 2006-10-31 Bob Duff <duff@adacore.com>
8721 Robert Dewar <dewar@adacore.com>
8722 Gary Dismukes <dismukes@adacore.com>
8723 Ed Schonberg <schonberg@adacore.com>
8725 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
8727 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
8728 (Expand_N_Assignment_Statement): Call
8729 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
8730 build-in-place function call. Currently, this can happen only for
8731 assignments that come from aggregates.
8732 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
8733 in order to alleviate the upward compatibility introduced by AI-318.
8734 (Expand_N_Extended_Return_Statement): Add support for handling the
8735 return object as a build-in-place result.
8736 (Expand_Non_Function_Return): Implement simple return statements nested
8737 within an extended return.
8738 (Enable_New_Return_Processing): Turn on the new processing of return
8740 (Expand_Non_Function_Return): For a return within an extended return,
8741 don't raise Program_Error, because Sem_Ch6 now gives a warning.
8742 (Expand_N_Extended_Return_Statement): Implement AI-318
8743 (Expand_Simple_Function_Return): Ditto.
8744 (Expand_N_If_Statement): Handle new -gnatwt warning
8745 (Expand_N_Case_Statement): Handle new -gnatwt warning
8746 (Expand_N_Assignment): Handle assignment to the Priority attribute of
8748 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
8749 validity checking of assignments to elementary record components.
8750 (Expand_N_Return_Statement): return Class Wide types on the secondary
8751 stack independantly of their controlled status since with HIE runtimes,
8752 class wide types are not potentially controlled anymore.
8754 * expander.adb (Expand): Add case for new N_Extended_Return_Statement
8757 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
8758 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
8759 it expects a block, procedure, or task. The return statement will get
8760 turned into a block, and Expand_Cleanup_Actions will happen then.
8762 2006-10-31 Robert Dewar <dewar@adacore.com>
8763 Ed Schonberg <schonberg@adacore.com>
8764 Bob Duff <duff@adacore.com>
8765 Gary Dismukes <dismukes@adacore.com>
8767 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
8769 (Expand_Inlined_Call): Tagged types are by-reference types, and
8770 therefore should be replaced by a renaming declaration in the expanded
8771 body, as is done for limited types.
8772 (Expand_Call): If this is a call to a function with dispatching access
8773 result, propagate tag from context.
8774 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
8776 (Make_Build_In_Place_Call_In_Assignment): New procedure to do
8777 build-in-place when the right-hand side of an assignment is a
8778 build-in-place function call.
8779 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
8780 of the explicit dereference of the allocator to the result subtype of
8781 the build-in-place function. This is needed to satisfy type checking
8782 in cases where the caller's return object is created by an allocator for
8783 a class-wide access type and the type named in the allocator is a
8785 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
8786 conversion of the reference to the declared object to the result subtype
8787 of the build-in-place function. This is needed to satisfy type checking
8788 in cases where the declared object has a class-wide type. Also, in the
8789 class-wide case, change the type of the object entity to the specific
8790 result subtype of the function, to avoid passing a class-wide object
8791 without explicit initialization to the back end.
8792 (Register_Interface_DT_Entry): Moved outside the body of
8793 Freeze_Subprogram because this routine is now public; it is called from
8794 Check_Dispatching_Overriding to handle late overriding of abstract
8795 interface primitives.
8796 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
8797 adding an implicit access actual on a call to a build-in-place function.
8798 (Expand_Actuals): Test for an actual parameter that is a call to a
8799 build-in-place function and apply
8800 Make_Build_In_Place_Call_In_Anonymous_Context to the call.
8801 (Is_Build_In_Place_Function): New function to determine whether an
8802 entity is a function whose calls should be handled as build-in-place.
8803 (Is_Build_In_Place_Function_Call): New function to determine whether an
8804 expression is a function call that should handled as build-in-place.
8805 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
8806 calls to build-in-place functions as the initialization of an allocator.
8807 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
8808 handling calls to build-in-place functions in contexts that do not
8809 involve init of a separate object (for example, actuals of subprogram
8811 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
8812 handling calls to build-in-place functions as the initialization of an
8814 (Detect_Infinite_Recursion): Add explicit parameter Process to
8815 instantiation of Traverse_Body to avoid unreferenced warning.
8816 (Check_Overriding_Inherited_Interfaces): Removed.
8817 (Register_Interface_DT_Entry): Code cleanup.
8818 (Register_Predefined_DT_Entry): Code cleanup.
8819 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
8820 inlined statements if within a transient scope.
8821 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
8822 formal parameters with occurrences of actuals in inlined body, establish
8823 visibility on the proper view of the actual's subtype for the body's
8825 (Freeze_Subprogram): Do nothing if we are compiling under full ABI
8826 compatibility mode and we have an imported CPP subprogram because
8827 for now we assume that imported CPP primitives correspond with
8828 objects whose constructor is in the CPP side (and therefore we
8829 don't need to generate code to register them in the dispatch table).
8830 (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
8831 aligned selected component.
8832 (Add_Call_By_Copy_Node): Add missing code to handle the case in which
8833 the actual of an in-mode parameter is a type conversion.
8834 (Expand_Actuals): If the call does not come from source and the actual
8835 is potentially misaligned, let gigi handle it rather than rejecting the
8836 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
8837 Class Wide types as returning by reference independantly of their
8838 controlled status since with HIE runtimes class wide types are not
8839 potentially controlled anymore.
8841 2006-10-31 Ed Schonberg <schonberg@adacore.com>
8843 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
8844 references that are private components of the protected object.
8845 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
8846 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
8847 instantiation to deal with warnings.
8848 (Initialize_Protection): If expression for priority is non-static, use
8849 System_Priority as its expected type, in case the expression has not
8852 2006-10-31 Robert Dewar <dewar@adacore.com>
8854 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
8855 initialization of Homonym_Len.
8856 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
8857 names from fully qualified name. Fixes problem of duplicate
8858 external names differing only in the presence of such a block name.
8860 2006-10-31 Thomas Quinot <quinot@adacore.com>
8861 Pablo Oliveira <oliveira@adacore.com>
8863 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
8864 subprogram Ids, even if they are not yet assigned.
8865 (Build_Subprogram_Id): It is now this function that will take care of
8866 calling Assign_Subprogram_Ids if necessary.
8867 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
8868 should be done only once they are assigned.
8869 (Build_From_Any_Function, case of tagged types): Add missing call to
8871 (Corresponding_Stub_Type): New subprogram. Returns the associated stub
8872 type for an RACW type.
8873 (Add_RACW_Features): When processing an RACW declaration for which the
8874 designated type is already frozen, enforce E.2.2(14) rules immediately.
8875 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
8876 special reordering of controlling formals.
8878 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
8879 associated stub type for an RACW type.
8881 2006-10-31 Ed Schonberg <schonberg@adacore.com>
8883 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
8884 fixed-point operations in an integer context, i.e. as operands of a
8885 conversion to an integer type, indicate that result must be rounded.
8887 2006-10-31 Robert Dewar <dewar@adacore.com>
8889 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
8890 cases, pass the encoding method, since it is now required by the run
8893 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
8894 assumption that Str'First = 1.
8895 (Value_Wide_Character): Takes EM (encoding method) parameter and passes
8896 it on to the Value_Wide_Wide_Character call.
8897 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
8898 properly handles a string of the form quote-encoded_wide_char-quote.
8900 * s-wchcnv.adb: Minor reformatting
8902 2006-10-31 Javier Miranda <miranda@adacore.com>
8904 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
8905 run-time membership test to ensure that the constructed object
8906 implements the target abstract interface.
8908 2006-10-31 Robert Dewar <dewar@adacore.com>
8910 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
8911 Machine_Attribute pragma internally to implement the user pragma.
8912 Add processing for pragma Interface so that it is now completely
8913 equivalent to pragma Import.
8915 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
8916 so that it can be applied to all entities, including record components
8917 and enumeration literals.
8918 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
8919 priority ranges are correct, verify compatibility against task
8920 dispatching and locking policies, and if everything is correct an entry
8921 is added to the table containing priority specific dispatching entries
8922 for this compilation unit.
8923 (Delay_Config_Pragma_Analyze): Delay processing
8924 Priority_Specific_Dispatching pragmas because when processing the
8925 pragma we need to access run-time data, such as the range of
8926 System.Any_Priority.
8927 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
8928 Allow pragma Unreferenced as a context item
8929 Add pragma Preelaborable_Initialization
8930 (Analyze_Pragma, case Interface): Interface is extended so that it is
8931 now syntactically and semantically equivalent to Import.
8932 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
8933 insertion characters.
8934 Add handling for Pragma_Wide_Character_Encoding
8935 (Process_Restrictions_Restriction_Warnings): Ensure that a warning
8936 never supercedes a real restriction, and that a real restriction
8937 always supercedes a warning.
8938 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
8941 2006-10-31 Bob Duff <duff@adacore.com>
8942 Ed Schonberg <schonberg@adacore.com>
8943 Robert Dewar <dewar@adacore.com>
8945 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
8946 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
8947 Is_Inherently_Limited_Type, because return-by-reference has no meaning
8949 (Find_Node_To_Be_Wrapped): Use new method of determining the result
8950 type of the function containing a return statement, because the
8951 Return_Type field was removed. We now use the Return_Applies_To field.
8953 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
8954 (Build_Task_Image_Decl): If procedure is not called from an
8955 initialization procedure, indicate that function that builds task name
8956 uses the sec. stack. Otherwise the enclosing initialization procedure
8957 will carry the indication.
8958 (Insert_Actions): Remove N_Return_Object_Declaration. We now use
8959 N_Object_Declaration instead.
8960 (Kill_Dead_Code): New interface to implement -gnatwt warning for
8961 conditional dead code killed, and change implementation accordingly.
8962 (Insert_Actions): Add N_Return_Object_Declaration case.
8963 Correct comment to mention N_Extension_Aggregate node.
8964 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
8965 attempts to save information for global variables which cannot be
8967 (Get_Current_Value_Condition): Handle conditions the other way round
8968 (constant on left). Also handle right operand of AND and AND THEN
8969 (Set_Current_Value_Condition): Corresponding changes
8970 (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
8971 (Get_Current_Value_Condition): Handle simple boolean operands
8972 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
8973 (Get_Current_Value_Condition): If the variable reference is within an
8974 if-statement, does not appear in the list of then_statments, and does
8975 not come from source, treat it as being at unknown location.
8976 (Get_Current_Value_Condition): Enhance to allow while statements to be
8977 processed as well as if statements.
8978 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
8980 (OK_To_Do_Constant_Replacement): Allow constant replacement within body
8981 of loop. This is safe now that we fixed Kill_Current_Values.
8982 (OK_To_Do_Constant_Replacement): Check whether current scope is
8983 Standard, before examining outer scopes.
8985 2006-10-31 Vincent Celier <celier@adacore.com>
8987 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
8988 When True, apply VMS treatment to children of packages A, G, I and S.
8991 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
8993 2006-10-31 Robert Dewar <dewar@adacore.com>
8994 Ed Schonberg <schonberg@adacore.com>
8996 * freeze.adb: Add handling of Last_Assignment field
8997 (Warn_Overlay): Supply missing continuation marks in error msgs
8998 (Freeze_Entity): Add check for Preelaborable_Initialization
9000 * g-comlin.adb: Add Warnings (Off) to prevent new warning
9002 * g-expect.adb: Add Warnings (Off) to prevent new warning
9004 * lib-xref.adb: Add handling of Last_Assignment field
9005 (Generate_Reference): Centralize handling of pragma Obsolescent here
9006 (Generate_Reference): Accept an implicit reference generated for a
9007 default in an instance.
9008 (Generate_Reference): Accept a reference for a node that is not in the
9009 main unit, if it is the generic body corresponding to an subprogram
9012 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
9014 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
9016 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
9018 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
9019 use clauses, to avoid messages on packages used to qualify, and also
9020 to avoid messages from obsolescent units.
9021 (Warn_On_Useless_Assignments): Don't generate messages for imported
9022 and exported variables.
9023 (Warn_On_Useless_Assignments): New procedure
9024 (Output_Obsolescent_Entity_Warnings): New procedure
9025 (Check_Code_Statement): New procedure
9027 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
9028 Change name Is_Ada_2005 to Is_Ada_2005_Only
9029 (Last_Assignment): New field for useless assignment warning
9031 2006-10-31 Olivier Hainque <hainque@adacore.com>
9033 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
9034 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
9036 2006-10-31 Bob Duff <duff@adacore.com>
9037 Robert Dewar <dewar@adacore.com>
9038 Ed Schonberg <schonberg@adacore.com>
9040 * g-awk.adb (Default_Session, Current_Session): Compile this file in
9041 Ada 95 mode, because it violates the new rules for AI-318.
9043 * g-awk.ads: Use overloaded subprograms in every case where we used to
9044 have a default of Current_Session. This makes the code closer to be
9045 correct for both Ada 95 and 2005.
9047 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
9048 code, relying on the fact that the compiler generates a warning
9049 instead of an error in -gnatg mode.
9051 * lib-xref.ads (Xref_Entity_Letters): Add entry for new
9052 E_Return_Statement entity kind.
9053 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
9055 * par.adb (P_Interface_Type_Definition): Addition of one formal to
9056 report an error if the reserved word abstract has been previously found.
9057 (SS_End_Type): Add E_Return for new extended_return_statement syntax.
9059 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
9060 parenthesized range attribute usage
9061 (P_Expression_No_Right_Paren): Add missing comment about error recovery.
9063 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
9064 in the syntax for extended_return_statement. This is not in the latest
9065 RM, but the ARG is expected to issue an AI allowing this.
9066 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
9067 N_Return_Object_Declaration. We now use N_Object_Declaration instead.
9068 (P_Return_Object_Declaration, P_Return_Subtype_Indication,
9069 P_Return_Statement): Parse the new syntax for extended_return_statement.
9071 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
9072 Output_End_Missing): Add error-recovery code for the new
9073 extended_return_statement syntax; that is, the new E_Return entry on
9076 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
9077 limited to nonlimited, because otherwise we violate the new Ada 2005
9078 rules about returning limited types in function Create_AST_Handler in
9081 * sem.adb (Analyze): Add cases for new node kinds
9082 N_Extended_Return_Statement and N_Return_Object_Declaration.
9084 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
9085 type is in the same category as type of context before applying check,
9086 to prevent anomalies in instantiations.
9087 (Resolve_Aggregate): Remove test for limited components in aggregates.
9088 It's unnecessary in Ada 95, because if it has limited components, then
9089 it must be limited. It's wrong in Ada 2005, because limited aggregates
9091 (Resolve_Record_Aggregate): Move check for limited types later, because
9092 OK_For_Limited_Init requires its argument to have been resolved.
9093 (Get_Value): When copying the component default expression for a
9094 defaulted association in an aggregate, use the sloc of the aggregate
9095 and not that of the original expression, to prevent spurious
9096 elaboration errors, when the expression includes function calls.
9097 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
9098 were missing. We also didn't handle qualified expressions. Now also
9099 allow function calls. Use new common routine OK_For_Limited_Init.
9100 (Resolve_Extension_Aggregate): Minor fix to bad error message (started
9101 with space can upper case letter).
9103 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
9104 Has_Static_Discriminants flag
9105 (Record_Type_Declaration): Diagnose an attempt to declare an interface
9106 type with discriminants.
9107 (Process_Range_Expr_In_Decl): Do validity checks on range
9108 (Build_Discriminant_Constraints): Use updated form of
9109 Denotes_Discriminant.
9110 (Process_Subtype): If the subtype is a private subtype whose full view
9111 is a concurrent subtype, introduce an itype reference to prevent scope
9113 (Build_Derived_Record_Type, Collect_Interface_Primitives,
9114 Record_Type_Declaration): The functionality of the subprograms
9115 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
9116 is now performed by a single routine.
9117 (Build_Derived_Record_Type): If the type definition includes an explicit
9118 indication of limitedness, then the type must be marked as limited here
9119 to ensure that any access discriminants will not be treated as having
9120 a local anonymous access type.
9121 (Check_Abstract_Overriding): Issue a detailed error message when an
9122 abstract subprogram was not overridden due to incorrect mode of its
9124 (Analyze_Private_Extension_Declaration): Add support for the analysis of
9125 synchronized private extension declarations. Verify that the ancestor is
9126 a limited or synchronized interface or in the generic case, the ancestor
9127 is a tagged limited type or synchronized interface and all progenitors
9128 are either limited or synchronized interfaces.
9129 Derived_Type_Declaration): Check for presence of private extension when
9130 dealing with synchronized formal derived types.
9131 Process_Full_View): Enchance the check done on the usage of "limited" by
9132 testing whether the private view is synchronized.
9133 Verify that a synchronized private view is completed by a protected or
9135 (OK_For_Limited_Init_In_05): New function.
9136 (Analyze_Object_Declaration): Move check for limited types later,
9137 because OK_For_Limited_Init requires its argument to have been resolved.
9138 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9139 in order to alleviate the upward compatibility introduced by AI-318.
9140 (Constrain_Corresponding_Record): If the constraint is for a component
9141 subtype, mark the itype as frozen, to avoid out-of-scope references to
9142 discriminants in the back-end.
9143 (Collect_Implemented_Interfaces): Protect the recursive algorithm of
9144 this subprogram against wrong sources.
9145 (Get_Discr_Value, Is_Discriminant): Handle properly references to a
9146 discriminant of limited type completed with a protected type, when the
9147 discriminant is used to constrain a private component of the type, and
9148 expansion is disabled.
9149 (Find_Type_Of_Object): Do not treat a return subtype that is an
9150 anonymous subtype as a local_anonymous_type, because its accessibility
9151 level is the return type of the enclosing function.
9152 (Check_Initialization): In -gnatg mode, turn the error "cannot
9153 initialize entities of limited type" into a warning.
9154 (OK_For_Limited_Init): Return true for generated nodes, since it
9155 sometimes violates the legality rules.
9156 (Make_Incomplete_Declaration): If the type for which an incomplete
9157 declaration is created happens to be the currently visible entity,
9158 preserve the homonym chain when removing it from visibility.
9159 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
9160 inherited subprograms.
9161 (Access_Definition): If this is an access to function that is the return
9162 type of an access_to_function definition, context is a type declaration
9163 and the scope of the anonymous type is the current one.
9164 (Analyze_Subtype_Declaration): Add the defining identifier of a regular
9165 incomplete subtype to the set of private dependents of the original
9167 (Constrain_Discriminated_Type): Emit an error message whenever an
9168 incomplete subtype is being constrained.
9169 (Process_Incomplete_Dependents): Transform an incomplete subtype into a
9170 corresponding subtype of the full view of the original incomplete type.
9171 (Check_Incomplete): Properly detect invalid usage of incomplete types
9174 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9176 * g-catiio.ads, g-catiio.adb (Value): New function.
9177 Given an input String, try and parse a valid Time value.
9179 2006-10-31 Vincent Celier <celier@adacore.com>
9181 * g-debpoo.adb (Is_Valid): Correctly compute Offset using
9182 Integer_Address arithmetic, as in Set_Valid.
9184 2006-10-31 Arnaud Charlet <charlet@adacore.com>
9185 Robert Dewar <dewar@adacore.com>
9187 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
9188 handling executable extension manually and duplicating code.
9190 * make.adb: Implement new -S switch
9191 (Gnatmake): Use new function Osint.Executable_Name instead
9192 of handling executable extension manually.
9194 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
9195 is specified, the executable name ends with this suffix.
9196 Take advantage of Osint.Executable_Name instead of duplicating code.
9198 * switch-m.adb: Recognize new gnatmake -S switch
9200 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
9202 (Get_Target_Parameters): Set Executable_Extension_On_Target if
9205 * makeusg.adb: Add line for gnatmake -S switch
9207 2006-10-31 Vincent Celier <celier@adacore.com>
9209 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
9210 call it with -static-libgcc, as there are some platforms, such as
9211 Darwin, where one of these two switches is compulsory to link.
9213 2006-10-31 Vincent Celier <celier@adacore.com>
9215 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
9216 instead of ADA_PROJECT_PATH, for the project path.
9217 (Gnatls): When displaying the project path directories, use host dir
9220 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
9221 names in the project path, as absolute paths may correspond to
9222 multi-valued VMS logical names.
9224 2006-10-31 Vincent Celier <celier@adacore.com>
9226 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
9228 (Locate_Regular_File): Ditto
9229 (Change_Dir): Remove, no longer used
9230 (Normalize_Pathname): Do not use Change_Dir to get the drive letter
9231 on Windows. Get it calling Get_Current_Dir.
9232 (OpenVMS): Remove imported boolean, no longer needed.
9233 (Normalize_Pathname)[VMS]: Do not resolve directory names.
9234 (Pid_To_Integer): New function to convert a Process_Id to Integer
9236 2006-10-31 Thomas Quinot <quinot@adacore.com>
9238 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
9239 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
9241 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
9244 2006-10-31 Robert Dewar <dewar@adacore.com>
9246 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
9247 initial letter o as a zero.
9249 2006-10-31 Robert Dewar <dewar@adacore.com>
9251 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
9253 2006-10-31 Robert Dewar <dewar@adacore.com>
9255 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
9257 (Layout_Variant_Record): Retrieve the discriminants from the entity
9258 rather than from the type definition, because in the case of a full
9259 type for a private type we need to take the discriminants from the
9261 (Layout_Component_List): When applying the Max operator to variants with
9262 a nonstatic size, check whether either operand is static and scale that
9263 operand from bits to storage units before applying Max.
9264 (Layout_Type): In VMS, if a C-convention access type has no explicit
9265 size clause (and does not inherit one in the case of a derived type),
9266 then the size is reset to 32 from 64.
9268 2006-10-31 Vincent Celier <celier@adacore.com>
9270 * lib-load.adb (Load_Unit): Skip the test for a unit not found when
9271 its file has already been loaded, according to the unit being loaded,
9272 not to the current value of Multiple_Unit_Index.
9274 2006-10-31 Thomas Quinot <quinot@adacore.com>
9275 Eric Botcazou <ebotcazou@adacore.com>
9276 Arnaud Charlet <charlet@adacore.com>
9278 * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
9279 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
9281 (a-except.o): Pass it to the compiler.
9282 (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
9283 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
9284 a-calend-mingw.adb version.
9286 * Makefile.rtl: Added s-dsaser.
9287 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
9288 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
9289 Ada.Dispatching.Round_Robin.
9290 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
9292 * Make-lang.in: Remove all references to gt-ada-decl.h.
9293 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
9295 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
9296 Update dependencies.
9298 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
9300 2006-10-31 Vincent Celier <celier@adacore.com>
9302 * mlib-utl.adb (Initialized): Remove, no longer used
9303 (Initialize): Remove, no longer used
9304 (Ar): If Ar_Exec is null, get the location of the archive builder and,
9305 if there is one, the archive indexer. Fail if the archive builder cannot
9307 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
9310 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9312 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
9313 Process_Body_Clauses): If the context of a body includes a use clause
9314 for P.Q then a with_clause for P in the same body is not redundant,
9315 even if the spec also has a with_clause on P.
9316 Add missing continuation mark to error msg
9317 (Build_Limited_Views): A limited view of a type is tagged if its
9318 declaration includes a record extension.
9319 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
9320 node, even if the subunit has errors. This avoids malfunction by
9321 Lib.Check_Same_Extended_Unit in the presence of syntax errors.
9322 (Analyze_Compilation_Unit): Add circuit to make sure we get proper
9323 generation of obsolescent messages for with statements (cannot do
9324 this too early, or we cannot implement avoiding the messages in the
9325 case of obsolescent units withing obsolescent units).
9326 (Install_Siblings): If the with_clause is on a remote descendant of
9327 an ancestor of the current compilation unit, find whether there is
9328 a sibling child unit that is immediately visible.
9329 (Remove_Private_With_Clauses): New procedure, invoked after completing
9330 the analysis of the private part of a nested package, to remove from
9331 visibility the private with_clauses of the enclosing package
9333 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
9334 now centralized in Generate_Reference.
9335 (Install_Limited_Context_Clauses): Remove superfluous error
9336 message associated with unlimited view visible through use
9337 and renamings. In addition, at the point in which the error
9338 is reported, we add the backslash to the text of the error
9339 to ensure that it is reported as a single error message.
9340 Use new // insertion for some continuation messages
9341 (Expand_Limited_With_Clause): Use copy of name rather than name itself,
9342 to create implicit with_clause for parent unit mentioned in original
9343 limited_with_clause.
9344 (Install_Limited_With_Unit): Set entity of parent identifiers if the
9345 unit is a child unit. For ASIS queries.
9346 (Analyze_Subunit): If the subunit appears within a child unit, make all
9347 ancestor child units directly visible again.
9349 2006-10-31 Robert Dewar <dewar@adacore.com>
9351 * par-ch10.adb (P_Context_Clause): Minor error message fix
9353 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9354 Javier Miranda <miranda@adacore.com>
9356 * par-ch12.adb: Grammar update and cleanup.
9357 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
9358 support for synchronized derived type definitions.
9359 Add the new actual Abstract_Present to every call to
9360 P_Interface_Type_Definition.
9361 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
9362 a formal object declaration with an access definition or a subtype mark
9363 with a null exclusion.
9364 (P_Generic_Association): Handle association with box, and others_choice
9365 with box, to support Ada 2005 partially parametrized formal packages.
9367 2006-10-31 Robert Dewar <dewar@adacore.com>
9368 Javier Miranda <miranda@adacore.com>
9370 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
9371 (P_Type_Declaration): Remove barrier against the reserved word "limited"
9372 after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
9373 (P_Type_Declaration): Minor code cleanup. Add support for synchronized
9375 (P_Type_Declaration): Add the new actual Abstract_Present to every call
9376 to P_Interface_Type_Definition.
9377 (P_Interface_Type_Definition): Addition of one formal to report an error
9378 if the reserved word abstract has been previously found.
9379 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
9380 object renaming declaration with an access definition or subtype mark
9381 with a possible null exclusion.
9383 * par-ch9.adb: Minor error msg fix
9385 * par-load.adb: Add missing continuation mark to error msg
9387 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
9389 2006-10-31 Vincent Celier <celier@adacore.com>
9391 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
9392 unknown attribute in unknown package or in package that does not need
9394 (Parse_Package_Declaration): Do not issue warning for unknown package in
9397 2006-10-31 Vincent Celier <celier@adacore.com>
9399 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
9400 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
9403 2006-10-31 Vincent Celier <celier@adacore.com>
9405 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
9406 on VMS, change "__" to '.' before checking the name.
9407 (Record_Ada_Source): Always add the source file name in the list of
9408 of sources, even if it is not the first time, as it is for another
9410 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
9411 dot, instead of replacing only the first '_'.
9413 * prj-part.adb (Parse): Convert project file path to canonical form
9415 * prj-proc.adb (Recursive_Process): Make sure that, when a project is
9416 extended, the project id of the project extending it is recorded in its
9417 data, even when it has already been processed as an imported project.
9419 2006-10-31 Robert Dewar <dewar@adacore.com>
9421 * repinfo.adb (List_Entities): Don't list entities from renaming
9424 2006-10-31 Arnaud Charlet <charlet@adacore.com>
9425 Robert Dewar <dewar@adacore.com>
9427 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
9428 only a restriction warning is active for the given restriction. This is
9429 desirable because we do not want to modify code in the case where only
9431 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
9432 causes overriding of real restrictions.
9433 Take advantage of new No_Restrictions constant.
9435 * raise.h: (__gnat_set_globals): Change profile.
9437 2006-10-31 Arnaud Charlet <charlet@adacore.com>
9439 * rtsfind.adb: Remove s-polint from comment as it exists no more.
9442 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
9443 Move all the entities in obsolete package System.PolyORB_Interface to
9444 System.Partition_Interface.
9445 (RE_Storage_Size): New function in System.Tasking.
9446 (RE_Get_Ceiling): New entity.
9447 (RE_Set_Ceiling): New entity.
9448 (RO_PE_Get_Ceiling): New entity.
9449 (RO_RE_Set_Ceiling): New entity.
9450 (Inherit_CPP_DT): New entity
9452 2006-10-31 Robert Dewar <dewar@adacore.com>
9454 * scng.adb (Scan, case of numeric literal): Better msg for identifier
9455 starting with a digit.
9457 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9458 Thomas Quinot <quinot@adacore.com>
9459 Javier Miranda <miranda@adacore.com>
9460 Gary Dismukes <dismukes@adacore.com>
9462 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
9463 properly an attempt to apply Unchecked_Access to a protected operation.
9464 (OK_Self_Reference): New subprogram to check the legality of an access
9465 attribute whose prefix is the type of an enclosing aggregate.
9466 Generalizes previous mechanism to handle attribute references nested
9467 arbitrarily deep within the aggregate.
9468 (Analyze_Access_Attribute): An access attribute whose prefix is a type
9469 can appear in an aggregate if this is a default-initialized aggregate
9470 for a self-referential type.
9471 (Resolve_Attribute, case Access): Ditto.
9472 Add support for new implementation defined attribute Stub_Type.
9473 (Eval_Attribute, case Attribute_Stub_Type): New case.
9474 (Analyze_Attribute, case Attribute_Stub_Type): New case.
9475 (Stream_Attribute_Available): Implement using new subprogram from
9476 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
9477 Has_Specified_Stream_Attribute flag.
9478 Disallow Storage_Size and Storage_Pool for access to subprogram
9479 (Resolve_Attribute, case 'Access et al): Take into account anonymous
9480 access types of return subtypes in extended return statements. Remove
9481 accessibility checks on anonymous access types when Unchecked_Access is
9483 (Analyze_Attribute): Add support for the use of 'Class to convert
9484 a class-wide interface to a tagged type.
9485 Add support for the attribute Priority.
9486 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
9487 whether the designated type is discriminated with a constrained partial
9488 view and require static matching in that case.
9489 Add local variable Des_Btyp. The Designated_Type
9490 of an access to incomplete subtype is either its non-limited view if
9491 coming from a limited with or its etype if regular incomplete subtype.
9493 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
9494 Fix predicate to identify and allow cases of (expander-generated)
9495 references to tag of designated object of a RACW.
9496 (Validate_Static_Object_Name): In Ada 2005, a formal object is
9497 non-static, and therefore cannot appear as a primary in a preelaborable
9499 (Has_Stream_Attribute_Definition): New subprogram, abstracted from
9500 Has_Read_Write_Attributes.
9501 (Has_Read_Write_Attributes): Reimplement in termes of
9502 Has_Stream_Attribute_Definition.
9503 (Missing_Read_Write_Attributes): When checking component types in a
9504 record, unconditionally call Missing_Read_Write_Attributes recursively
9505 (remove guard checking for Is_Record_Type / Is_Access_Type).
9507 2006-10-31 Robert Dewar <dewar@adacore.com>
9509 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
9510 useless assignments here and conditionalize it on absence of exception
9512 (Analyze_Exception_Handlers): Small code reorganization of error
9513 detection code, for new handling of formal packages.
9515 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9516 Hristian Kirtchev <kirtchev@adacore.com>
9518 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
9519 that has been constant-folded, preserve information of original tree,
9521 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
9522 generated private extension declaration if the formal derived type is
9523 synchronized. Carry synchronized present over to the generated private
9525 (Validate_Derived_Type_Instance): Ensure that the actual of a
9526 synchronized formal derived type is a synchronized tagged type.
9527 (Instantiate_Formal_Package): When creating the instantiation used to
9528 validate the actual package of a formal declared without a box, check
9529 whether the formal itself depends on a prior actual.
9530 (Instantiate_Formal_Subprogram): Create new entities for the defining
9531 identifiers of the formals in the renaming declaration, for ASIS use.
9532 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
9533 a renaming declaration or a subtype declaration for an actual in an
9534 instance, capture location information of declaration in generic, for
9536 (Instantiate_Formal_Package): Add comments on needed additional tests.
9537 AI-317 (partial parametrization) is fully implemented.
9538 (Validate_Private_Type_Instance): Add check for actual which
9539 must have preelaborable initialization
9540 Use new // insertion for some continuation messages
9541 (Analyze_Formal_Object_Declaration): Change usage of Expression to
9542 Default_Expression. Add type retrieval when the declaration has an
9543 access definition. Update premature usage of incomplete type check.
9544 (Check_Access_Definition): New subsidiary routine. Check whether the
9545 current compilation version is Ada 05 and the supplied node has an
9547 (Instantiate object): Alphabetize local variables. Handle the creation
9548 of new renaming declarations with respect to the kind of definition
9549 used - either an access definition or a subtype mark. Guard against
9550 unnecessary error message in the context of anonymous access types after
9551 they have been resolved. Add check for required null exclusion in a
9552 formal object declaration.
9553 (Switch_View): A private subtype of a non-private type needs to be
9554 switched (the base type can have been switched without its private
9555 dependents because of the last branch of Check_Private_View.
9556 (Check_Private_View): Do not recompute Base_Type (T), instead use cached
9558 (Instantiate_Type): Emit an error message whenever a class-wide type of
9559 a tagged incomplete type is used as a generic actual.
9560 (Find_Actual_Type): Extend routine to handle a component type in a child
9561 unit that is imported from a formal package in a parent.
9562 (Validate_Derived_Type_Instance): Check that analyzed formal and actual
9563 agree on constrainedness, rather than checking against ultimate ancestor
9564 (Instantiate_Subprogram_Body): Create a cross-reference link to the
9565 generic body, for navigation purposes.
9567 2006-10-31 Robert Dewar <dewar@adacore.com>
9568 Thomas Quinot <quinot@adacore.com>
9570 * sem_ch13.adb: Storage pool cannot be given for access to subprogram
9572 (New_Stream_Subprogram): When processing an attribute definition clause
9573 for a stream-oriented subprogram, record an entity node occurring at
9574 the point of clause to use for checking the visibility of the clause,
9575 as defined by 8.3(23) as amended by AI-195.
9576 (New_Stream_Subprogram): New procedure, factoring behaviour from both
9577 New_Stream_Function and New_Stream_Procedure.
9578 (New_Stream_Function, New_Stream_Procedure): Removed.
9579 (Analyze_Attribute_Definition_Clause, case Address): Check new
9580 Alignment_Check check
9582 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9583 Javier Miranda <miranda@adacore.com>
9584 Robert Dewar <dewar@adacore.com>
9586 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
9587 generate the same errors compiling under -gnatc.
9588 (Try_Object_Operation): If no candidate interpretation succeeds, but
9589 there is at least one primitive operation with the right name, report
9590 error in call rather than on a malformed selected component.
9591 (Analyze_Selected_Component): If the prefix is an incomplete type from
9592 a limited view, and the full view is available, use the full view to
9593 determine whether this is a prefixed call to a primitive operation.
9594 (Operator_Check): Verify that a candidate interpretation is a binary
9595 operation before checking the type of its second formal.
9596 (Analyze_Call): Add additional warnings for function call contexts not
9598 (Analyze_Allocator): Move the check for "initialization not allowed for
9599 limited types" after analyzing the expression. This is necessary,
9600 because OK_For_Limited_Init looks at the structure of the expression.
9601 Before analysis, we don't necessarily know what sort of expression it
9602 is. For example, we don't know whether F(X) is a function call or an
9603 indexed component; the former is legal in Ada 2005; the latter is not.
9604 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
9605 were missing. We also didn't handle qualified expressions. Now also
9606 allow function calls. Use new common routine OK_For_Limited_Init.
9607 (Analyze_Type_Conversion): Do not perform some legality checks in an
9608 instance, because the error message will be redundant or spurious.
9609 (Analyze_Overloaded_Selected_Component): Do not do style check when
9610 setting an entity, since we do not know it is the right entity yet.
9611 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
9612 (Analyze_Overloaded_Selected_Component): Same change
9613 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
9614 since regular incomplete subtypes are transformed into corresponding
9615 subtypes of their full views.
9616 (Complete_Object_Operation): Treat name of transformed subprogram call
9617 as coming from source, for browsing purposes.
9618 (Try_Primitive_Operation): If formal is an access parameter, compare
9619 with base type of object to determine whether it is a primitive
9621 (Operator_Check): If no interpretation of the operator matches, check
9622 whether a use clause on any candidate might make the operation legal.
9623 (Try_Class_Wide_Operation): Check whether the first parameter is an
9624 access type whose designated type is class-wide.
9626 2006-10-31 Robert Dewar <dewar@adacore.com>
9627 Ed Schonberg <schonberg@adacore.com>
9628 Gary Dismukes <dismukes@adacore.com>
9630 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
9631 warn on infinite loops.
9632 Add \\ to some continuation messages
9633 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
9634 (Process_Bounds): If the bounds are integer literals that result from
9635 constant-folding, and they carry a user-defined type, preserve that type
9636 rather than treating this as an integer range.
9637 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
9638 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
9639 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
9640 left hand side of assignment.
9641 (Analyze_Assignment): Add suport to manage assigments to the attribute
9642 priority of a protected object.
9643 (Check_Possible_Current_Value_Condition): Allow fully qualified names
9644 not just identifiers.
9645 (Check_Possible_Current_Value_Condition): Acquire left operand of AND
9646 or AND THEN for possible tracking.
9647 (Analyze_Iteration_Scheme): Check for setting Current_Value for the
9648 case of while loops so we can track values in the loop body.
9650 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9651 Hristian Kirtchev <kirtchev@adacore.com>
9652 Bob Duff <duff@adacore.com>
9654 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
9655 procedure cannot be a protected operation (it is a basic_declaration,
9656 not a subprogram_declaration).
9657 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
9658 Subp. Add logic for entry processing.
9659 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
9660 Determine whether an entry or subprogram of a protected or task type
9661 override an inherited primitive of an implemented interface.
9662 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
9663 Update the actual used in calls to Check_Overriding_Indicator.
9664 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
9665 generate the proper reference to the parent unit, for cross-reference.
9666 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
9668 Add -gnatd.l --Use Ada 95 semantics for limited function returns,
9669 (Add_Extra_Formal): Revise procedure to allow passing in associated
9670 entity, scope, and name suffix, and handle setting of the new
9671 Extra_Formals field.
9672 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
9673 pass new parameters. Add support for adding the new extra access formal
9674 for functions whose calls are treated as build-in-place.
9675 (Analyze_A_Return_Statement): Correct casing in error message.
9676 Move Pop_Scope to after Analyze_Function_Return, because an extended
9677 return statement really is a full-fledged scope. Otherwise, visibility
9678 doesn't work right. Correct use of "\" for continuation messages.
9679 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
9680 evilly trying to call Analyze_Object_Declaration directly. Otherwise,
9681 the node doesn't get properly marked as analyzed.
9682 (Analyze_Subprogram_Body): If subprogram is a function that returns
9683 an anonymous access type that denotes a task, build a Master Entity
9685 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
9686 proper usage of null exclusion in a result definition.
9687 (Process_Formals): Code cleanup and new error message.
9688 (Process_Formals): Detect incorrect application of null exclusion to
9690 (Conforming_Types): Handle conformance between [sub]types and itypes
9691 generated for entities that have null exclusions applied to them.
9692 (Maybe_Primitive_Operation): Add an additional type retrieval when the
9693 base type is an access subtype. This case arrises with null exclusions.
9694 (New_Overloaded_Entity): Do not remove the overriden entity from the
9695 homonym chain if it corresponds with an abstract interface primitive.
9696 (Process_Formals): Replace membership test agains Incomplete_Kind with a
9697 call to the synthesized predicate Is_Incomplete_Type.
9698 (Analyze_Subprogram_Body): Check wrong placement of abstract interface
9700 (Analyze_Subprogram_Declaration): Check that abstract interface
9701 primitives are abstract or null.
9702 (Analyze_Subprogram_Specification): Remove previous check for abstract
9703 interfaces because it was not complete.
9704 (Has_Interface_Formals): Removed.
9706 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9707 Javier Miranda <miranda@adacore.com>
9709 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
9710 of Analyze_Package_Body, to create Itype references for anonymous
9711 access types created in the package declaration, whose designated types
9712 may have only a limited view.
9713 (Analyze_Package_Specification): For the private part of a nested
9714 package, install private_with_clauses of enclosing compilation unit if
9715 we are in its visible part.
9716 (Declare_Inherited_Private_Subprograms): Complete barrier
9717 to ensure that the primitive operation has an alias to some parent
9718 primitive. This is now required because, after the changes done for the
9719 implementation of abstract interfaces, the contents of the list of
9720 primitives has entities whose alias attribute references entities of
9721 such list of primitives.
9722 (Analyze_Package_Specification): Simplify code that handles parent units
9723 of instances and formal packages.
9724 (Uninstall_Declarations): Check the convention consistency among
9725 primitive overriding operations of a tagged record type.
9727 2006-10-31 Robert Dewar <dewar@adacore.com>
9728 Hristian Kirtchev <kirtchev@adacore.com>
9729 Javier Miranda <miranda@adacore.com>
9730 Ed Schonberg <schonberg@adacore.com>
9732 * sem_ch8.adb: Minor error msg rewording
9733 (Undefined): When checking for misspellings, invert arguments (to get
9734 expected and found set right)
9735 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
9736 (Analyze_Generic_Renaming): Same fix
9737 (Use_One_Package): Do not take into account the internal entities of
9738 abstract interfaces during the analysis of entities that are marked
9739 as potentially use-visible.
9740 (Find_Type): Handle the case of an attribute reference for
9741 implementation defined attribute Stub_Type (simply let the analysis of
9742 the attribute reference rewrite it).
9743 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
9744 type that appears in a Use_Type clause.
9745 (Analyze_Object_Renaming): Add support for renaming of the Priority
9747 (Find_Type): In Ada 2005, a task type can be used within its own body,
9748 when it appears in an access definition.
9749 (Analyze_Object_Renaming): Remove warning on null_exclusion.
9750 (Analyze_Object_Renaming): Introduce checks for required null exclusion
9751 in a formal object declaration or in a subtype declaration.
9752 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
9753 (Check_Null_Exclusion): New local routine to
9754 Analyze_Subprogram_Renaming. Check whether the formals and return
9755 profile of a renamed subprogram have required null exclusions when
9756 their counterparts of the renaming already impose them.
9757 (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
9758 Determine whether an entity is inside a generic scope.
9759 (In_Open_Scope): First pass of documentation update.
9760 (Find_Expanded_Name): Add support for shadow entities associated with
9761 limited withed packages. This is required to handle nested packages.
9762 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
9763 that makes a renaming of a limited withed package illegal.
9765 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9766 Ed Schonberg <schonberg@adacore.com>
9768 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
9769 Check_Overriding_Indicator.
9770 (Analyze_Task_Definition): Ditto.
9771 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
9772 (Check_Overriding_Indicator): To find overridden interface operation,
9773 examine only homonyms that have an explicit subprogram declaration, not
9774 inherited operations created by an unrelated type derivation.
9775 (Check_Overriding_Indicator): When checking for the presence of "null"
9776 in a procedure, ensure that the queried node is a procedure
9778 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
9779 type when the formal is an access to variable.
9780 (Analyze_Protected_Type): Add check for Preelaborable_Initialization
9781 (Analyze_Task_Type): Same addition
9782 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
9783 provide navigation capabilities for entries.
9785 2006-10-31 Hristian Kirtchev <kirtchev@adacore.com>
9786 Ed Schonberg <schonberg@adacore.com>
9787 Javier Miranda <miranda@adacore.com>
9788 Gary Dismukes <dismukes@adacore.com>
9790 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
9791 inherited from an interface ancestor by another interface in the
9792 context of an instance as 'late'.
9793 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
9794 of a call to a function that dispatches on access result.
9795 (Check_Dispatching_Operation): In case of late overriding of a primitive
9796 that covers abstract interface subprograms we register it in all the
9797 secondary dispatch tables associated with abstract interfaces.
9798 (Check_Dispatching_Call): Add check that a dispatching call is not made
9799 to a function with a controlling result of a limited type. This is a
9800 current implementation restriction.
9801 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
9802 (Check_Dispatching_Operation): Do no emit a warning if the controlling
9803 argument is an interface type that is a generic formal.
9804 (Is_Interface_Subprogram): Removed.
9805 (Check_Dispatching_Operation): If the subprogram is not a dispatching
9806 operation, check the formals to handle the case in which it is
9807 associated with an abstract interface type.
9809 2006-10-31 Robert Dewar <dewar@adacore.com>
9810 Ed Schonberg <schonberg@adacore.com>
9812 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
9813 Add new calls to this procedure during traversal
9814 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
9815 another unit if expansion is disabled.
9817 2006-10-31 Robert Dewar <dewar@adacore.com>
9819 * sem_eval.adb (Compile_Time_Compare): Make use of information from
9820 Current_Value in the conditional case, to evaluate additional
9821 comparisons at compile time.
9823 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9824 Hristian Kirtchev <kirtchev@adacore.com>
9825 Javier Miranda <miranda@adacore.com>
9827 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
9828 subprogram type to provide better diagnostics in case of ambiguity.
9829 (Covers): Handle coverage of formal and actual anonymous access types in
9830 the context of generic instantiation.
9831 (Covers/Interface_Present_In_Ancestors): Use the base type to manage
9832 abstract interface types; this is required to handle concurrent types
9833 with discriminants and abstract interface types.
9834 (Covers): Include type coverage of both regular incomplete subtypes and
9835 incomplete subtypes of incomplete type visibles through a limited with
9838 2006-10-31 Robert Dewar <dewar@adacore.com>
9839 Hristian Kirtchev <kirtchev@adacore.com>
9840 Ed Schonberg <schonberg@adacore.com>
9842 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
9843 messages for entities in packages which are not used.
9844 (Collect_Synchronized_Interfaces): New procedure.
9845 (Overrides_Synchronized_Primitive): New function.
9846 (Denotes_Discriminant): Extend predicate to apply to task types.
9847 Add missing continuation marks in error msgs
9848 (Unqualify): New function for removing zero or more levels of
9849 qualification from an expression. There are numerous places where this
9850 ought to be used, but we currently only deal properly with zero or one
9852 (In_Instance); The analysis of the actuals in the instantiation of a
9853 child unit is not within an instantiation, even though the parent
9854 instance is on the scope stack.
9855 (Safe_To_Capture_Value): Exclude the case of variables that are
9857 (Check_Obsolescent): Removed
9858 (Is_Aliased_View): A reference to an enclosing instance in an aggregate
9859 is an aliased view, even when rewritten as a reference to the target
9860 object in an assignment.
9861 (Get_Subprogram_Entity): New function
9862 (Known_To_Be_Assigned): New function
9863 (Type_Access_Level): Compute properly the access level of a return
9864 subtype that is an anonymous access type.
9865 (Explain_Limited_Type): Correct use of "\" for continuation messages.
9866 (Is_Transfer): The new extended_return_statement causes a transfer of
9868 (Has_Preelaborable_Initialization): New function
9869 (Has_Null_Exclusion): New function. Given a node N, determine whether it
9870 has a null exclusion depending on its Nkind.
9871 Change Is_Lvalue to May_Be_Lvalue
9872 (May_Be_Lvalue): Extensive additional code to deal with subprogram
9873 arguments (IN parameters are not Lvalues, IN OUT parameters are).
9874 (Safe_To_Capture_Value): Extend functionality so it can be used for
9875 the current value condition case.
9876 (Has_Compatible_Alignment): New function
9877 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
9878 objects to handle the Ada 2005 case, where aliasedness no longer implies
9879 that the object is constrained. In particular, for dereferenced names,
9880 the designated object must be assumed to be unconstrained.
9881 (Kill_Current_Values): Properly deal with the case where we encounter
9882 a loop in the scope chain.
9883 (Safe_To_Capture_Value): Do not let a loop stop us from capturing
9885 (Compile_Time_Constraint_Error): Improve error message in error case
9887 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
9888 associated with entities of abstract interface primitives.
9889 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
9891 2006-10-31 Robert Dewar <dewar@adacore.com>
9893 * s-osinte-tru64.adb:
9894 Mark Asm statements Volatile to prevent warnings (seems a
9895 reasonable change anyway)
9898 * s-mastop-irix.adb: Add Volatile to Asm statements
9899 Suppresses warning, and seems appropriate in any case
9901 * s-osinte-vms.adb: Add Volatile to Asm statement
9903 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
9905 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
9907 Add call to Check_Code_Statement
9909 2006-10-31 Robert Dewar <dewar@adacore.com>
9910 Ed Schonberg <schonberg@adacore.com>
9911 Bob Duff <duff@adacore.com>
9913 * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
9914 Synchronized_Present): Add Formal_Derived_Type_Definition and
9915 Private_Extension_Declaration to the list of assertions.
9916 (Is_Entry_Barrier_Function): New flag
9917 (Has_Self_Reference): New flag on aggregates, to indicate that they
9918 contain a reference to the enclosing type, inserted through a default
9920 (Next_Rep_Item): Move from Node4 to Node5.
9921 (Entity): Add this field for N_Attribute_Definition_Clause.
9922 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
9923 (N_Return_Object_Declaration): Remove this node kind. We now use
9924 N_Object_Declaration instead.
9925 (Actual_Designated_Subtype): Move to a different place to make room in
9926 N_Extended_Return_Statement.
9927 (Procedure_To_Call): Move to a different place to make room in
9928 N_Extended_Return_Statement.
9929 (Return_Type): Removed this field to make room in return statements
9931 (Return_Statement_Entity): New field in return statements, in part to
9932 replace Return_Type, and in part to support the fact that return
9933 statements are now pushed on the scope stack during semantic analysis.
9934 (Return_Object_Declarations): New field to support extended return
9936 (N_Extended_Return_Statement): New node for extended_return_statement
9938 (N_Return_Object_Declaration): New node for part of
9939 extended_return_statement nonterminal. Needed because all the necessary
9940 fields won't fit in N_Extended_Return_Statement.
9941 Generic_associations now carry the Box_Present flag, to indicate a
9942 default for an actual in a partially parametrized formal package.
9944 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
9945 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
9946 and for the new predefined dispatching policies: EDF_Across_Priorities,
9947 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
9948 Introduce new name Stub_Type for implementation defined attribute.
9949 Add pragma Preelaborable_Initialization
9950 Add entry for Priority attribute.
9951 Add Pragma_Wide_Character_Encoding
9952 (Get_Convention_Name): Given a convention id, this function returns the
9953 corresponding name id from the names table.
9955 2006-10-31 Ed Schonberg <schonberg@adacore.com>
9956 Robert Dewar <dewar@adacore.com>
9957 Bob Duff <duff@adacore.com>
9959 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
9960 print null exclusion twice in the case of an access definition,
9961 Implement new -gnatL switch
9962 Remove N_Return_Object_Declaration. We now use
9963 N_Object_Declaration instead. Implement the case for
9964 N_Extended_Return_Statement. Alphabetize the cases.
9965 Add cases for new nodes N_Extended_Return_Statement and
9966 N_Return_Object_Declaration. The code is not yet written.
9967 Update the output for N_Formal_Object_Declaration
9968 and N_Object_Renaming_Declaration.
9969 (Write_Itype): Account for the case of a modular integer subtype whose
9970 base type is private.
9972 2006-10-31 Arnaud Charlet <charlet@adacore.com>
9974 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
9975 Remove elaboration code, now done in the binder.
9977 * s-rident.ads: Make this unit Preelaborate.
9978 (No_Restrictions): New constant used to clean up code and follow
9979 preelaborate constraints.
9982 Add System.Restrictions dependence, referenced directly from the
9983 binder generated file.
9985 2006-10-31 Gary Dismukes <dismukes@adacore.com>
9987 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
9988 True when AAMP extended floating-point is in use (48-bit). Change type
9989 ByteLF to ByteLLF, add new array type ByteLF and condition the size of
9990 the two byte array types on AFloat. Change type of IV_Ilf overlay
9991 variable from Byte8 to ByteLF. Add appropriate initializations of
9992 floating-point overlays for AAMP cases.
9994 2006-10-31 Javier Miranda <miranda@adacore.com>
9996 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
9997 (Get_Ceiling): New subprogram that returns
9998 the ceiling priority of the protected object.
9999 (Set_Ceiling): New subprogram that sets the new ceiling priority of
10000 the protected object.
10002 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
10004 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
10006 2006-10-31 Jose Ruiz <ruiz@adacore.com>
10008 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
10009 requeuing to the same protected object to give higher priority tasks
10010 the opportunity to execute.
10012 2006-10-31 Robert Dewar <dewar@adacore.com>
10014 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
10015 add more precise check for the character sequence that follows '[' to
10016 avoid possible confusion in case if '[' is the last character of a
10018 (Scan_Wide): Always allow brackets encoding
10020 2006-10-31 Olivier Hainque <hainque@adacore.com>
10022 * s-stchop.ads: make this unit preelaborate. This is desirable in
10023 general and made mandatory by the use of this unit by s-taprop which
10024 is itself preelaborate.
10026 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
10027 Td_Events component.
10029 2006-10-31 Vincent Celier <celier@adacore.com>
10031 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
10034 2006-10-31 Vincent Celier <celier@adacore.com>
10036 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
10038 2006-10-31 Vincent Celier <celier@adacore.com>
10040 * makegpr.adb (Check_Compilation_Needed): Take into account path names
10042 (Check_Compilation_Needed): When checking a C or C++ source, do not
10043 resolve symbolic links.
10044 (Display_Command): New Boolean parameter Ellipse, defaulted to False.
10045 When not in verbose mode and Ellipse is True, display "..." for the
10046 first argument with Display set to False.
10047 (Build_Global_Archive): Always set Display True for the first object
10048 file. Call Display_Command with Ellipse set to True.
10050 2006-10-31 Matt Heaney <heaney@adacore.com>
10052 * a-crbtgo.ads: Commented each subprogram
10054 * a-crbtgo.adb: Added reference to book from which algorithms were
10057 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
10058 indicate which child.
10059 (Generic_Conditional_Insert): changed parameter name from "Success" to
10061 (Generic_Unconditional_Insert_With_Hint): improved algorithm
10063 * a-coorse.adb (Replace_Element): changed parameter name in call to
10064 conditional insert operation.
10066 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
10068 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
10071 * a-ciorse.adb (Replace_Element): changed parameter name in call to
10072 conditional insert operation.
10074 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
10077 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
10078 instead of mode inout.
10080 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
10082 (Generic_Read): preserve existing buckets array if possible
10083 (Generic_Write): don't send buckets array length anymore
10085 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
10086 instead of mode inout.
10088 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
10089 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
10091 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
10092 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
10093 (Replace_Element): local operation is now an instantiation
10095 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
10096 check current length.
10097 (Generic_Replace_Element): new operation
10099 2006-10-31 Doug Rupp <rupp@adacore.com>
10101 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
10102 Call TBK$SYMBOLIZE without omitting parameters.
10104 2006-10-31 Vincent Celier <celier@adacore.com>
10106 * symbols-processing-vms-ia64.adb,
10107 symbols-processing-vms-alpha.adb (Process): Do not include symbols
10108 that come from generic instantiations in bodies.
10110 2006-10-31 Pat Rogers <rogers@adacore.com>
10112 * a-rttiev.ads, a-rttiev.adb:
10113 This is a significant redesign primarily for the sake of automatic
10114 timer task termination but also to fix a design flaw.
10115 Therefore we are now using an RTS lock, instead of a protected
10116 object, to provide mutual exclusion to the queue of pending events
10117 and the type Timing_Event is no longer a protected type.
10119 2006-10-31 Robert Dewar <dewar@adacore.com>
10120 Cyrille Comar <comar@adacore.com>
10121 Ben Brosgol <brosgol@adacore.com>
10123 * debug.adb: Update flags documentation
10125 * gnat_ugn.texi: Add documentation for new -gnatwq switch
10126 Clean up documentation for several other warning switches
10127 Clarify how task stack size can be specified with various
10128 versions of Windows.
10129 Add note that -gnatVo includes ranges including loops
10130 Add documentation for -gnatL switch
10131 Add note on elaboration warning for initializing variables
10132 Add documentation for new -gnatwt warning switch
10133 Document new form of pragma Warnings (On|Off, string)
10134 Add comment on use of pragma Warnings to control warnings
10135 Add documentation for -gnatjnn switch
10136 Modify section on interfacing with C for VMS 64-bit.
10137 Add doc for -gnatVe/E
10138 Add documentation of new warning flags -gnatww/-gnatwW
10139 Add warnings about address clause overlays to list of warnings
10140 (Exception Handling Control): Document that the option --RTS must be
10141 used consistently for gcc and gnatbind.
10142 Clarify that inlining is not always possible
10143 Update documentation on pragma Unchecked_Union.
10146 Add documentation for new extended version of pragma Obsolescent
10147 Add documentation for implementation defined attribute 'Stub_Type.
10148 Add note on use of Volatile in asm statements
10149 Add documentation on use of pragma Unreferenced in context clause
10150 Document new form of pragma Warnings (On|Off, pattern)
10151 Document pragma Wide_Character_Encoding
10152 Add note that pragma Restrictions (No_Elaboration_Code) is only fully
10153 enforced if code generation is active.
10154 Add section on pragma Suppress to document GNAT specific check
10156 Clarify difference between No_Dispatching_Calls & No_Dispatch.
10157 Add documentation for pragma Restrictions (No_Elaboration_Code)
10160 Add comments on layout of subprogram local variables in the
10161 presence of nested subprograms.
10163 * ug_words: Resync.
10165 * elists.ads: Minor reformatting
10166 Node returns Node_Or_Entity_Id (doc change only)
10168 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
10170 * g-arrspl.ads (Create): Update comments.
10172 * sem.ads: Add details on the handling of the scope stack.
10174 * usage.adb: Update documentation.
10176 * validsw.ads, validsw.adb:
10177 Add definition of Validity_Check_Components and implement -gnatVe/E
10179 * vms_data.ads: Add missing VMS qualifiers.
10181 * s-addope.ads: Add documentation on overflow and divide by zero
10183 2006-10-31 Robert Dewar <dewar@adacore.com>
10184 Thomas Quinot <quinot@adacore.com>
10185 Arnaud Charlet <charlet@adacore.com>
10187 * fmap.adb: Put routines in alpha order
10189 * g-boumai.ads: Remove redundant 'in' keywords
10191 * g-cgi.adb: Minor reformatting
10193 * g-cgi.ads: Remove redundant 'in' keywords
10195 * get_targ.adb: Put routines in alpha order
10197 * prj-attr.ads: Minor reformatting
10199 * s-atacco.ads: Minor reformatting
10201 * scn.adb: Put routines in alpha order
10203 * sinput-l.adb: Minor comment fix
10205 * sinput-p.adb: Minor comment fix
10207 * s-maccod.ads: Minor reformatting
10209 * s-memory.adb: Minor reformatting
10211 * s-htable.adb: Fix typo in comment.
10213 * s-secsta.adb: Minor comment update.
10215 * s-soflin.adb: Minor reformatting
10218 Add comment about odd qualification in Storage_Offset declaration
10221 Remove unnecessary 'in' keywords for formal parameters.
10223 * treeprs.adt: Minor reformatting
10225 * urealp.adb: Put routines in alpha order
10227 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
10230 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10232 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
10234 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
10235 workaround as on other platforms.
10237 * g-eacodu-vms.adb: Remove redundant 'in' keywords
10238 * g-expect-vms.adb: Remove redundant 'in' keywords
10240 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
10241 clear error message if the list-of-files file cannot be opened.
10243 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
10244 equality operator is always visible.
10246 * lang.opt: Woverlength-strings: New option.
10249 Update copyright, since nmake.ads and nmake.adb have changed.
10251 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
10252 (Binder_Output_Time_Stamps_Set): removed.
10253 (Old_Binder_Output_Time_Stamp): idem.
10254 (New_Binder_Output_Time_Stamp): idem.
10255 (Recording_Time_From_Last_Bind): idem.
10256 (Recording_Time_From_Last_Bind): Make constant.
10258 * output.ads, output.adb (Write_Str): Allow LF characters
10259 (Write_Spaces): New procedure
10261 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
10263 * inline.adb: Minor reformatting
10265 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
10267 * s-mastop-vms.adb: Remove redundant 'in' keywords
10269 * s-osprim-vms.adb: Remove redundant 'in' keywords
10271 * s-trafor-default.adb: Remove redundant 'in' keywords
10273 * 9drpc.adb: Remove redundant 'in' keywords
10275 * s-osinte-mingw.ads: Minor reformatting
10277 * s-inmaop-posix.adb: Minor reformatting
10279 * a-direio.ads: Remove quotes from Compile_Time_Warning message
10281 * a-exexda.adb: Minor code reorganization
10283 * a-filico.adb: Minor reformatting
10285 * a-finali.adb: Minor reformatting
10287 * a-nudira.ads: Remove quote from Compile_Time_Warning message
10289 * a-numeri.ads: Minor reformatting
10291 * a-sequio.ads: Remove quotes from Compile_Time_Warning message
10293 * exp_pakd.ads: Fix obsolete comment
10295 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
10296 a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
10297 Probably not a bug, but certainly neater and more efficient.
10299 * a-tienio.adb: Minor reformatting
10301 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
10302 Avoid assuming low bound of string is 1.
10304 * gnatbind.adb: Change Bindusg to package and rename procedure as
10305 Display, which now ensures that it only outputs usage information once.
10306 (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
10308 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
10311 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
10313 (Match): Add pragma Assert to ensure that Matches'First is zero
10315 * g-regpat.ads (Match): Document that Matches lower bound must be zero
10317 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
10318 documented preconditions (also kills warnings about bad indexes).
10320 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
10322 (Build_Import_Library): Ditto;
10324 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
10326 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
10328 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
10329 lower bound of choice table is 1.
10331 * sem_case.ads (Analyze_Choices): Document that lower bound of
10334 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
10337 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
10338 and add appropriate Assert pragma to suppress warnings.
10340 * atree.h, atree.ads, atree.adb
10341 Change Elist24 to Elist25
10342 Add definitions of Field28 and Node28
10343 (Traverse_Field): Use new syntactic parent table in sinfo.
10345 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10347 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
10349 * exp_tss.adb: Put routines in alpha order
10351 * fe.h: Remove redundant declarations.
10353 2006-10-23 Rafael Avila de Espindola <rafael.espindola@gmail.com>
10355 * utils.c (builtin_function): Rename to gnat_builtin_function.
10356 Move common code to add_builtin_function.
10357 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
10358 gnat_builtin_function.
10359 * gigi.h (builtin_function): Rename to gnat_builtin_function.
10360 Change the signature.
10362 2006-10-16 Brooks Moses <bmoses@stanford.edu>
10364 * Makefile.in: Add TEXI2PDF definition.
10365 * Make-lang.in: Add "ada.pdf" target.
10367 2006-10-03 Kazu Hirata <kazu@codesourcery.com>
10369 * decl.c, utils.c: Fix comment typos.
10370 * utils.c: Fix a typo.
10372 2006-09-28 Eric Botcazou <ebotcazou@adacore.com>
10374 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
10375 on "pure" Ada subprograms if SJLJ exceptions are used.
10376 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
10377 on the declaration node of JMPBUF_SAVE.
10378 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
10379 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
10380 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
10382 2006-08-20 Laurent GUERBY <laurent@guerby.net>
10385 g-socket.adb (Bind_Socket): Call Set_Address.
10387 2006-09-15 Eric Botcazou <ebotcazou@adacore.com>
10390 * decl.c (same_discriminant_p): New static function.
10391 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
10392 subtype and we have discriminants, fix up the COMPONENT_REFs
10393 for the discriminants to make them reference the corresponding
10394 fields of the parent subtype after it has been built.
10396 2006-09-15 Roger Sayle <roger@eyesopen.com>
10399 * utils.c (max_size): Perform constant folding of (A ? B : C) - D
10400 into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
10402 2006-09-13 Olivier Hainque <hainque@adacore.com>
10405 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
10406 of a SAVE_EXPR, just make the operand addressable/not-readonly and
10407 let the common gimplifier code make and propagate a temporary copy.
10408 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
10409 out/in-out actuals and defer setting the addressable/readonly bits
10412 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
10415 * decl.c (components_to_record): Defer emitting debug info for the
10416 record type associated with the variant until after we are sure to
10419 2006-09-13 Eric Botcazou <ebotcazou@adacore.com>
10422 * gigi.h (gnat_internal_attribute_table): Declare.
10423 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
10424 * utils.c (gnat_internal_attribute_table): New global variable.
10425 (builtin_function): Always call decl_attributes on the builtin.
10426 (handle_const_attribute): New static function.
10427 (handle_nothrow_attribute): Likewise.
10429 2006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
10431 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
10433 2006-06-23 Olivier Hainque <hainque@adacore.com>
10435 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
10436 not been able to get a constant upper bound from TYPE_SIZE_UNIT.
10438 2006-06-20 James A. Morrison <phython@gcc.gnu.org>
10439 Eric Botcazou <ebotcazou@adacore.com>
10442 * Make-lang.in: Add check-gnat to lang_checks. Rename existing
10443 check-gnat into check-acats.
10445 2006-06-17 Karl Berry <karl@gnu.org>
10447 * gnat-style.texi (@dircategory): Use "Software development"
10448 instead of "Programming", following the Free Software Directory.
10450 2006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
10453 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
10455 2006-06-06 Laurent GUERBY <laurent@guerby.net>
10458 mlib-utl.adb: Use Program_Name.
10460 2006-05-28 Kazu Hirata <kazu@codesourcery.com>
10462 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
10463 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
10464 trans.c, utils.c: Fix comment typos. Follow spelling
10466 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling
10469 2006-05-19 Nicolas Setton <setton@adacore.com>
10471 * misc.c (gnat_dwarf_name): New function.
10472 (LANG_HOOKS_DWARF_NAME): Define to it.
10474 2006-05-14 H.J. Lu <hongjiu.lu@intel.com>
10476 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
10477 (ada/misc.o): Likewise.
10478 (ada/utils.o): Likewise.
10480 2006-04-08 Aurelien Jarno <aurel32@debian.org>
10482 * Makefile.in: Add Ada support for GNU/kFreeBSD.
10483 * s-osinte-kfreebsd-gnu.ads: New file.
10485 2006-03-29 Carlos O'Donell <carlos@codesourcery.com>
10487 * Make-lang.in: Rename docdir to gcc_docdir.
10489 2006-03-04 Eric Botcazou <ebotcazou@adacore.com>
10491 * gigi.h (get_ada_base_type): Delete.
10492 * utils2.c (get_ada_base_type): Likewise.
10493 * trans.c (convert_with_check): Operate in the real base type.
10495 2006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10497 * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
10499 2006-03-02 Richard Sandiford <richard@codesourcery.com>
10501 * utils.c (create_var_decl): Use have_global_bss_p when deciding
10502 whether to make the decl common.
10504 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
10506 * Make-lang.in (Ada): Remove.
10507 (.PHONY): Remove Ada
10509 2006-02-17 Ed Schonberg <schonberg@adacore.com>
10511 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
10512 aggregate, check the interpretations of the other operand to find one
10513 that may be a boolean array.
10515 (Analyze_Selected_Component): Fix flow-of-control typo in case where
10516 the prefix is a private extension.
10518 2006-02-17 Eric Botcazou <botcazou@adacore.com>
10521 * utils2.c (find_common_type): If both input types are BLKmode and
10522 have the same constant size, keep using the first one.
10524 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
10526 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
10528 * misc.c (gnat_handle_option): New case for -Woverlength-strings.
10530 2006-02-17 Jose Ruiz <ruiz@adacore.com>
10532 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
10533 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
10534 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
10535 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
10536 Abort_Defer/Undefer pairs to avoid the possibility of a task being
10537 aborted while owning a lock.
10539 2006-02-17 Javier Miranda <miranda@adacore.com>
10540 Robert Dewar <dewar@adacore.com>
10542 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
10543 through an access to class-wide interface we force the displacement of
10544 the pointer to the allocated object to reference the corresponding
10545 secondary dispatch table.
10546 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
10547 if Long_Shifts are supported on the target, even if 64 bit divides
10548 are not supported (configurable run time mode).
10549 (Expand_N_Type_Conversion): Do validity check if validity checks on
10550 operands are enabled.
10551 (Expand_N_Qualified_Expression): Do validity check if validity checks
10552 on operands are enabled.
10554 2006-02-17 Ed Schonberg <schonberg@adacore.com>
10556 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
10557 must be materialized when the renamed expression is an explicit
10560 2006-02-17 Ed Schonberg <schonberg@adacore.com>
10562 * freeze.adb (Statically_Discriminated_Components): Return false if
10563 the bounds of the type of the discriminant are not static expressions.
10565 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
10566 the bounds of the discriminant type are not static.
10568 2006-02-17 Robert Dewar <dewar@adacore.com>
10570 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
10571 then we close To if it is valid.
10573 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
10575 * init.c (facility_resignal_table): new array
10576 (__gnat_default_resignal_p): enhance default predicate to resignal if
10577 VMS condition has one of the predefined facility codes.
10579 2006-02-17 Vasiliy Fofanov <fofanov@adacore.com>
10581 * Makefile.in: Use VMS64 specialized versions of several units in
10582 Interfaces.C hierarchy to be compatible with HP C default size choices.
10583 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
10585 2006-02-17 Ed Schonberg <schonberg@adacore.com>
10587 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
10588 instantiation, the corresponding entity is the related_instance of the
10589 wrapper package created for the instance.
10591 2006-02-17 Ed Schonberg <schonberg@adacore.com>
10593 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
10594 the current instance is nested within another instance in a child unit.
10596 2006-02-17 Javier Miranda <miranda@adacore.com>
10597 Ed Schonberg <schonberg@adacore.com>
10599 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
10600 type we cannot inherit the primitive operations; we inherit the
10601 Corresponding_Record_Type (which has the list of primitive operations).
10602 (Check_Anonymous_Access_Types): When creating anonymous access types for
10603 access components, use Rewrite in order to preserve the tree structure,
10605 (Analyze_Object_Declaration): For limited types with access
10606 discriminants with defaults initialized by an aggregate, obtain
10607 subtype from aggregate as for other mutable types.
10608 (Derived_Type_Declaration): If the derived type is a limited interface,
10609 set the corresponding flag (Is_Limited_Record is not sufficient).
10611 2006-02-17 Ed Schonberg <schonberg@adacore.com>
10613 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
10614 to inline a function that returns an unconstrained type, the return
10615 expression must be the first variable declared in the body of the
10618 2006-02-17 Javier Miranda <miranda@adacore.com>
10620 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
10621 abstract interface type, the static analysis is not enough to know if
10622 the interface is implemented or not by the source tagged type. Hence
10623 we must pass the work to the expander to generate the required code to
10624 evaluate the conversion at run-time.
10625 (Resolve_Equality_Op): Do not apply previous
10626 transformation if expansion is disasbled, to prevent anomalies when
10627 locating global references in a generic unit.
10629 2006-02-17 Vincent Celier <celier@adacore.com>
10631 * snames.ads, snames.adb: New standard names for new project attributes:
10632 archive_builder, archive_indexer, compiler_pic_option,
10633 config_body_file_name, config_body_file_name_pattern,
10634 config_file_switches, config_file_unique, config_spec_file_name,
10635 config_spec_file_name_pattern, default_builder_switches,
10636 default_global_compiler_switches, default_language,
10637 dependency_file_kind, global_compiler_switches, include_path,
10638 include_path_file, language_kind, linker_executable_option,
10639 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
10640 roots, runtime_project.
10642 2006-02-17 Matthew Heaney <heaney@adacore.com>
10644 * a-convec.ads, a-convec.adb:
10645 (operator "&"): handle potential overflow for large index types
10646 (Insert): removed Contraint_Error when using large index types
10647 (Insert_Space): removed Constraint_Error for large index types
10648 (Length): moved constraint check from Length to Insert
10650 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
10651 as not null access.
10652 Explicit raise statements now include an exception message.
10653 (operator "&"): handle potential overflow for large index types
10654 (Insert): removed Contraint_Error when using large index types
10655 (Insert_Space): removed Constraint_Error for large index types
10656 (Length): moved constraint check from Length to Insert
10658 2006-02-17 Robert Dewar <dewar@adacore.com>
10660 * s-wchcnv.adb: Document handling of [ on output (we do not change
10661 this to ["5B"] and the new comments say why not.
10664 Add note for -gnatVo that this now includes the cases of type
10665 conversions and qualified expressions.
10666 Add comments on handling of brackets encoding for Text_IO
10668 2006-02-17 Ramon Fernandez <fernandez@adacore.com>
10669 Thomas Quinot <quinot@adacore.com>
10670 Robert Dewar <dewar@adacore.com>
10671 Javier Miranda <miranda@adacore.com>
10673 * expander.adb: Fix typo in comment
10675 * exp_pakd.adb: Fix typo
10676 Minor comment reformatting.
10678 * g-dyntab.adb: Minor reformatting
10680 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
10681 aliased subprograms to look for the abstract interface subprogram.
10683 2006-02-16 Eric Botcazou <ebotcazou@adacore.com>
10685 * env.c (__gnat_setenv): Use size_t.
10686 (__gnat_unsetenv): Likewise.
10687 (__gnat_clearenv): Likewise.
10689 2006-02-16 Arnaud Charlet <charlet@adacore.com>
10691 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
10693 2006-02-13 Arnaud Charlet <charlet@adacore.com>
10695 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
10696 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
10697 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
10698 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
10699 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
10700 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
10701 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
10702 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
10703 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
10706 2006-02-13 Jose Ruiz <ruiz@adacore.com>
10708 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
10709 protection against race conditions is not needed.
10710 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
10712 (Set_Specific_Handler): Add mutual exclusive access to the specific
10714 (Specific_Handler): Add mutual exclusive access for retrieving the
10717 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
10720 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
10721 Fall_Back_Handler and Specific_Handler.
10723 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
10724 termination handlers.
10725 Set two different owerflow depending on the maximal stack size.
10727 * s-solita.adb (Task_Termination_Handler_T): Document why explicit
10728 protection against race conditions is not needed when executing the
10729 task termination handler.
10731 2006-02-13 Robert Dewar <dewar@adacore.com>
10733 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
10734 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
10735 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
10736 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
10737 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
10738 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
10739 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
10740 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
10741 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
10742 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
10743 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
10744 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
10745 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
10746 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
10747 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
10748 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
10749 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
10750 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
10751 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
10752 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
10753 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
10754 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
10755 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
10756 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
10757 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
10758 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
10759 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
10760 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
10761 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
10762 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
10763 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
10764 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
10765 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
10766 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
10769 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
10771 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
10772 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
10773 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
10774 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
10775 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
10776 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
10777 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
10778 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
10779 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
10781 2006-02-13 Arnaud Charlet <charlet@adacore.com>
10783 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
10784 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
10785 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
10786 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
10787 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
10788 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
10789 replaced by anonymous access type.
10790 (pthread_sigmask): Now take an access sigset_t
10792 * s-osinte-hpux.ads: Ditto.
10793 (pthread_mutex_t, pthread_cond_t): Update definitions to support
10794 properly 32 and 64 bit ABIs.
10796 2006-02-13 Pascal Obry <obry@adacore.com>
10798 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
10799 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
10800 s-taprop-linux.adb, s-taprop-solaris.adb,
10801 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
10802 adjustement is already done when calling this routine.
10804 2006-02-13 Pascal Obry <obry@adacore.com>
10806 * system-mingw.ads (Underlying_Priorities): Update the priority mapping
10807 table to take advantage of the 16 priority levels available on Windows
10808 2000 and XP. On NT4 there are only 7 priority levels, this is properly
10809 supported by this new mapping.
10811 2006-02-13 Nicolas Setton <setton@adacore.com>
10813 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
10814 (get_encoding): New subprogram. Extracts the encodings from an encoded
10817 2006-02-13 Pascal Obry <obry@adacore.com>
10818 Nicolas Roche <roche@adacore.com>
10819 Arnaud Charlet <charlet@adacore.com>
10821 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
10823 (__gnat_try_lock): Add unicode support by using a specific section on
10825 (__gnat_get_current_dir): Idem.
10826 (__gnat_open_read): Idem.
10827 (__gnat_open_rw): Idem.
10828 (__gnat_open_create): Idem.
10829 (__gnat_create_output_file): Idem.
10830 (__gnat_open_append): Idem.
10831 (__gnat_open_new): Idem.
10832 (__gnat_file_time_name): Idem.
10833 (__gnat_set_file_time_name): Idem.
10834 (__gnat_stat): Idem.
10835 (win32_no_block_spawn): Idem.
10836 (__gnat_locate_exec_on_path): Idem.
10837 (__gnat_opendir): New routine.
10838 (__gnat_closedir): Idem.
10839 (__gnat_readdir): Add new parameter length (pointer to int). Update
10840 implementation to use it and add specific Win32 code for Unicode
10842 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
10843 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
10844 (convert_addresses): Do not define this dummy routine on VMS.
10846 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
10847 runtime Unicode support will be activated.
10848 (S2WS): String to Wide-String conversion. This version just copy a
10849 string in non Unicode version.
10850 (WS2S): Wide-String to String conversion. This version just copy a
10851 string in non Unicode version.
10853 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
10854 (Open): Now import __gnat_opendir from adaint.c.
10855 (Read): Change the implementation to support unicode characters. It is
10856 not possible to use strlen() on Windows as this version supports only
10857 standard ASCII characters. So the length of the directory entry is now
10858 returned from the imported __gnat_readdir routine.
10859 Update copyright notice.
10861 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
10862 (opendir): Moved to adaint.c.
10864 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
10865 (Get_Directory): Fix wrong indexing.
10866 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
10867 __gnat_getenv from env.c
10868 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
10871 * env.h, env.c: New file.
10873 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
10874 adaint.c by __gnat_getenv from env.c
10876 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
10877 adaint.c by __gnat_getenv from env.c
10879 * Make-lang.in: Add env.o in the list of C object needed by gnat1
10881 Update dependencies.
10883 2006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
10884 Olivier Hainque <hainque@adacore.com>
10885 Eric Botcazou <ebotcazou@adacore.com>
10887 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
10889 * gigi.h (value_factor_p): Add prototype and description, now public.
10891 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
10892 promotion for field with rep clause if the associated size was proven
10894 Expand comments describing attempts to use a packable type.
10895 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
10896 E_Floating_Point_Subtype>: Inherit alias set of what we are making a
10897 subtype of to ensure conflicts amongst all subtypes in a hierarchy,
10898 necessary since these are not different types and pointers may
10899 actually designate any subtype in this hierarchy.
10900 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
10901 discriminants but put them into record only if not Unchecked_Union;
10902 pass flag to components_to_record showing Unchecked_Union.
10903 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
10904 components before variants; don't set TYPE_UNCHECKED_UNION_P.
10905 (components_to_record): New argument UNCHECKED_UNION.
10906 Remove special case code for Unchecked_Union and instead use main code
10907 with small changes.
10910 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
10911 variable with the expression being built, only its inner field.
10913 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
10914 emit_sequence_entry_statements.
10915 (emit_sequence_entry_statements, body_with_handlers_p): Delete.
10916 (establish_gnat_vms_condition_handler): Move before
10917 Subprogram_Body_to_gnu.
10918 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
10919 for a subprogram if it has a foreign convention or is exported.
10920 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
10921 substituted for a CONST_DECL.
10922 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
10923 Etype to assoc_to_constructor.
10924 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
10925 discriminants of Unchecked_Union.
10926 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
10927 don't need cluttering preprocessor directives.
10928 (establish_gnat_vms_condition_handler): New function. Establish the GNAT
10929 condition handler as current in the compiled function.
10930 (body_with_handlers_p): New function. Tell whether a given sequence of
10931 statements node is attached to a package or subprogram body and involves
10932 exception handlers possibly nested within inner block statements.
10933 (emit_sequence_entry_statements): New function, to emit special
10934 statements on entry of sequences when necessary. Establish GNAT
10935 condition handler in the proper cases for VMS.
10936 (Handled_Sequence_Of_Statements_to_gnu): Start block code with
10937 emit_sequence_entry_statements.
10939 * utils2.c (find_common_type): If both input types are BLKmode and
10940 have a constant size, use the smaller one.
10941 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
10944 * utils.c (value_factor_p): Make public, to allow uses from other gigi
10946 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
10947 (convert, case UNION_TYPE): Remove special treatment for unchecked
10951 (update_pointer_to): Update variants of pointer types to unconstrained
10952 arrays by attaching the list of fields of the main variant.
10954 2006-02-13 Arnaud Charlet <charlet@adacore.com>
10955 Robert Dewar <dewar@adacore.com>
10957 * a-exexpr.adb, a-exexpr-gcc.adb
10958 (Process_Raise_Exception): Removed, merged with Propagate_Exception.
10959 (Propagate_Exception): Now take extra From_Signal_Handler parameter.
10960 Remove code unused for exception propagation for the compiler itself
10961 from a-except.adb and update to still share separate packages.
10963 * a-except.ads, a-except.adb: Ditto.
10964 Add comments that this version is now used only by the compiler and
10965 other basic tools. The full version that includes the Ada 2005 stuff
10966 is in separate files a-except-2005.ads/adb. The reason is that we do
10967 not want to cause bootstrap problems with compilers not recognizing
10969 Add exception reason code PE_Implicit_Return
10970 Add new exception reason code (Null Exception_Id)
10972 * a-except-2005.adb, a-except-2005.ads: New files.
10974 * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
10976 * s-wchcon.adb: New file.
10978 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
10979 (traceback.o deps): Likewise.
10980 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
10981 Activate build of GMEM instrumentation library on VMS targets.
10982 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
10983 Use a-except-2005.ads/adb for all run-time library builds unless
10984 specified otherwise.
10985 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
10986 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
10987 Use s-parame.adb on all native platforms.
10988 Use s-parame-vxworks.adb on all vxworks platforms.
10989 Add env.c env.h in LIBGNAT_SRCS
10990 Add env.o in LIBGNAT_OBJS
10991 (GNATMAKE_OBJS): Remove ctrl_c.o object.
10992 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
10993 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
10994 supports VxWorks 6 RTPs.
10995 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
10996 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
10998 * types.h, types.ads (Terminate_Program): New exception
10999 Add comment on modifying multiple versions of a-except.adb when the
11000 table of exception reasons is modified.
11001 Add exception reason code PE_Implicit_Return
11002 Add new exception reason code (Null Exception_Id)
11004 * clean.adb (Initialize): Get the target parameters before checking
11005 if target is OpenVMS. Move the OpenVMS specific code here from package
11006 body elaboration code.
11008 2006-02-13 Thomas Quinot <quinot@adacore.com>
11009 Vincent Celier <celier@adacore.com>
11010 Robert Dewar <dewar@adacore.com>
11012 * ali-util.adb (Get_File_Checksum): Update to account for change in
11013 profile of Initialize_Scanner.
11015 * gprep.adb (Gnatprep): Update to account for change in profile of
11016 Initialize_Scanner.
11017 (Process_One_File): Same.
11019 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
11020 common code between Get_Code_Unit and Get_Source_Unit. Reimplement
11021 that behaviour using the new Unit information recorded in the source
11022 files table, rather than going through all units every time.
11023 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
11024 (Get_Source_Unit): Same.
11026 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
11027 change in profile of Initialize_Scanner.
11028 (Prepare_To_Preprocess): Same.
11030 * lib.ads: Fix typo in comment (templace -> template).
11032 * prj-part.adb (Parse_Single_Project): Update to account for change in
11033 profile of Initialize_Scanner.
11035 * scn.adb (Initialize_Scanner): Account for change in profile of
11036 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
11037 Also record the association of the given Source_File_Index to the
11038 corresponding Unit_Number_Type.
11040 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
11042 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
11043 Remove Unit formal for generic scanner: this formal
11044 is only relevant to Scn (the scanner instance used to parse Ada source
11045 files), not to other instances. Update comment accordingly.
11046 (Scan): Use new function Snames.Is_Keyword_Name.
11048 * sinfo-cn.adb: Fix typo in comment.
11050 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
11053 * sinput.ads (Source_File_Record): New component Unit, used to capture
11054 the unit identifier (if any) associated to a source file.
11056 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
11057 Unit in Source_File_Record.
11059 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
11060 in profile of Initialize_Scanner.
11062 * scans.adb (Initialize_Ada_Keywords): New procedure
11064 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
11065 Ada keywords in the Namet table, without the need to call
11066 Initialize_Scanner.
11068 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
11069 (Is_Keyword_Name): New function
11071 * snames.ads: Add subtype Configuration_Pragma_Names
11072 Add pragma Ada_2005 (synonym for Ada_05)
11073 (Is_Keyword_Name): New function
11075 * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
11077 2006-02-13 Arnaud Charlet <charlet@adacore.com>
11079 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
11082 * a-stwima.adb (To_Set): Add extra check when N = 0.
11084 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
11086 2006-02-13 Arnaud Charlet <charlet@adacore.com>
11088 * s-parame-mingw.adb, s-parame-linux.adb,
11089 s-parame-solaris.adb: Removed, replaced by s-parame.adb
11091 * s-parame-vxworks.ads: Fix typo.
11093 * s-parame-vxworks.adb: New file.
11095 * s-parame.adb: Version now used by all native platforms.
11096 (Default_Stack_Size): Use 2 megs for default stack size and use
11097 __gl_default_stack_size when available.
11098 (Minimum_Stack_Size): Use 12K.
11100 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
11101 (Create_Task): Refine implementation taking advantage of the XP stack
11102 size support. On XP, we now create the thread using the flag
11103 STACK_SIZE_PARAM_IS_A_RESERVATION.
11105 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
11107 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
11108 XP and 0 on older Windows versions.
11110 * interfac-vms.ads: Removed, no longer used.
11112 2006-02-13 Matthew Heaney <heaney@adacore.com>
11114 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
11115 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
11116 a-cohase.adb: All explicit raise statements now include an exception
11119 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
11120 (Update_Element_Preserving_Key): renamed op to just Update_Element.
11121 Explicit raise statements now include an exception message
11123 * a-cihase.ads, a-cohase.ads: Removed comment.
11125 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
11126 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
11127 a-szbzha.adb, a-szfzha.ads: New files.
11129 2006-02-13 Matthew Heaney <heaney@adacore.com>
11131 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
11134 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
11136 * lang.opt: Wvariadic-macros: New option.
11137 Wold-style-definition: Likewise.
11138 Wmissing-format-attribute: Likewise.
11140 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
11141 -Wold-style-definition and -Wmissing-format-attribute.
11143 2006-02-13 Robert Dewar <dewar@adacore.com>
11145 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
11147 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
11149 2006-02-13 Nicolas Roche <roche@adacore.com>
11151 * a-envvar.adb, a-envvar.ads: New files.
11153 2006-02-13 Douglas Rupp <rupp@adacore.com>
11155 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
11157 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
11159 2006-02-13 Pat Rogers <rogers@adacore.com>
11161 * a-rttiev.adb, a-rttiev.ads: New files.
11163 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
11165 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
11166 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files.
11168 * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
11170 2006-02-13 Robert Dewar <dewar@adacore.com>
11172 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
11173 sem_case.adb: Minor code reorganization (not Present should be No)
11175 2006-02-13 Geert Bosch <bosch@adacore.com>
11176 Gary Dismukes <dismukes@adacore.com>
11178 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
11179 0, since the lower bound of the actual string may be greater than one.
11182 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
11183 layout is requested.
11185 2006-02-13 Vincent Celier <celier@adacore.com>
11187 * back_end.adb (Scan_Compiler_Arguments): Check if
11188 Search_Directory_Present is True and, if it is, add the argument in
11189 the source search directory path.
11191 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
11192 Search_Directory_Present to True.
11194 2006-02-13 Joel Brobecker <brobecke@adacore.com>
11196 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
11197 volatile, to tell the compiler to preserve this variable at any level
11199 (Gen_Versions_Ada): Temporarily work around codegen bug.
11201 2006-02-13 Vincent Celier <celier@adacore.com>
11203 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
11204 gcc to link with option -shared-libgcc.
11205 (Gnatlink): Remove duplicate switches -shared-libgcc
11207 2006-02-13 Robert Dewar <dewar@adacore.com>
11209 * gnatvsn.ads (Current_Year): New constant, used to easily update
11210 copyright on all GNAT tools.
11212 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
11215 2006-02-13 Robert Dewar <dewar@adacore.com>
11217 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
11218 after hyphen (small aesthetic change useful for a range of numbers
11220 Suppress range checks for a couple of assignments which otherwise
11221 cause validity checks with validity checking turned on.
11223 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
11224 Improvement in error message for object.
11225 (Rep_Item_Too_Late): Remove '!' in warning message.
11227 2006-02-13 Robert Dewar <dewar@adacore.com>
11228 Eric Botcazou <ebotcazou@adacore.com>
11230 * err_vars.ads: Suppress range checks for a couple of assignments
11231 which otherwise cause validity checks with validity checking turned on.
11234 * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
11235 Make message unconditional if it is a warning.
11236 (Error_Msg_NEL): Always output warning messages.
11237 Suppress range checks for a couple of assignments which otherwise
11238 cause validity checks with validity checking turned on.
11240 * errout.ads (Message Insertion Characters): Document that '!' is
11241 implied by '?' in error messages.
11243 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
11244 (Gnat1drv): Use a goto to end of main subprogram instead of
11245 Exit_Program (E_Success) so that finalization can occur normally.
11247 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
11249 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
11252 2006-02-13 Vincent Celier <celier@adacore.com>
11254 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
11255 Unchecked_Conversion functions.
11256 (Modification_Time): Use direct conversion of OS_Time to Calendar time
11257 when OpenVMS returns False.
11259 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
11260 a-dirval.adb (OpenVMS): New Boolean function
11262 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11263 Thomas Quinot <quinot@adacore.com>
11265 * checks.adb (Build_Discriminant_Checks): If the expression being
11266 checks is an aggregate retrieve the values of its discriminants to
11267 generate the check, rather than creating a temporary and a reference
11269 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
11270 (Install_Null_Excluding_Check): Ditto
11271 (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
11272 not for the renamed object, so that the actual itype is attached in the
11275 2006-02-13 Robert Dewar <dewar@adacore.com>
11276 Vincent Celier <celier@adacore.com>
11278 * debug.adb: Eliminate numeric switches for binder/gnatmake
11280 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
11281 switches for the compiler.
11282 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
11283 (Scan_Make_Switches): When failing with an illegal switch, output an
11284 error message with the full switch.
11285 Eliminate numeric switches for binder/gnatmake
11287 * switch.ads, switch.adb (Bad_Switch): New procedure
11289 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
11290 Remove 0-9 as debug flag character possibilities
11291 -d is now controlling the primary stack size when its value is a
11292 positive. Also add checks against invalid values, and support for kb,
11293 mb. Ditto for -D switch.
11295 2006-02-13 Robert Dewar <dewar@adacore.com>
11296 Serguei Rybin <rybin@adacore.com>
11298 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
11299 save/restore routines.
11300 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11301 were not always properly handled previously.
11302 Since we are changing the tree format anyway, also get rid of the
11303 junk obsolete Immediate_Errors flag.
11304 (Tree_Read): Change the way of reading Tree_Version_String - now we
11305 read the version string from the tree even if its length is not the
11306 same as the length of the version string computed from Gnatvsn.
11307 (Search_Directory_Present): New Boolean flag for the compiler.
11308 Define Tree_Version_String as a dynamic string.
11309 (Default_Stack_Size): new variable, used to handle switch -d.
11312 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
11313 only for main unit.
11314 Add pragma Ada_2005 (synonym for Ada_05)
11315 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11316 were not always properly handled previously.
11318 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
11319 explicit Ada_95 to Ada_2005.
11321 2006-02-13 Javier Miranda <miranda@adacore.com>
11322 Robert Dewar <dewar@adacore.com>
11323 Ed Schonberg <schonberg@adacore.com>
11325 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
11326 against errors in the source program: a private types for which the
11327 corresponding full type declaration is missing and pragma CPP_Virtual
11329 (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
11330 (Is_Known_Null): New flag
11331 (Has_Pragma_Pure): New flag
11332 (No_Return): Present in all entities, set only for procedures
11333 (Is_Limited_Type): A type whose ancestor is an interface is limited if
11334 explicitly declared limited.
11335 (DT_Offset_To_Top_Func): New attribute that is present in E_Component
11336 entities. Only used for component marked Is_Tag. If present it stores
11337 the Offset_To_Top function used to provide this value in tagged types
11338 whose ancestor has discriminants.
11340 * exp_ch2.adb: Update status of new Is_Known_Null flag
11342 * sem_ch7.adb: Maintain status of new Is_Known_Null flag
11344 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
11345 the categorization sense if Is_Pure was set by pragma Pure_Function.
11347 2006-02-13 Quentin Ochem <ochem@adacore.com>
11348 Olivier Hainque <hainque@adacore.com>
11350 * bindusg.adb: Updated documentation for -d and -D switches.
11352 * raise.h (__gnat_set_globals): added new parameter for
11353 Default_Stack_Size.
11355 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
11356 (__gnat_handle_vms_condition): Adjust context before raise.
11357 (__gnat_install_handler): Restore the global vector setup for GCC
11358 versions before 3.4, as the frame based circtuitry is not available
11360 (__gnat_set_globals): added a parameter default_stack_size
11361 (__gl_default_stack_size): new variable.
11363 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11365 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
11366 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
11367 does not exist in the Ada RM.
11368 (Compatible_Int_Bounds): Determine whether two integer range bounds
11369 are of equal length and have the same start and end values.
11370 (Is_Int_Range_Bounds): Determine whether a node is an integer range.
11371 (Build_Record_Aggr_Code): Perform proper sliding of a nested array
11372 aggregate when it is part of an object declaration.
11373 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that
11374 constrains discriminants of its parent, add explicitly the discriminant
11375 constraints of the ancestor by retrieving them from the
11376 stored_constraint of the parent.
11378 2006-02-13 Robert Dewar <dewar@adacore.com>
11380 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
11381 attribute Mechanism_Code is applied to renamed subprogram, modify
11382 prefix to point to base subprogram.
11383 Max/Min attributes now violate Restriction No_Implicit_Conditionals
11385 * sinfo.ads: Document that Mechanism_Code cannot be applied to
11386 renamed subprograms so that the front-end must replace the prefix
11389 2006-02-13 Javier Miranda <miranda@adacore.com>
11390 Gary Dismukes <dismukes@adacore.com>
11392 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
11393 availability of RE_Interface_Tag.
11394 (Build_Initialization_Call): Fix wrong access to the discriminant value.
11395 (Freeze_Record_Type): Do not generate the tables associated with
11396 timed and conditional dispatching calls through synchronized
11397 interfaces if compiling under No_Dispatching_Calls restriction.
11398 When compiling for Ada 2005, for a nonabstract
11399 type with a null extension, call Make_Controlling_Function_Wrappers
11400 and insert the wrapper function declarations and bodies (the latter
11401 being appended as freeze actions).
11402 (Predefined_Primitive_Bodies): Do not generate the bodies of the
11403 predefined primitives associated with timed and conditional
11404 dispatching calls through synchronized interfaces if we are
11405 compiling under No_Dispatching_Calls.
11406 (Build_Init_Procedure): Use RTE_Available to check if a run-time
11407 service is available before generating a call.
11408 (Make_Controlling_Function_Wrappers): New procedure.
11409 (Expand_N_Full_Type_Declaration): Create a class-wide master for
11410 access-to-limited-interfaces because they can be used to reference
11411 tasks that implement such limited interface.
11412 (Build_Offset_To_Top_Functions): Build the tree corresponding to the
11413 procedure spec and body of the Offset_To_Top function that is generated
11414 when the parent of a type with discriminants has secondary dispatch
11416 (Init_Secondary_Tags): Handle the case in which the parent of the type
11417 containing secondary dispatch tables has discriminants to generate the
11418 correct arguments to call Set_Offset_To_Top.
11419 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
11421 * a-tags.ads, a-tags.adb: (Check_Index): Removed.
11422 Add Wide_[Wide_]Expanded_Name.
11423 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
11424 the same functionality of Get_Prim_Op_Address but applied to predefined
11425 primitive operations because the pointers to the predefined primitives
11426 are now saved in a separate table.
11427 (Parent_Size): Modified to get access to the separate table of primitive
11428 operations or the parent type.
11429 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
11430 functionality of Set_Prim_Op_Address but applied to predefined primitive
11432 (Set_Signature): New subprogram used to store the signature of a DT.
11433 (Displace): If the Offset_To_Top value is not static then call the
11434 function generated by the expander to get such value; otherwise use
11435 the value stored in the table of interfaces.
11436 (Offset_To_Top): The type of the actual has been changed to Address to
11437 give the correct support to tagged types with discriminants. In this
11438 case this value is stored just immediately after the tag field.
11439 (Set_Offset_To_Top): Two new formals have been added to indicate if the
11440 offset_to_top value is static and hence pass this value to the run-time
11441 to store it in the table of interfaces, or else if this value is dynamic
11442 and then pass to the run-time the address of a function that is
11443 generated by the expander to provide this value for each object of the
11446 * rtsfind.ads (Default_Prin_Op_Count): Removed.
11447 (Default_Prim_Op_Count): New entity
11448 (Get_Predefined_Prim_Op_Address): New entity
11449 (Set_Predefined_Prim_Op_Address): New entity
11450 (RE_Set_Signature): New entity
11452 2006-02-13 Thomas Quinot <quinot@adacore.com>
11453 Ed Schonberg <schonberg@adacore.com>
11455 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
11456 Make_Adjust_Call done for a newly-allocated object.
11458 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
11459 in a subprogram are wrapped in a cleanup block, indicate that the
11460 subprogram contains an inner block with an exception handler.
11461 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
11462 Adjust call is for a newly-allocated object. In that case we must not
11463 assume that the finalization list chain pointers are correct (since they
11464 come from a bit-for-bit copy of the original object's pointers) so if
11465 the attach level would otherwise be zero (no change), we set it to 4
11466 instead to cause the pointers to be reset to null.
11468 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
11469 reset chain pointers to null.
11471 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11473 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
11474 string, and the context requires a loop for the assignment (e.g.
11475 because the left-hand side is packed), generate a unique name for the
11476 temporary that holds the string, to prevent spurious name clashes.
11478 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11479 Javier Miranda <miranda@adacore.com>
11480 Robert Dewar <dewar@adacore.com>
11481 Gary Dismukes <dismukes@adacore.com>
11483 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
11484 return unconstrained arrays.
11486 (Expand_Call): An indirect call through an access parameter of a
11487 protected operation is not a protected call.
11488 Add circuit to raise CE in Ada 2005 mode following call
11489 to Raise_Exception.
11490 (Register_DT_Entry): Do nothing if
11491 the run-time does not give support to abstract interfaces.
11492 (Freeze_Subprogram): In case of dispatching operations, do not generate
11493 code to register the operation in the dispatch table if the source
11494 is compiled with No_Dispatching_Calls.
11495 (Register_Predefined_DT_Entry): Generate code that calls the new
11496 run-time subprogram Set_Predefined_Prim_Op_Address instead of
11497 Set_Prim_Op_Address.
11499 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
11500 on array assignments if the right-hand side is a function call that has
11501 been inlined. Check is performed on the assignment in the block.
11502 (Process_Bounds): If bounds and range are overloaded, apply preference
11503 rule for root operations to disambiguate, and diagnose true ambiguity.
11504 (Analyze_Assignment): Propagate the tag for a class-wide assignment with
11505 a tag-indeterminate right-hand side even when Expander_Active is True.
11506 Needed to ensure that dispatching calls to T'Input are allowed and
11507 get the tag of the target class-wide object.
11509 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
11510 an inherited primitive operation that already overrides several
11511 abstract interface primitives. For transitivity, the new entity must
11512 also override all the abstract interface primitives covered by the
11513 inherited overriden primitive.
11514 Emit warning if new entity differs from homograph in same scope only in
11515 that one has an access parameter and the other one has a parameter of
11516 a general access type with the same designated type, at the same
11517 position in the signature.
11518 (Make_Inequality_Operator): Use source locations of parameters and
11519 subtype marks from corresponding equality operator when creating the
11520 tree structure for the implicit declaration of "/=". This does not
11521 change anything in behaviour except that the decoration of the
11522 components of the subtree created for "/=" allows ASIS to get the
11523 string images of the corresponding identifiers.
11524 (Analyze_Return_Statement): Remove '!' in warning message.
11525 (Check_Statement_Sequence): Likewise.
11526 (Analyze_Subprogram_Body): For an access parameter whose designated type
11527 is an incomplete type imported through a limited_with clause, use the
11528 type of the corresponding formal in the body.
11529 (Check_Returns): Implicit return in No_Return procedure now raises
11530 Program_Error with a compile time warning, instead of beging illegal.
11531 (Has_Single_Return): Function returning unconstrained type cannot be
11532 inlined if expression in unique return statement is not an identifier.
11533 (Build_Body_To_Inline): It is possible to inline a function call that
11534 returns an unconstrained type if all return statements in the function
11535 return the same local variable. Subsidiary procedure Has_Single_Return
11536 verifies that the body conforms to this restriction.
11538 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
11539 same type, and one of them is of an anonymous access type, convert
11540 the other operand to it, so that this is a valid binary operation for
11542 (Resolve_Type_Conversion): Handle subtypes of protected types and
11543 task types when accessing to the corresponding record type.
11544 (Resolve_Allocator): Add '\' in 2-line warning message.
11545 Remove '!' in warning message.
11546 (Resolve_Call): Add '\' in 2-line warning message.
11547 (Valid_Conversion): Likewise.
11548 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
11549 resulting type may be an access type with an implicit dereference.
11550 Obtain the proper component from the designated type.
11551 (Make_Call_Into_Operator): Handle properly a call to predefined equality
11552 given by an expanded name with prefix Standard, when the operands are
11553 of an anonymous access type.
11554 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
11555 Explicit_Dereference and Resolve_Selected_Component, to verify that the
11556 prefix of the expression is not of an incomplete type. Allows full
11557 diagnoses of all semantic errors.
11558 (Resolve_Actuals): If the actual is an allocator whose directly
11559 designated type is a class-wide interface we build an anonymous
11560 access type to use it as the type of the allocator. Later, when
11561 the subprogram call is expanded, if the interface has a secondary
11562 dispatch table the expander will add a type conversion to force
11563 the displacement of the pointer.
11564 (Resolve_Call): If a function that returns an unconstrained type is
11565 marked Inlined_Always and inlined, the call will be inlined and does
11566 not require the creation of a transient scope.
11567 (Check_Direct_Boolean_Op): Removed
11568 (Resolve_Comparison_Op): Remove call to above
11569 (Resolve_Equality_Op): Remove call to above
11570 (Resolve_Logical_Op): Inline above, since this is only call.
11571 (Valid_Conversion): Handle properly conversions between arrays of
11572 convertible anonymous access types.
11575 (Set_Literal_String_Subtype): If the lower bound is not static, wrap
11576 the literal in an unchecked conversion, because GCC 4.x needs a static
11577 value for a string bound.
11579 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11580 Hristian Kirtchev <kirtchev@adacore.com>
11582 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
11583 components of the corresponding record, take into account component
11584 definitions that are access definitions.
11585 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
11586 procedure is not considered a dispatching call and will be expanded
11589 2006-02-13 Javier Miranda <miranda@adacore.com>
11591 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
11592 controlling argument of the dispatching call is an abstract interface
11593 class-wide type then we use it directly.
11594 Check No_Dispatching_Calls restriction.
11595 (Default_Prim_Op_Position): Remove the code that looks for the last
11596 entity in the list of aliased subprograms. This code was wrong in
11598 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
11599 when the source is compiled with the No_Dispatching_Calls restriction.
11600 (Init_Predefined_Interface_Primitives): No need to inherit primitives
11601 if we are compiling with restriction No_Dispatching_Calls.
11602 (Make_Disp_XXX): Addition of assertion to avoid the use of all these
11603 subprograms if we are compiling under No_Dispatching_Calls restriction.
11604 (Make_DT): Generate a dispatch table with a single dummy entry if
11605 we are compiling with the No_Dispatching_Calls restriction. In
11606 addition, in this case we don't generate code that calls to the
11607 following run-time subprograms: Set_Type_Kind, Inherit_DT.
11608 (Make_Select_Specific_Data_Table): Add assertion to avoid the use
11609 of this subprogram if compiling with the No_Dispatching_Calls
11611 (Expand_Type_Conversion): Instead of using the actual parameter,
11612 the argument passed as parameter to the conversion function was
11613 erroneously referenced by the expander.
11614 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
11615 Set_Predefined_Primitive_Op_Address and Set_Signature.
11616 (Expand_Dispatching_Call): Generate call to
11617 Get_Predefined_Prim_Op_Address for predefined primitives.
11618 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
11619 predefined primitives.
11620 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
11621 primitives we reserve one dummy entry to ensure that the tag does not
11622 point to some memory that is associated with some other object. In
11623 addition, remove all the old code that generated the assignments
11624 associated with the signature of the dispatch table and replace them
11625 by a call to the new subprogram Set_Signature.
11626 (Set_All_DT_Position): Change the algorithm because now we have a
11627 separate dispatch table associated with predefined primitive operations.
11628 (Expand_Interface_Conversion): In case of non-static offset_to_top
11629 add explicit dereference to get access to the object after the call
11630 to displace the pointer to the object.
11631 (Expand_Interface_Thunk): Modify the generation of the actual used
11632 in the calls to the run-time function Offset_To_Top to fulfil its
11634 (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
11636 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11638 * exp_dist.adb (Copy_Specification): For access parameters, copy
11639 Null_Exclusion flag, which will have been set for stream subprograms
11642 2006-02-13 Pascal Obry <obry@adacore.com>
11644 * expect.c (__gnat_expect_portable_execvp): New implementation. The
11645 previous implementation was using the C runtime spawnve routine but
11646 the corresponding wait was using directly the Win32 API. This was
11647 causing some times a lock when waiting for an event using
11648 WaitForSingleObject in __gnat_waitpid. This new implementation uses
11649 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
11650 API fixes this problem.
11652 2006-02-13 Robert Dewar <dewar@adacore.com>
11654 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
11657 2006-02-13 Thomas Quinot <quinot@adacore.com>
11659 * exp_pakd.ads: Fix typos in comments.
11661 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
11662 array reference that is an explicit dereference, mark the converted
11663 (packed) array reference as analyzed to prevent a forthcoming
11664 reanalysis from resetting its type to the original (non-packed) array
11667 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11668 Javier Miranda <miranda@adacore.com>
11669 Eric Botcazou <ebotcazou@adacore.com>
11671 * exp_util.ads, exp_util.adb (Find_Prim_Op,
11672 Is_Predefined_Primitive_Operation): When
11673 searching for the predefined equality operator, verify that operands
11674 have the same type.
11675 (Is_Predefined_Dispatching_Operation): Remove the code that looks
11676 for the last entity in the list of aliased subprograms. This code
11677 was wrong in case of renamings.
11678 (Set_Renamed_Subprogram): New procedure
11679 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
11680 Exp_Type constant computed when entering this subprogram.
11681 (Known_Null): New function
11682 (OK_To_Do_Constant_Replacement): New function
11683 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
11684 (Side_Effect_Free): An attribute reference 'Input is not free of
11685 side effect, unlike other attributes that are functions. (from code
11687 (Remove_Side_Effects): Expressions that involve packed arrays or records
11688 are copied at the point of reference, and therefore must be marked as
11689 renamings of objects.
11690 (Is_Predefined_Dispatching_Operation): Return false if the operation is
11691 not a dispatching operation.
11694 (Remove_Side_Effects): Lift enclosing type conversion nodes for
11695 elementary types in all cases.
11697 2006-02-13 Javier Miranda <miranda@adacore.com>
11699 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
11700 task types when accessing to the corresponding record type.
11701 Remove '!' in warning message.
11703 2006-02-13 Olivier Hainque <hainque@adacore.com>
11705 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
11706 to avoid useless and space inefficient overalignments on targets where
11707 Max_Alignment is larger than 16.
11709 2006-02-13 Pascal Obry <obry@adacore.com>
11711 * g-catiio.adb (Sec_Number): New type used to compute the number of
11712 seconds since 1-1-1970.
11713 (Image) [Natural]: The parameter was an Integer, as we can't deal with
11714 negative numbers (years, months...) it is better to have a Natural here.
11716 (Image) [Number]: Change parameter from Long_Integer to Number.
11717 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
11718 overflow for dates past year 2038.
11720 2006-02-13 Matthew Heaney <heaney@adacore.com>
11722 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
11725 2006-02-13 Arnaud Charlet <charlet@adacore.com>
11727 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
11729 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
11730 finalization can occur normally.
11732 2006-02-13 Vincent Celier <celier@adacore.com>
11734 * gnatcmd.adb (Rules_Switches): New table
11735 (Add_To_Rules_Switches): New procedure
11736 (GNATCmd): For command CHECK, put all options following "-rules" in the
11737 Rules_Switches table. Append these -rules switches after the -cargs
11740 2006-02-13 Robert Dewar <dewar@adacore.com>
11742 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
11743 These two cases were generating incorrect output, and if this unit
11744 was built with checks on, generated a discriminant mismatch constraint
11747 2006-02-13 Ed Schonberg <schonberg@adacore.com>
11748 Robert Dewar <dewar@adacore.com>
11750 * lib-xref.adb (Get_Type_Reference): For a private type whose full
11751 view is an array type, indicate the component type as well, for
11752 navigation purposes.
11753 (Generate_Reference): Don't consider array ref on LHS to be a case
11754 of violating pragma Unreferenced.
11755 Do not give Ada 2005 warning except on real reference.
11757 2006-02-13 Vincent Celier <celier@adacore.com>
11759 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
11760 main source, add switch -mdebug-main=_ada_ so that the executable can
11761 be debugged by the standard VMS debugger.
11762 (Gnatmake): Set No_Main_Subprogram to True when there is no main
11763 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
11764 Exit the Multi_Main_Loop when Unique_Compile is True after compilation
11765 of the last source, as the binding and linking phases are never
11767 Set all executable obsolete when rebuilding a library.
11769 * makeutl.adb (Linker_Options_Switches): Do not process empty linker
11772 2006-02-13 Javier Miranda <miranda@adacore.com>
11775 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
11776 code to improve the error message reported when the program has
11777 declarations of abstract interface types and it is not compiled with
11778 the -gnat05 switch.
11779 (P_Access_Definition): Reorganize the code to improve the error
11780 message reported when the new Ada 2005 syntax for anonymous
11781 access types is used and the program is not compiled with the
11784 2006-02-13 Robert Dewar <dewar@adacore.com>
11786 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
11787 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
11790 2006-02-13 Javier Miranda <miranda@adacore.com>
11792 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
11793 against source containing syntax errors.
11795 2006-02-13 Vincent Celier <celier@adacore.com>
11797 * prj.adb (Reset): Initialize the first element of table Namings with
11798 the standard naming data.
11800 2006-02-13 Vincent Celier <celier@adacore.com>
11802 * prj.ads (Error_Warning): New enumeration type
11804 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
11805 unknown, use the location of the project to report the error.
11806 (When_No_Sources): New global variable
11807 (Report_No_Ada_Sources): New procedure
11808 (Check): New parameter When_No_Sources. Set value of global variable
11810 (Find_Sources): Call Report_No_Ada_Sources when appropriate
11811 (Get_Sources_From_File): Ditto
11812 (Warn_If_Not_Sources): Better warning messages indicating the unit name
11815 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
11816 Call Prj.Proc.Process with parameter When_No_Sources.
11818 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
11819 Call Recursive_Check with parameter When_No_Sources.
11820 (Recursive_Check): New parameter When_No_Sources. Call itself and
11821 Prj.Nmsc.Check with parameter When_No_Sources.
11822 (Process): New parameter When_No_Sources. Call Check with parameter
11824 (Copy_Package_Declarations): New procedure to copy renamed parameters
11825 and setting the location of the declared attributes to the location
11826 of the renamed package.
11827 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
11830 2006-02-13 Vincent Celier <celier@adacore.com>
11832 * prj-makr.adb (Make): Preserve the comments from the original project
11834 When removing nodes (attributes Source_Dirs, Source_Files,
11835 Source_List_File and package Naming), save the comments and attach the
11836 saved comments to the newly created nodes.
11837 Do not add a with clause for the naming package if one already exists.
11839 2006-02-13 Javier Miranda <miranda@adacore.com>
11840 Gary Dismukes <dismukes@adacore.com>
11841 Robert Dewar <dewar@adacore.com>
11843 * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
11845 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
11846 aliased entities to look for the overriden abstract interface
11848 (Is_Interface_Subprogram): Complete documentation.
11849 (Check_Dispatching_Operation): Do not generate code to register the
11850 operation in the dispatch table if the source is compiled with
11851 restriction No_Dispatching_Calls.
11852 (Override_Dispatching_Operation): Check for illegal attempt to override
11853 No_Return procedure with procedure that is not No_Return
11854 (Check_Dispatching_Call): Suppress the check for an abstract operation
11855 when the original node of an actual is a tag-indeterminate attribute
11856 call, since the attribute, which must be 'Input, can never be abstract.
11857 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
11858 call to the Input attribute (even when rewritten).
11859 (Propagate_Tag): Augment comment to indicate the possibility of a call
11860 to an Input attribute.
11862 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
11863 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
11865 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
11866 No_Wide_Characters is no longer partition-wide
11867 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
11870 2006-02-13 Douglas Rupp <rupp@adacore.com>
11872 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
11874 2006-02-13 Javier Miranda <miranda@adacore.com>
11876 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
11877 handles default-initialized components to keep separate the management
11878 of this feature but also avoid the unrequired resolution and
11879 expansion of components that do not have partially initialized
11881 (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
11882 (Check_Bounds): Likewise.
11883 (Check_Length): Likewise.
11885 2006-02-13 Javier Miranda <miranda@adacore.com>
11886 Ed Schonberg <schonberg@adacore.com>
11888 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
11889 abstract interface type call analyze_and_resolve to expand the type
11890 conversion into the corresponding displacement of the
11891 reference to the base of the object.
11892 (Eval_Attribute, case Width): For systems where IEEE extended precision
11893 is supported, the maximum exponent occupies 4 decimal digits.
11894 (Accessibility_Message): Add '\' in 2-line warning message.
11895 (Resolve_Attribute): Likewise.
11896 (case Attribute_Access): Significantly revise checks
11897 for illegal access-to-subprogram Access attributes to properly enforce
11898 the rules of 3.10.2(32/2).
11899 Diagnose use of current instance with an illegal attribute.
11901 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
11903 (Enclosing_Generic_Unit): New function to return a node's innermost
11904 enclosing generic declaration node.
11905 (Compile_Time_Constraint_Error): Remove '!' in warning messages.
11906 (Type_Access_Level): The accessibility level of anonymous acccess types
11907 associated with discriminants is that of the current instance of the
11908 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
11909 (Compile_Time_Constraint_Error): Handle case of conditional expression.
11910 (Kill_Current_Values_For_Entity): New function
11911 (Enter_Name): Change formal type to Entity_Id
11913 2006-02-13 Hristian Kirtchev <kirtchev@adacore.com>
11914 Ed Schonberg <schonberg@adacore.com>
11915 Gary Dismukes <dismukes@adacore.com>
11917 * sem_ch10.adb (Check_Redundant_Withs): New procedure in
11918 Analyze_Compilation_Unit.
11919 Detect and warn on redundant with clauses detected in a package spec
11920 and/or body when -gnatwr is used.
11921 (Analyze_Context): Analyze config pragmas before other items
11922 (Install_Context_Items): Don't analyze config pragmas here
11923 (Install_Limited_Withed_Unit): Set limited entity of package in
11924 with_clause so that cross-reference information or warning messages on
11925 unused packages can be properly generated
11926 (Is_Visible_Through_Renamings): Return false if the limited_with_clause
11927 has Error_Posted set. Prevent infinite loops in illegal programs.
11928 (Check_Private_Child_Unit): Move test for a nonprivate with clause down
11929 to the point of the error test requiring the current unit to be private.
11930 This ensures that private with clauses are not exempted from the basic
11931 checking for being a descendant of the same library unit parent as a
11932 withed private descendant unit.
11933 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
11934 handle private with clauses properly, as well as to account for cases
11935 where the withed unit is a public descendant of a private ancestor
11936 (in which case the current unit must be a descendant of the private
11937 ancestor's parent). The spec comments were updated accordingly. Also,
11938 the old error message in this subprogram was replaced with error
11939 messages that mirror the errors tested and reported by
11940 Check_Private_Child_Unit.
11941 Parameter and variable names improved for readability.
11942 (Install_Limited_Context_Clauses): Remove test for a withed unit being
11943 private as the precondition for calling
11944 Check_Private_Limited_Withed_Unit since that subprogram has been
11945 revised to test public units as well as private units.
11947 2006-02-13 Thomas Quinot <quinot@adacore.com>
11948 Robert Dewar <dewar@adacore.com>
11949 Ed Schonberg <schonberg@adacore.com>
11950 Javier Miranda <miranda@adacore.com>
11952 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
11953 that Scope_Stack.First = 1.
11954 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11955 were not always properly handled previously.
11956 (Formal_Entity): Complete rewrite, to handle properly some complex case
11957 with multiple levels of parametrization by formal packages.
11958 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
11959 to the corresponding derived type declaration for proper semantics.
11961 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
11962 (Check_Component): Enforce restriction on components of
11963 unchecked_unions: a component in a variant cannot contain tasks or
11965 (Unchecked_Union): Allow nested variants and multiple discriminants, to
11967 Add pragma Ada_2005 (synonym for Ada_05)
11968 Properly handle Ada_Version_Explicit and Ada_Version_Config, which
11969 were not always properly handled previously.
11970 Document that pragma Propagate_Exceptions has no effect
11971 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
11972 (Set_Convention_From_Pragma): Check that if a convention is
11973 specified for a dispatching operation, then it must be
11974 consistent with the existing convention for the operation.
11975 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
11976 longer required to specify an vtable-ptr component in the record. For
11977 compatibility reasons we leave the support for the previous definition.
11978 (Analyze_Pragma, case No_Return): Allow multiple arguments
11980 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
11981 non-overrideen inherited operation with a controlling result as
11982 illegal only its implicit declaration comes from the derived type
11983 declaration of its result's type.
11984 (Check_Possible_Deferred_Completion): Relocate the object definition
11985 node of the subtype indication of a deferred constant completion rather
11986 than directly analyzing it. The analysis of the generated subtype will
11987 correctly decorate the GNAT tree.
11988 (Record_Type_Declaration): Check whether this is a declaration for a
11989 limited derived record before analyzing components.
11990 (Analyze_Component_Declaration): Diagnose record types not explicitly
11991 declared limited when a component has a limited type.
11992 (Build_Derived_Record_Type): Code reorganization to check if some of
11993 the inherited subprograms of a tagged type cover interface primitives.
11994 This check was missing in case of a full-type associated with a private
11996 (Constant_Redeclaration): Check that the subtypes of the partial and the
11997 full view of a constrained deferred constant statically match.
11998 (Mentions_T): A reference to the current type in an anonymous access
11999 component declaration must be an entity name.
12000 (Make_Incomplete_Type_Declaration): If type is tagged, set type of
12001 class_wide type to refer to full type, not to the incomplete one.
12002 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
12003 available. Required to give support to the certified run-time.
12004 (Analyze_Component_Declaration): In case of anonymous access components
12005 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
12006 (Process_Discriminants): For an access discriminant, use the
12007 discriminant specification as the associated_node_for_itype, to
12008 simplify accessibility checks.
12010 2006-02-13 Ed Schonberg <schonberg@adacore.com>
12011 Javier Miranda <miranda@adacore.com>
12013 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
12014 abstract interpretations on an operator, remove interpretations that
12015 yield Address or a type derived from it, if one of the operands is an
12017 (Try_Object_Operation.Try_Primitive_Operation,
12018 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
12019 location when creating the new reference to a primitive or class-wide
12020 operation as a part of rewriting a subprogram call.
12021 (Try_Primitive_Operations): If context requires a function, collect all
12022 interpretations after the first match, because there may be primitive
12023 operations of the same type with the same profile and different return
12024 types. From code reading.
12025 (Try_Primitive_Operation): Use the node kind to choose the proper
12026 operation when a function and a procedure have the same parameter
12028 (Complete_Object_Operation): If formal is an access parameter and prefix
12029 is an object, rewrite as an Access reference, to match signature of
12030 primitive operation.
12031 (Find_Equality_Type, Find_One_Interp): Handle properly equality given
12032 by an expanded name with prefix Standard, when the operands are of an
12033 anonymous access type.
12034 (Remove_Abstract_Operations): If the operation is abstract because it is
12035 inherited by a user-defined type derived from Address, remove it as
12036 well from the set of candidate interpretations of an overloaded node.
12037 (Analyze_Membership_Op): Membership test not applicable to cpp-class
12040 2006-02-13 Bob Duff <duff@adacore.com>
12042 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
12043 redundant use clauses.
12044 In particular, if the scope of two use clauses overlaps, but one is not
12045 entirely included in the other, we should not warn. This can happen
12046 with nested packages.
12047 (Analyze_Subprogram_Renaming): Protect the compiler against previously
12048 reported errors. The bug was reported when the compiler was built
12049 with assertions enabled.
12050 (Find_Type): If the node is a 'Class reference and the prefix is a
12051 synchronized type without a corresponding record, return the type
12054 2006-02-13 Javier Miranda <miranda@adacore.com>
12056 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
12057 if this is the full-declaration associated with a private declaration
12058 that implement interfaces, then the private type declaration must be
12060 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
12061 as aliased. The use of the 'access attribute is not available for such
12062 object (for this purpose the object should be explicitly marked as
12063 aliased, but being an anonymous type this is not possible).
12065 2006-02-13 Ed Schonberg <schonberg@adacore.com>
12066 Robert Dewar <dewar@adacore.com>
12068 * sem_elab.adb (Same_Elaboration_Scope): A package that is a
12069 compilation unit is an elaboration scope.
12070 (Add_Task_Proc): Add '\' in 2-line warning message.
12071 (Activate_All_Desirable): Deal with case of unit with'ed by parent
12073 2006-02-13 Ed Schonberg <schonberg@adacore.com>
12074 Javier Miranda <miranda@adacore.com>
12076 * sem_type.adb (Write_Overloads): Improve display of candidate
12078 (Add_One_Interp): Do not add to the list of interpretations aliased
12079 entities corresponding with an abstract interface type that is an
12080 immediate ancestor of a tagged type; otherwise we have a dummy
12081 conflict between this entity and the aliased entity.
12082 (Disambiguate): The predefined equality on universal_access is not
12083 usable if there is a user-defined equality with the proper signature,
12084 declared in the same declarative part as the designated type.
12085 (Find_Unique_Type): The universal_access equality operator defined under
12086 AI-230 does not cover pool specific access types.
12087 (Covers): If one of the types is a generic actual subtype, check whether
12088 it matches the partial view of the other type.
12090 2006-02-13 Thomas Quinot <quinot@adacore.com>
12092 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
12093 line. This is necessary to allow In_Extended_Main_Unit to provide
12094 correct results for itypes while writing out expanded source.
12095 (Close_File): No need to update the source_index_table here since it's
12096 now done for each line.
12098 2006-02-13 Ed Schonberg <schonberg@adacore.com>
12099 Robert Dewar <dewar@adacore.com>
12101 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
12102 preserve the source unit where the itype is declared, and prevent a
12104 (Note_Implicit_Run_Time_Call): New procedure
12105 (Write_Itype): Handle missing cases (E_Class_Wide_Type and
12108 * sprint.ads: Document use of $ for implicit run time routine call
12110 2006-02-13 Quentin Ochem <ochem@adacore.com>
12112 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
12115 2006-02-13 Bob Duff <duff@adacore.com>
12117 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
12118 Scan_Unsigned, so we do not scan leading blanks and sign twice.
12119 Integer'Value("- 5") and Integer'Value("-+5") now correctly
12120 raise Constraint_Error.
12122 * s-vallli.adb (Scan_Long_Long_Integer): Call
12123 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
12124 do not scan leading blanks and sign twice.
12125 Integer'Value("- 5") and Integer'Value("-+5") now correctly
12126 raise Constraint_Error.
12128 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
12129 Scan_Long_Long_Unsigned): Split out most of the processing from
12130 Scan_Long_Long_Unsigned out into
12131 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
12132 This prevents scanning leading blanks and sign twice.
12133 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
12136 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
12137 out most of the processing from Scan_Unsigned out into
12138 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
12139 This prevents scanning leading blanks and sign twice.
12141 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
12142 use with Modular'Value attribute.
12143 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
12146 2006-02-13 Robert Dewar <dewar@adacore.com>
12148 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
12150 2006-02-13 Eric Botcazou <ebotcazou@adacore.com>
12152 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
12153 (PPC VxWorks): Likewise.
12154 (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
12155 (forced_callee): Make non-inlinable and non-pure.
12156 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
12158 2006-02-13 Arnaud Charlet <charlet@adacore.com>
12159 Ben Brosgol <brosgol@adacore.com>
12160 Robert Dewar <dewar@adacore.com>
12162 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
12164 Document that gnatbind -M option is for cross environments only.
12165 Added description of using gnatmem to trace gnat rtl allocs and deallocs
12166 Add note on use of $ to label implicit run time calls
12167 Add documentation for -gnatyI (check mode IN)
12168 Updated chapter on compatibility with HP Ada
12169 VMS-oriented edits.
12170 Ran spell and corrected errors
12171 Add documentation for gnatbind -d and rework documentation of -D
12173 Add subprogram/data elimination section.
12174 Minor editing of annex A.
12175 Add section for gnatcheck.
12176 Add documentation for restriction No_Dispatching_Calls
12177 Add documentation for pragma Ada_2005
12178 Remove mention of obsolete pragma Propagate_Exceptions
12179 Document that pragma Unreferenced can appear after DO in ACCEPT
12180 Clarify Pure_Function for library level units
12181 Mention Max/Min in connection with No_Implicit_Conditionals
12182 No_Wide_Characters restriction is no longer partition-wide
12183 Add a nice example for Universal_Literal_String attribute
12184 Document that pragma No_Return can take multiple arguments
12186 * ug_words: Added entry for gnatcheck
12188 * g-ctrl_c.ads (Install_Handler): Enhance comments
12190 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
12192 * g-trasym.ads: Add documentation on how to do off line symbolic
12193 traceback computation.
12195 * s-fatgen.adb: Add comments for Unaligned_Valid
12197 * stand.ads: Fix typo in comment
12199 2006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
12201 * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
12203 2006-02-06 Roger Sayle <roger@eyesopen.com>
12205 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
12207 2006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12210 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
12211 implementation that calls __main.
12213 2006-01-25 Peter O'Gorman <peter@pogma.com>
12216 * Makefile.in (GCC_LINK): Remove quotes.
12217 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
12220 (powerpc-darwin): Pass -shared-libgcc when building shared library.
12222 2006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12225 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
12227 2005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
12229 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
12231 2005-12-12 Arnaud Charlet <charlet@adacore.com>
12233 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
12236 2005-12-12 Arnaud Charlet <charlet@adacore.com>
12238 * Make-lang.in: Update dependencies
12240 2005-12-12 Arnaud Charlet <charlet@adacore.com>
12242 * Make-lang.in: Add rule for ada/exp_sel.o
12244 2005-12-12 Arnaud Charlet <charlet@adacore.com>
12246 * Makefile.in (mingw section): Remove EH_MECHANISM setting.
12248 2005-12-09 Arnaud Charlet <charlet@adacore.com>
12250 * gnatvsn.ads (Library_Version): Bump to version 4.2
12251 (ASIS_Version_Number): Bumped.
12253 2005-12-09 Doug Rupp <rupp@adacore.com>
12255 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
12256 Ada bind file prefix on VMS from b$ to b__.
12257 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
12260 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
12261 Targparm.OpenVMS_On_Target.
12262 (Object_Suffix): Initialize with target object suffix.
12263 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
12265 * butil.adb: Change some Hostparm.OpenVMS checks to
12266 Targparm.OpenVMS_On_Target.
12268 * clean.adb: Change some Hostparm.OpenVMS checks to
12269 Targparm.OpenVMS_On_Target.
12270 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
12271 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
12272 Ada bind file prefix on VMS from b$ to b__.
12274 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
12275 --GCC so that Get_Target_Parameters can find system.ads.
12276 (Gnatlink): Call Get_Target_Parameters in mainline.
12277 Initialize standard packages for Targparm.
12278 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12279 (Process_Args): Also Check for object files with target object
12281 (Make_Binder_File_Names): Create with target object extension.
12282 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
12285 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
12286 Targparm.OpenVMS_On_Target.
12287 ({declaration},Build_Library,Check_Library): Change Ada bind file
12288 prefix on VMS from b$ to b__.
12290 * osint-b.adb: Change some Hostparm.OpenVMS checks to
12291 Targparm.OpenVMS_On_Target.
12292 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
12295 * targext.c: New file.
12297 * Makefile.in: add support for vxworks653 builds
12298 (../../vxaddr2line): gnatlink with targext.o.
12299 (TOOLS_LIBS): Move targext.o to precede libgnat.
12300 (init.o, initialize.o): Minor clean up in dependencies.
12301 (GNATLINK_OBJS): Add targparm.o, snames.o
12302 Add rules fo building targext.o and linking it explicitly with all
12304 Also add targext.o to gnatlib.
12306 * Make-lang.in: Add rules for building targext.o and linking it in
12307 with gnat1 and gnatbind.
12308 Add entry for exp_sel.o.
12310 * osint.adb Change some Hostparm.OpenVMS checks to
12311 Targparm.OpenVMS_On_Target.
12312 (Object_File_Name): Use target object suffix.
12314 * osint.ads (Object_Suffix): Remove, no longer used.
12315 (Target_Object_Suffix): Initialize with target object suffix.
12317 * rident.ads: Add special exception to license.
12319 * targparm.adb (Get_Target_Parameters): Set the value of
12320 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
12322 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
12324 * targparm.ads: Add special exception to license.
12326 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
12328 (Copy_File): Make sure from file is closed if error on to file
12329 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
12331 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
12332 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
12334 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
12335 target object suffix.
12337 2005-12-09 Jose Ruiz <ruiz@adacore.com>
12338 Quentin Ochem <ochem@adacore.com>
12339 Florian Villoing <villoing@adacore.com>
12341 * a-taster.ads, a-taster.adb: New files.
12343 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
12344 link to the version that does nothing. This way the task termination
12345 routine is not executed twice for the environment task when finishing
12346 because of an unhandled exception.
12348 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
12349 handler because of an unhandled exception.
12351 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
12352 System.Tasking.Utilities instead of that in System.Tasking.Stages.
12354 * s-finimp.adb (initialization code): Modify the soft link for the
12355 finalization of the global list instead of Adafinal.
12357 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
12358 non-tasking version of the soft link for task termination. We do
12359 nothing since if we are using the non-tasking version it
12360 means that the task termination functionality is not used.
12361 (Null_Finalize_Global_List): Add this null version for the procedure
12362 in charge of finalizing the global list for controlled objects.
12363 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
12364 instead for handling run-time termination in a more flexible way.
12365 (Adafinal_NT): This new procedure will take care of finalizing the
12366 global list for controlled objects if needed, but no tasking
12369 * s-tarest.adb (Task_Lock): Do not try to lock again the
12370 Global_Task_Lock if we already own it. Otherwise, we get blocked in
12371 some run-time operations.
12372 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
12373 until all nested locks have been released.
12374 (Task_Wrapper): Call the fall-back task termination handler. It
12375 applies to all tasks but the environment task.
12376 (Finalize_Global_Tasks): Add the call for the task termination
12377 procedure for the environment task.
12378 (Task_Wrapper): suppress warnings around declaration of
12379 Secondary_Stack_Address.
12381 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
12382 moved to the Common_ATCB record.
12383 (Task_Lock): Global_Task_Lock_Nesting has been moved to the
12384 Common_ATCB record.
12385 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
12386 Common_ATCB record.
12388 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
12389 Fall_Back_Handler, and Specific_Handler.
12391 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
12392 defined in Ada.Task_Termination, to avoid circular dependencies.
12393 (Termination_Handler): Redefine this type here, alredy defined in
12394 Ada.Task_Termination, for avoiding circular dependencies.
12395 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
12396 for storing task termination handlers. In addition,
12397 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
12398 Common_ATCB because it is used by both the regular and the restricted
12400 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
12401 Common_ATCB because it is used by both the regular and the restricted
12403 (Common_ATCB): Added a dynamic task analyzer field.
12405 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
12406 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
12407 (Task_Wrapper): Call the task termination handler. It applies to all
12408 tasks but the environment task.
12409 (Finalize_Global_Tasks): Call the task termination procedure for the
12410 environment task. The call to Finalize_Global_List is now performed
12411 using the soft links mechanism.
12412 (Task_Wrapper): added dynamic stack analysis.
12414 * s-tasuti.adb (Abort_Tasks): The code in charge of checking
12415 potentially blocking operations has been moved from
12416 System.Tasking.Stages.Abort_Tasks to this procedure. There can be
12417 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
12418 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
12419 this run-time check.
12421 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
12422 of task termination procedure.
12423 (Init_Tasking_Soft_Links): Install the task-safe version of the soft
12424 link for the task termination procedure.
12426 * bindusg.adb: (Bindusg): Added documentation for -u option.
12428 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
12429 (Get_Main_C): Add handling of dynamic stack analysis.
12430 (Gen_Output_File_C): Add external functions for dynamic stack analysis.
12432 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
12433 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
12434 (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
12436 * opt.ads: Added flags used by dynamic stack measurement.
12437 (Max_Line_Length): Remove (not used anymore)
12439 * s-io.ads, s-io.adb (Standard_Error): new subprogram
12440 (Standart_Output): new subprogram
12441 (Set_Output): new subprogram
12442 (Put): now uses the value of Current_Out to know if the output has to be
12443 send to stderr or stdout.
12445 * s-stausa.ads: Complete implementation.
12447 * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
12449 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
12450 list of Ada 05 files.
12451 (GNAT Library Units): Add AltiVec files.
12453 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
12454 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
12455 g-alvety.ads, g-alvevi.ads: New files providing altivec API.
12457 2005-12-09 Nicolas Setton <setton@adacore.com>
12459 * adaint.c (__gnat_locate_regular_file): Return immediately if
12460 file_name is empty.
12462 2005-12-09 Javier Miranda <miranda@adacore.com>
12463 Hristian Kirtchev <kirtchev@adacore.com>
12465 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
12466 to the specification because the frontend generates code that uses this
12468 (Set_Interface_Table): Add missing assertion.
12469 Update documentation describing the run-time structure.
12470 (Displace): New subprogram that displaces the pointer to the object
12471 to reference one of its secondary dispatch tables.
12472 (IW_Membership): Modified to use the new table of interfaces.
12473 (Inherit_TSD): Modified to use the new table of interfaces.
12474 (Register_Interface_Tag): Use the additional formal to fill the
12475 contents of the new table of interfaces.
12476 (Set_Interface_Table): New subprogram that stores in the TSD the
12477 pointer to the table of interfaces.
12478 (Set_Offset_To_Top): Use the additional formal to save copy of
12479 the offset value in the table of interfaces.
12480 Update structure of GNAT Primary and Secondary dispatch table diagram.
12481 Add comment section on GNAT dispatch table prologue.
12482 (Offset_To_Signature): Update the constant value of the Signature field.
12483 (Dispatch_Table): Update comment on hidden fields in the prologue.
12484 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
12485 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
12486 the type of formal parameter T to Tag, introduce additional assertions.
12487 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
12489 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
12491 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
12492 in all the calls to Expand_Interface_Thunk. Instead of referencing the
12493 record component containing the tag of the secondary dispatch table we
12494 have to use the Offset_To_Top run-time function to get this information;
12495 otherwise if the pointer to the base of the object has been displace
12496 we get a wrong value if we use the 'position attribute.
12498 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
12499 all the calls to Expand_Interface_Thunk.
12500 (Make_Secondary_DT): Secondary dispatch tables do not have a table of
12501 interfaces; hence the call to Set_Interface_Table was clearly wrong.
12502 (Collect_All_Interfaces): Modify the internal subprogram Collect to
12503 ensure that the interfaces implemented by the ancestors are placed
12504 at the header of the generated list.
12505 (Expand_Interface_Conversion): Handle the case in which the displacement
12506 associated with the interface conversion is not statically known. In
12507 this case we generate a call to the new run-time subprogram Displace.
12508 (Make_DT): Generate and fill the new table of interfaces.
12509 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
12510 Get_Tagged_Kind and Set_Tagged_Kind.
12511 (Tagged_Kind): New function that determines the tagged kind of a type
12512 with respect to limitedness and concurrency and returns a reference to
12514 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
12515 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
12516 primary dispatch table for a type.
12517 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
12518 secondary dispatch table respectively of a tagged type.
12520 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
12521 (Expand_Interface_Conversion): New subprogram to indicate if the
12522 displacement of the type conversion is statically known.
12523 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
12525 * rtsfind.ads (RE_Offset_To_Top): New entity
12526 (RTU_Id): Add Ada_Task_Termination to the list so that it is made
12527 accessible to users.
12528 (Re_Displace): New entity
12529 (RE_Interface_Data): New entity
12530 (RE_Set_Interface_Data): New_Entity
12531 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
12532 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
12533 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
12534 RE_TK_Tagged, RE_TK_Task.
12536 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
12537 Init_Secondary_Tags_Internal to allow its use with interface types and
12538 also to generate the code for the new additional actual required
12539 by Set_Offset_To_Top.
12540 (Build_Init_Statements): In case of components associated with abstract
12541 interface types there is no need to generate a call to its IP.
12542 (Freeze_Record_Type): Generate Select Specific Data tables only for
12544 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
12545 the bodies and specifications of the predefined primitive operations
12546 dealing with dispatching selects and abort, 'Callable, 'Terminated only
12547 for concurrent types.
12549 * exp_sel.ads, exp_sel.adb: New files.
12551 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
12552 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
12553 properly protected objects and attach handler in the case of the
12554 restricted profile.
12555 Move embeded package Select_Expansion_Utilities into a separate external
12557 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
12558 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
12559 (Build_K, Build_S_Assignment): New subprograms, part of the select
12560 expansion utilities.
12561 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
12562 Expand_N_Timed_Entry_Call): Optimize expansion of select statements
12563 where the trigger is a dispatching procedure of a limited tagged type.
12565 2005-12-09 Olivier Hainque <hainque@adacore.com>
12567 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
12568 pointer initialization values. Make a SAVE_EXPR instead. Add comments
12569 about the use and expansion of SAVE_EXPRs in the various possible
12570 renaming handling cases.
12571 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
12572 abusing DECL_FCONTEXT.
12574 2005-12-09 Matthew Heaney <heaney@adacore.com>
12576 * a-convec.adb (Merge): Added assertions to check whether vector params
12579 * a-coinve.adb (Merge): Added assertions to check whether vector params
12582 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
12584 (Cursor'Read): raises PE
12586 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
12587 to its default value.
12589 * a-cihama.adb: Manually check whether cursor's key and elem are
12592 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
12593 (Merge): Assert that target and source lists are in order
12594 (Swap): Declare non-const temporaries, to pass to Splice
12596 * a-cdlili.ads: (Splice): Changed param name and param mode
12598 * a-cdlili.adb: (Splice): Changed param name and param mode
12599 (Merge): Assert that target and source lists are in order
12600 (Swap): Declare non-const temporaries, to pass to Splice
12602 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
12603 (Write): declare Stream param as not null
12605 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
12606 an exception message.
12608 2005-12-09 Thomas Quinot <quinot@adacore.com>
12609 Robert Dewar <dewar@adacore.com>
12611 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
12612 which is the absolute maximum length we can support.
12614 * frontend.adb: For the processing of configuration pragma files,
12615 remove references to Opt.Max_Line_Length, which is not checked anymore.
12617 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
12620 * scn.adb, scng.adb:
12621 Always check line length against the absolute supported maximum,
12622 Hostparm.Max_Line_Length.
12624 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
12625 value for the maximum line length is Max_Line_Length (not
12626 Column_Number'Last).
12627 Minor error msg update
12628 (Set_Style_Check_Options): New interface returning error msg
12629 Minor code reorganization (processing for 'M' was out of alpha order)
12631 * switch-c.adb: New interface for Set_Style_Check_Options
12633 * stylesw.ads (Set_Style_Check_Options): New interface returning error
12636 2005-12-09 Javier Miranda <miranda@adacore.com>
12638 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
12639 with IP subprogram were only supported if there were limited types.
12641 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
12642 records with IP subprogram were only supported if there were limited
12645 2005-12-09 Olivier Hainque <hainque@adacore.com>
12646 Eric Botcazou <ebotcazou@adacore.com>
12648 * trans.c (tree_transform, emit_check): Adjust calls to
12649 build_call_raise, passing the now expected GNAT_NODE argument.
12651 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
12652 source line information than what the current global locus indicates
12655 * utils2.c (build_simple_component_ref): Return 0 if the offset of the
12656 field has overflowed.
12657 (build_call_raise): Add a GNAT_NODE argument to convey better source
12658 line information than what the current global locus indicates when
12660 (build_component_ref): Adjust call to build_call_raise.
12662 2005-12-09 Pascal Obry <obry@adacore.com>
12664 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
12665 the iterator is quitting iteration on parent directory.
12667 2005-12-09 Javier Miranda <miranda@adacore.com>
12669 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
12670 and the assignment to a class-wide object, before the assignment we
12671 generate a run-time check to ensure that the tag of the Target is
12672 covered by the tag of the source.
12674 2005-12-09 Robert Dewar <dewar@adacore.com>
12676 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
12677 parameter in call to Image_Wide_Character.
12679 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
12680 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
12681 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
12682 annoying FFFE/FFFF inconsistency.
12684 2005-12-09 Robert Dewar <dewar@adacore.com>
12685 Javier Miranda <miranda@adacore.com>
12686 Ed Schonberg <schonberg@adacore.com>
12688 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
12689 of type conversion.
12690 (Find_Interface): New subprogram that given a tagged type and one of its
12691 component associated with the secondary table of an abstract interface
12692 type, return the entity associated with such abstract interface type.
12693 (Make_Subtype_From_Expr): If type has unknown discriminants, always use
12694 base type to create anonymous subtype, because entity may be a locally
12695 declared subtype or generic actual.
12696 (Find_Interface): New subprogram that given a tagged type and one of its
12697 component associated with the secondary table of an abstract interface
12698 type, return the entity associated with such abstract interface type.
12700 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
12701 conversion cannot be handled at compile time. In this case we pass this
12702 information to the expander to generate the appropriate code.
12704 2005-12-09 Robert Dewar <dewar@adacore.com>
12705 Ed Schonberg <schonberg@adacore.com>
12706 Gary Dismukes <dismukes@adacore.com>
12707 Javier Miranda <miranda@adacore.com>
12708 Hristian Kirtchev <kirtchev@adacore.com>
12710 * einfo.adb (Itype_Printed): New flag
12711 (Is_Limited_Type): Derived types do not inherit limitedness from
12712 interface progenitors.
12713 (Is_Return_By_Reference_Type): Predicate does not apply to limited
12716 * einfo.ads (Itype_Printed): New flag
12717 Move Is_Wrapper_Package to proper section
12718 Add missing Inline for Is_Volatile
12720 * output.ads, output.adb (Write_Erase_Char): New procedure
12721 (Save/Restore_Output_Buffer): New procedures
12722 (Save/Restore_Output_Buffer): New procedures
12724 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
12725 Add missing support for anonymous access type
12726 (Write_Id): Insert calls to Write_Itype
12727 (Write_Itype): New procedure to output itypes
12729 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
12730 use of "limited" in declaration.
12732 * sinfo.ads, sinfo.adb:
12733 Formal derived types can carry an explicit "limited" indication.
12735 * sem_ch3.adb: Add with and use of Targparm.
12736 (Create_Component): If Frontend_Layout_On_Target is True and the
12737 copied component does not have a known static Esize, then reset
12738 the size and positional fields of the new component.
12739 (Analyze_Component_Declaration): A limited component is
12740 legal within a protected type that implements an interface.
12741 (Collect_Interfaces): Do not add to the list the interfaces that
12742 are implemented by the ancestors.
12743 (Derived_Type_Declaration): If the parent of the full-view is an
12744 interface perform a transformation of the tree to ensure that it has
12745 the same parent than the partial-view. This simplifies the job of the
12746 expander in order to generate the correct object layout, and it is
12747 needed because the list of interfaces of the full-view can be given in
12749 (Process_Full_View): The parent of the full-view does not need to be
12750 a descendant of the parent of the partial view if both parents are
12752 (Analyze_Private_Extension_Declaration): If declaration has an explicit
12753 "limited" the parent must be a limited type.
12754 (Build_Derived_Record_Type): A derived type that is explicitly limited
12755 must have limited ancestor and progenitors.
12756 (Build_Derived_Type): Ditto.
12757 (Process_Full_View): Verify that explicit uses of "limited" in partial
12758 and full declarations are consistent.
12759 (Find_Ancestor_Interface): Remove function.
12760 (Collect_Implemented_Interfaces): New procedure used to gather all
12761 implemented interfaces by a type.
12762 (Contain_Interface): New function used to check whether an interface is
12764 (Find_Hidden_Interface): New function used to determine whether two
12765 lists of interfaces constitute a set equality. If not, the first
12766 differing interface is returned.
12767 (Process_Full_View): Improve the check for the "no hidden interface"
12768 rule as defined by AI-396.
12770 2005-12-09 Robert Dewar <dewar@adacore.com>
12772 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
12773 types, not on record subtypes.
12774 (Freeze_Entity): Code cleanup. Add barrier to the loop
12775 that generates the references for primitive operations. This allows to
12776 remove an unnecessary exception handler.
12777 Code reformatting and comment clean ups.
12779 2005-12-09 Vincent Celier <celier@adacore.com>
12781 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
12782 If GNAT CHECK is called with a project file, but with no
12783 source on the command line, call gnatcheck with all the compilable
12784 sources of the project.
12785 Take into account the new command Check, for gnatcheck. Treat as for
12786 other ASIS tools: take into account project, specific package Check and
12788 For ASIS tools, add the switches in package Compiler for
12789 the invocation of the compiler.
12791 * prj-attr.adb: Add package Check and its attributes
12793 * vms_conv.ads (Command_Type): New command Check, for gnatcheck
12795 * vms_conv.adb (Initialize): Change Params of command Check to
12797 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
12798 Add data for new command Check
12800 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
12802 Add qualifiers for Check command options
12803 (Command_Type): New command Check
12805 2005-12-09 Thomas Quinot <quinot@adacore.com>
12807 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
12808 command line switch overruns the output buffer.
12810 2005-12-09 Robert Dewar <dewar@adacore.com>
12812 * sem_prag.adb: Processing for new pragma Complete_Representation
12813 (Analyze_Pragma, case Debug): Implement two argument form.
12815 * par-prag.adb: Entry for new pragma Complete_Representation
12816 (Prag, case Debug): Recognize two argument form of pragma Debug
12817 New interface for Set_Style_Check_Options.
12819 * sem_ch13.adb: Implement new pragma Complete_Representation.
12821 * snames.adb, snames.ads, snames.h: Entry for new pragma
12822 Complete_Representation.
12824 2005-12-09 Gary Dismukes <dismukes@adacore.com>
12826 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
12827 available user-specified stream attributes on limited parameters to
12828 also test the type directly rather than only its underlying type (for
12829 Ada 95) and, in the case of Ada 2005, to check that the user-specified
12830 attributes are visible at the point of the subprogram declaration.
12831 For Ada 2005, the error message is modified to indicate that the
12832 type's stream attributes must be visible (again, only for -gnat05).
12834 2005-12-09 Ed Schonberg <schonberg@adacore.com>
12836 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
12837 anonymous access types.
12839 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
12840 matching of anonymous access types and anonymous access to subprogram
12841 types. 'R'M 4.9.1 (2/2).
12843 2005-12-09 Ed Schonberg <schonberg@adacore.com>
12845 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
12846 rule prematurely when operands are universal, remaining ambiguities
12847 will be removed during resolution.
12850 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
12851 that are Ada 2005 functions.
12852 (Has_Abstract_Interpretation): Subsidiary to
12853 Remove_Conversions, to remove ambiguities caused by abstract operations
12854 on numeric types when operands are universal.
12856 2005-12-09 Robert Dewar <dewar@adacore.com>
12858 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
12859 for case where spec is categorized.
12861 2005-12-09 Javier Miranda <miranda@adacore.com>
12863 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
12864 types use the corresponding record type. This was not needed before
12865 the implementation of Ada 2005 synchronized types because
12866 concurrent types were never tagged types in Ada 95.
12868 2005-12-09 Ed Schonberg <schonberg@adacore.com>
12870 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
12871 first subtype of the type of the expression to verify that it is a
12874 2005-12-09 Robert Dewar <dewar@adacore.com>
12876 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
12879 2005-12-09 Quentin Ochem <ochem@adacore.com>
12880 Robert Dewar <dewar@adacore.com>
12881 Ed Falis <falis@adacore.com>
12882 Florian Villoing <villoing@adacore.com>
12883 Thomas Quinot <quinot@adacore.com>
12884 Arnaud Charlet <charlet@adacore.com>
12886 * gnat_ugn.texi: Created section "Stack Related Tools"
12887 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
12888 "Stack Related Tools"
12889 Added subsection "Static Stack Usage Analysis"
12890 Added subsection "Dynamic Stack Usage Analysis"
12891 Include documentation of itypes in sprint listing (-gnatG)
12892 Documented gnatbind -D switch (default sec stack size for fixed sec
12894 Added Interrupt_State and Persistent_BSS to list of configuration
12896 Add missing doc for maximum value of nnn in -gnatyMnnn
12898 * gnat_rm.texi: Document the AltiVec binding.
12899 Add documentation for pragma Complete_Representation
12900 Shortened an overly long line (> 79 chars)
12901 Clarify documentation of unchecked conversion in implementation
12903 Document two argument form of pragma Debug
12905 * types.ads (Column_Number): Update documentation.
12907 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
12908 library level Finalize_Storage_Only objects (these are not attached to
12909 any finalization list).
12911 * system-mingw.ads: (Underlying_Priorities): Update comment.
12913 2005-12-09 Robert Dewar <dewar@adacore.com>
12915 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
12916 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
12917 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
12918 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
12919 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
12920 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
12921 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
12922 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
12925 2005-12-09 Robert Dewar <dewar@adacore.com>
12927 * s-vaflop-vms-alpha.adb: (Ne_F): New function
12928 (Ne_G): New function
12930 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
12931 for tag assignment.
12932 (Rewrite_Comparison): Handle case where operation is not a comparison
12933 and ignore, and also handle type conversion case.
12935 2005-12-09 Thomas Quinot <quinot@adacore.com>
12937 * exp_aggr.ads: Fix typo in comment.
12938 ???-mark Convert_Aggr_In_Assignment as needing documentation.
12940 2005-12-09 Gary Dismukes <dismukes@adacore.com>
12942 * layout.adb: Replace various uses of byte by storage unit throughout.
12943 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
12944 static size, convert to storage units before returning, to conform to
12947 2005-12-09 Matthew Gingell <gingell@adacore.com>
12949 * g-exctra.ads: Fix typo in comment.
12951 2005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
12953 * utils.c: Minor reformatting.
12955 2005-12-09 Robert Dewar <dewar@adacore.com>
12958 Further comment fixes to make the status of the default file clear
12960 * s-bitops.adb: Clarify comment for Bits_Array
12962 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
12964 * Make-lang.in (ada.install-normal): Remove.
12966 2005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
12968 * Make-lang.in: Remove all dependencies on s-gtype.
12970 2005-12-05 Richard Guenther <rguenther@suse.de>
12972 * utils.c (convert): Use fold_convert where appropriate.
12974 2005-12-05 Paolo Bonzini <bonzini@gnu.org>
12976 * Makefile.in (gnatlib): Fix regex, using \. instead of . when
12979 2005-12-02 Richard Guenther <rguenther@suse.de>
12981 * trans.c (gnat_gimplify_expr): Use buildN instead of build.
12983 2005-12-01 Roger Sayle <roger@eyesopen.com>
12985 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
12988 2005-11-23 Laurent GUERBY <laurent@guerby.net>
12990 * mlib-prj.adb (Build_Library): Initialize Delete.
12992 2005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com>
12994 * socket.c: Add extern int h_errno for rtems since networking header
12995 files are not available at this point in a tool bootstrap. Newlib
12996 only has basic C library header files.
12998 2005-11-19 Richard Guenther <rguenther@suse.de>
12999 Roger Sayle <roger@eyesopen.com>
13002 * misc.c (internal_error_function): Don't use vsprintf to format
13003 the error message text, instead use pp_format_text and the new
13004 pretty printer APIs. This allows handling of %qs, %w, etc.
13006 2005-11-18 Laurent GUERBY <laurent@guerby.net>
13009 * Makefile.in: Use s-auxdec-empty for RTEMS.
13011 2005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
13014 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
13015 a temporary if taking the address of something that is neither
13016 reference, declaration, or constant, since the gimplifier
13017 can't handle that case.
13019 2005-11-17 Laurent GUERBY <laurent@guerby.net>
13022 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
13024 2005-11-16 Richard Guenther <rguenther@suse.de>
13026 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
13028 2005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com>
13031 * raise-gcc.c: Add missing stdarg.h include.
13033 2005-11-16 Richard Guenther <rguenther@suse.de>
13035 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
13036 (ada/misc.o): Likewise.
13038 2005-11-14 Thomas Quinot <quinot@adacore.com>
13040 * g-soccon.ads: Minor reformatting. Update comments.
13042 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
13043 gain visibility on the declaration of struct timeval.
13045 * g-soccon-freebsd.ads,
13046 g-soccon-darwin.ads,
13047 g-soccon-tru64.ads,
13051 g-soccon-solaris.ads,
13053 g-soccon-mingw.ads,
13054 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
13056 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
13057 g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
13058 g-soccon-linux-x86.ads: New files.
13060 * g-socthi-mingw.adb:
13061 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
13063 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
13064 (time_t, suseconds_t): New types constructed to match the tv_sec
13065 and tv_usec fields of C struct timeval.
13066 (Timeval): Construct structure in terms of the new types.
13067 (Host_Errno): New function (imported from socket.c), returns last hosts
13070 * g-socthi-vxworks.adb: Add error handling circuitry.
13072 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
13073 components of struct timeval.
13074 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
13075 (Check_Selector): In error conditions, clear internal socket sets to
13076 avoid a memory leak.
13077 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
13078 Send_Timeout, Receive_Timeout.
13080 * g-socthi.ads (time_t, suseconds_t): New types constructed to match
13081 the tv_sec and tv_usec fields of C struct timeval.
13082 (Timeval): Construct structure in terms of the new types.
13083 (Host_Errno): New function (imported from socket.c), returns last hosts
13086 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
13087 hosts database last error code.
13089 * gen-soccon.c: Complete value expansion should not be performed on
13090 TARGET, as it has the form of a math expression, and some components
13091 may be platform-defined macros.
13092 For VxWorks, generate the OK and ERROR values.
13093 New constants giving the sizes of the components of C struct timeval.
13095 2005-11-14 Robert Dewar <dewar@adacore.com>
13096 Ed Schonberg <schonberg@adacore.com>
13099 * types.ads: Include All_Checks in Suppress_Array
13101 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
13102 not(a=b), since we no longer do this rewriting, and hence it is not
13104 (Elaboration_Checks_Suppressed): Add special casing to
13105 deal with different cases of static and dynamic elaboration checks (all
13106 checks does not count in the first case, but does in the second).
13107 (Expr_Known_Valid): Do not assume that the result of any arbitrary
13108 function call is valid, since this is not the case.
13109 (Ensure_Valid): Do not apply validity check to a real literal
13110 in a universal or fixed context
13112 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
13113 elementary types using the operator in standard. It is cleaner not to
13114 modify the programmers intent, especially in the case of floating-point.
13115 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
13116 it did not matter because we always rewrote a/=b to not(a=b).
13117 (Expand_Allocator_Expression): For an allocator expression whose nominal
13118 subtype is an unconstrained packed type, convert the expression to its
13119 actual constrained subtype.
13120 Implement warning for <= or >= where < or > not possible
13121 Fix to Vax_Float tests (too early in many routines, causing premature
13122 Vax_Float expansions.
13124 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
13125 to be used with packages and generic packages as well as with
13127 (Suppress): Set All_Checks, but not Elaboration_Check, for case
13128 of pragma Suppress (All_Checks)
13129 (Analyze_Pragma, case Warnings): Implement first argument allowed to be
13130 a string literal for precise control over warnings.
13131 Avoid raise of pragma in case of unrecognized pragma and just return
13134 * sem_prag.ads: Minor reformatting
13136 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
13137 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
13138 Switch. Do not handle any exception.
13139 Include -gnatwx as part of -gnatg (warn on redundant parens)
13140 Allow optional = after -gnatm
13141 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
13142 longer sets Elaboration_Checks.
13143 Code to set warning mode moved to Sem_Warn
13144 so that it can be shared by pragma processing.
13146 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
13149 * s-taprop-solaris.adb:
13150 Change some <= to =, to avoid new warning
13152 * a-exexda.adb, prj-proc.adb:
13153 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
13154 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
13156 2005-11-14 Robert Dewar <dewar@adacore.com>
13158 * exp_vfpt.adb: Handle /= case
13159 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
13160 so that we do not get duplicate scaling for fixed point conversions.
13162 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
13164 2005-11-14 Matthew Gingell <gingell@adacore.com>
13166 * system-lynxos-ppc.ads, system-lynxos-x86.ads:
13167 Increase default priority on Lynx from 15 to 17, and meet the Ada
13168 requirement that Default_Priority be ((Priority'First +
13169 Priority'Last) / 2) by increasing the range of Interrupt_Priority.
13171 2005-11-14 Vincent Celier <celier@adacore.com>
13173 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13174 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
13175 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
13176 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
13177 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
13178 mlib-tgt-lynxos.adb (DLL_Prefix): New function
13180 2005-11-14 Doug Rupp <rupp@adacore.com>
13182 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
13185 2005-11-14 Arnaud Charlet <charlet@adacore.com>
13187 * s-traces-default.adb, s-trafor-default.ads,
13188 s-tratas-default.adb: Fix compilation errors.
13190 2005-11-14 Jose Ruiz <ruiz@adacore.com>
13192 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
13193 raising the exception so the memory used is freed.
13195 2005-11-14 Arnaud Charlet <charlet@adacore.com>
13197 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
13198 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
13199 (convert_address): Update comments and list of platforms using this.
13201 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
13204 2005-11-14 Pascal Obry <obry@adacore.com>
13205 Vincent Celier <celier@adacore.com>
13207 * gnatdll.adb (Parse_Command_Line): Remove redundant use of
13210 * memroot.adb: Remove redundant with/use clause on
13211 System.Storage_Elements.
13213 2005-11-14 Arnaud Charlet <charlet@adacore.com>
13215 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
13216 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
13217 related code to a-exexpr.adb
13218 (Save_Occurrence_And_Private): Move GCC EH related code to
13220 (Raise_Current_Excep): Add new variable Id with pragma
13221 volatile, to ensure that the variable lives on stack.
13223 * a-exexpr-gcc.adb, raise-gcc.c: New file.
13225 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
13227 Move GCC EH related code to a-exexpr-gcc.adb
13229 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
13231 Split the Linux version of g-soccon into separate variants for 32 and 64
13233 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
13234 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
13235 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
13236 of host variable $(RANLIB_FLAGS).
13237 (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
13238 Code clean up: remove unused/obsolete targets.
13239 (EH_MECHANISM): New variable introduced to differenciate between the
13240 two EH mechanisms statically.
13241 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
13242 (LIBGNAT_OBJS): Add raise-gcc.o
13243 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
13244 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
13245 supports VxWorks 6 RTPs.
13246 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
13247 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
13249 * raise.c: Move all GCC EH-related routines to raise-gcc.c
13251 2005-11-14 Jose Ruiz <ruiz@adacore.com>
13253 * s-tassta.adb (Create_Task): Move the code in charge of resetting the
13254 deferral level, when abort is not allowed, to a later stage (the
13256 (Task_Wrapper): If Abort is not allowed, reset the deferral level since
13257 it will not get changed by the generated code. It was previously done
13260 2005-11-14 Thomas Quinot <quinot@adacore.com>
13261 Olivier Hainque <hainque@adacore.com>
13262 Eric Botcazou <ebotcazou@adacore.com>
13265 Factor common code to build a storage type for an unconstrained object
13266 from a fat or thin pointer type and a constrained object type.
13267 (annotate_value): Handle BIT_AND_EXPR.
13268 (annotate_rep): Don't restrict the back annotation of inherited
13269 components to the type_annotate_only case.
13270 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
13271 we are not defining the type.
13272 <E_Record_Type>: Likewise.
13273 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
13274 to get advantage of the new maybe_stabilize_reference interface, to
13275 ensure that what we reference is indeed stabilized instead of relying
13276 on assumptions on what the stabilizer does.
13277 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
13278 type imported through a limited_with clause, use its non-limited view.
13279 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
13281 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
13282 of #if sections + explicit comparisons of convention identifiers.
13283 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
13284 before early-returning for certain types when code generation is
13286 (gnat_to_gnu_entity) <object>: Adjust comment attached to the
13287 nullification of gnu_expr we do for objects with address clause and
13288 that we are not defining.
13289 (elaborate_expression_1): Do not create constants when creating
13290 variables needed by the debug info: the dwarf2 writer considers that
13291 CONST_DECLs is used only to represent enumeration constants, and emits
13293 (gnat_to_gnu_entity) <object>: When turning a non-definition of an
13294 object with an address clause into an indirect reference, drop the
13295 initializing expression.
13297 (STACK_CHECK_BUILTIN): Delete.
13298 (STACK_CHECK_PROBE_INTERVAL): Likewise.
13299 (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
13300 (STACK_CHECK_MAX_VAR_SIZE): Likewise.
13301 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
13302 corresponding to the renamed object as ignored for debugging purposes.
13304 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
13305 related): For a prefix that is a dereference of a fat or thin pointer,
13306 if there is an actual subtype provided by the front-end, use that
13307 subtype to build an actual type with bounds template.
13308 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
13309 is provided by the front-end, use that subtype to compute the size of
13310 the deallocated object.
13311 (gnat_to_gnu): When adding a statement into an elaboration procedure,
13312 check for a potential violation of a No_Elaboration_Code restriction.
13313 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13314 with extra arguments to control whether to recurse through non-values
13315 and to let the caller know if the stabilization has succeeded.
13316 (gnat_stabilize_reference): Now a simple wrapper around
13317 maybe_stabilize, for common uses without restriction on lvalues and
13318 without need to check for the success indication.
13319 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
13320 pass false instead of 0 as the FORCE argument which is a bool.
13321 (Identifier_to_gnu): Remove checks ensuring that an renamed object
13322 attached to a renaming pointer has been properly stabilized, as no such
13323 object is attached otherwise.
13324 (call_to_gnu): Invoke create_var_decl to create the temporary when the
13325 function uses the "target pointer" return mechanism.
13326 Reinstate conversion of the actual to the type of the formal
13327 parameter before any other specific treatment based on the passing
13328 mechanism. This turns out to be necessary in order for PLACEHOLDER
13329 substitution to work properly when the latter type is unconstrained.
13331 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
13333 (maybe_stabilize_reference): New function, like gnat_stabilize_reference
13334 with extra arguments to control whether to recurse through non-values
13335 and to let the caller know if the stabilization has succeeded.
13337 * utils2.c (gnat_build_constructor): Only sort the fields for possible
13338 static output of record constructor if all the components are constant.
13339 (gnat_build_constructor): For a record type, sort the list of field
13340 initializers in increasing bit position order.
13341 Factor common code to build a storage type for an unconstrained object
13342 from a fat or thin pointer type and a constrained object type.
13343 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
13344 types variants, and process special cases of VIEW_CONVERT expressions
13345 as their NOP_EXPR counterpart to ensure we get to the
13346 CORRESPONDING_VARs associated with CONST_DECls.
13347 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
13348 on the right-hand side.
13350 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
13352 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
13353 are converting back to its original type.
13354 (convert) <JM input>: Fallthrough regular conversion code instead of
13355 extracting the object if converting to a type variant.
13356 (create_var_decl): When a variable has an initializer requiring code
13357 generation and we are at the top level, check for a potential violation
13358 of a No_Elaboration_Code restriction.
13359 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
13360 SIZE and SIZE_UNIT which we need for later back-annotations.
13361 * utils.c: (convert) <STRING_CST>: Remove obsolete code.
13362 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
13363 is an unchecked union.
13364 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
13365 (convert) <VIEW_CONVERT_EXPR>: When the types have the same
13366 main variant, just replace the VIEW_CONVERT_EXPR.
13367 <UNION_TYPE>: Revert 2005-03-02 change.
13369 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
13371 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
13373 2005-11-14 Matthew Heaney <heaney@adacore.com>
13375 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads,
13376 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb,
13377 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads,
13378 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb,
13379 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
13380 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb:
13381 Compiles against the spec for ordered maps described in sections
13382 A.18.6 of the most recent (August 2005) AI-302 draft.
13384 2005-11-14 Olivier Hainque <hainque@adacore.com>
13386 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
13387 to ensure bias adjustments take place when need be and to prevent
13388 occurrences of intermediate overflows.
13390 2005-11-14 Matthew Gingell <gingell@adacore.com>
13391 Olivier Hainque <hainque@adacore.com>
13393 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
13396 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
13397 tracebacks on ia64 HP-UX and provide explanatory comment.
13398 Enable backtraces on ia64 GNU/Linux.
13399 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
13400 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
13402 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
13403 Javier Miranda <miranda@adacore.com>
13405 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
13406 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
13407 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
13408 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
13410 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
13411 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
13414 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
13415 subprogram that generates the external name associated with a
13416 secondary dispatch table.
13417 (Get_Secondary_DT_External_Name): New subprogram that generates the
13418 external name associated with a secondary dispatch table.
13420 2005-11-14 Emmanuel Briot <briot@adacore.com>
13422 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
13423 line in the ALI file to include both an instantiation reference, and a
13426 2005-11-14 Vincent Celier <celier@adacore.com>
13428 * clean.adb (Check_Project): Look for Ada code in extending project,
13429 even if Ada is not specified as a language.
13430 Use new function DLL_Prefix for DLL_Name
13431 (Clean_Interface_Copy_Directory): New procedure
13432 (Clean_Library_Directory): New procedure
13433 (Clean_Directory): Remove procedure, no longer used
13434 (Clean_Project): Do not delete any file in an externally built project
13436 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
13437 directory of an extending project, even when there are no Ada source
13439 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
13440 (Set_Ada_Paths.Add.Recursive_Add): Ditto
13442 * mlib-prj.adb (Check_Library): For all library projects, get the
13443 library file timestamp.
13444 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
13445 (Build_Library): Use new function DLL_Prefix for the DLL_Name
13446 (Clean): Remove procedure, no longer used
13447 (Ultimate_Extension_Of): New function
13448 (Build_Library): When cleaning the library directory, only remove an
13449 existing library file and any ALI file of a source of the project.
13450 When cleaning the interface copy directory, remove any source that
13451 could be a source of the project.
13453 * prj.ads, prj.adb (Project_Empty): Add values of new components
13454 Library_TS and All_Imported_Projects.
13455 (Project_Empty): Add values for new components of Project_Data:
13456 Library_ALI_Dir and Display_Library_ALI_Dir
13458 * prj-attr.adb: New project level attribute name Library_ALI_Dir
13460 * prj-nmsc.adb (Check_Library_Attributes): Take into account new
13461 attribute Library_ALI_Dir.
13462 (Check_Library_Attributes): The library directory cannot be the same as
13463 any source directory of the project tree.
13464 (Check_Stand_Alone_Library): The interface copy directory cannot be
13465 the same as any source directory of the project tree.
13467 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
13468 all temporary files.
13470 2005-11-14 Robert Dewar <dewar@adacore.com>
13471 Ed Schonberg <schonberg@adacore.com>
13473 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13474 (Check_Elab_Call): A call within a protected body is never an
13475 elaboration call, and does not require checking.
13476 (Same_Elaboration_Scope): Take into account protected types for both
13478 (Activate_Elaborate_All_Desirable): New procedure
13480 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
13483 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
13484 (Elab_Error_Msg): Use -da to include internal unit links, not -de.
13486 * lib-writ.ads, lib-writ.adb:
13487 Implement new AD/ED for Elaborate_All/Elaborate desirable
13488 Use new Elaborate_All_Desirable flag in N_With_Clause node
13490 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
13491 N_Free_Statement nodes.
13492 Define new class N_Subprogram_Instantiation
13493 Add Elaborate_Desirable flag to N_With_Clause node
13494 Add N_Delay_Statement (covering two kinds of delay)
13496 * debug.adb: Introduce d.f flag for compiler
13497 Add -da switch for binder
13499 2005-11-14 Ed Schonberg <schonberg@adacore.com>
13500 Cyrille Comar <comar@adacore.com>
13502 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
13503 for task component, in the case of a limited aggregate. The enclosed
13504 object declaration will create it earlier. Otherwise, in the case of a
13505 nested aggregate, the object may appear in the wrong scope.
13506 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
13507 (Gen_Assign): If the component being assigned is an array type and the
13508 expression is itself an aggregate, wrap the assignment in a block to
13509 force finalization actions on the temporary created for each row of the
13511 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
13512 structures are initialized after all discriminants are set so that
13513 they can be accessed even when their offset is dynamic.
13515 2005-11-14 Robert Dewar <dewar@adacore.com>
13516 Hristian Kirtchev <kirtchev@adacore.com>
13518 * sem_attr.adb: Implement Machine_Rounding attribute
13519 (Analyze_Access_Attribute): The access attribute may appear within an
13520 aggregate that has been expanded into a loop.
13521 (Check_Task_Prefix): Add semantic check for attribute 'Callable and
13522 'Terminated whenever the prefix is of a task interface class-wide type.
13523 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
13524 the prefix is of a task interface class-wide type.
13526 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
13529 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
13530 Remove pragma Inline for [Unaligned_]Valid.
13531 Add comments that Valid routines do not work for Vax_Float
13533 * exp_attr.adb: Implement Machine_Rounding attribute
13535 * snames.h: Add entry for Machine_Rounding attribute
13537 2005-11-14 Javier Miranda <miranda@adacore.com>
13538 Robert Dewar <dewar@adacore.com>
13539 Hristian Kirtchev <kirtchev@adacore.com>
13541 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
13542 and related): For a prefix that is an explicit dereference of an
13543 access to unconstrained packed array type, annotate the dereference
13544 with an actual subtype so GIGI can make a correct size computation.
13545 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
13546 'Unrestricted_Access, if the designated type is an interface we
13547 add a type conversion to force the displacement of the pointer
13548 to the secondary dispatch table.
13549 Use Universal_Real instead of Long_Long_Float when we need a high
13550 precision float type for the generated code (prevents gratuitous
13551 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
13552 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
13553 'Terminated for task interface class-wide objects. Generate a call to
13554 the predefined dispatching routine used to retrieve the _task_id from
13555 a task corresponding record.
13556 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
13558 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13559 (Check_Dispatching_Operation): Protect the frontend againts
13560 previously detected errors.
13562 * Makefile.rtl: Add new instantiations of system.fat_gen
13564 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads:
13565 Change name of instantiated package for better consistency
13566 with newly added system.fat_gen instantiations.
13568 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
13569 s-fvagfl.ads: New files.
13571 2005-11-14 Cyrille Comar <comar@adacore.com>
13572 Thomas Quinot <quinot@adacore.com>
13574 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
13575 assignment of a value of a tagged type that has been rewritten to a
13576 block statement, it is known by construction that no checks are
13577 necessary for the statements within the block: analyze it with checks
13579 (Expand_N_If_Statement): When killing a dead then-branch in an
13580 if-statement that has elsif_parts, recompute the Current_Value node
13581 for any entity whose value is known from the condition of the first
13583 (Expand_N_Return_Statement): When returning a mutable record, convert
13584 the return value into its actual subtype in order to help the backend
13585 to return the actual size instead of the maximum. This is another
13586 aftermath of not returning mutable records on the sec-stack anymore.
13588 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
13589 handling of error msg for suspicious reverse range iteration.
13590 (Check_Possible_Current_Value_Condition): Move declaration from body to
13591 spec, to allow this subprogram to be called from exp_ch5.
13593 2005-11-14 Thomas Quinot <quinot@adacore.com>
13595 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
13596 generate a set of nested array aggregates instead of a single flat
13597 aggregate for multi-dimensional arrays.
13599 2005-11-14 Pascal Obry <obry@adacore.com>
13601 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
13602 by spawnve is a process handle, no need to convert. Add a parameter
13603 close to control wether the process handle must be closed.
13604 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
13605 a process handle, not need to convert.
13606 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
13608 * g-expect.adb: (Kill): Document the new close parameter.
13609 (Close): Do not release the process handle in the kill there as
13610 waitpid() is using it.
13611 (Send_Signal): Release the process handle.
13613 2005-11-14 Robert Dewar <dewar@adacore.com>
13615 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
13616 need a high precision float type for the generated code (prevents
13617 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13620 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
13621 need a high precision float type for the generated code (prevents
13622 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
13624 (Expand_Width_Attribute): In configurable run-time, the attribute is not
13625 allowed on non-static enumeration subtypes. Force a load error to emit
13626 the correct diagnostic.
13628 2005-11-14 Thomas Quinot <quinot@adacore.com>
13629 Robert Dewar <dewar@adacore.com>
13630 Ed Schonberg <schonberg@adacore.com>
13632 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
13633 subtype to compute the size of the designated object at run-time,
13634 create such a subtype and store it in the Actual_Designated_Subtype
13635 attribute of the N_Free_Statement.
13636 Generate itype for classwide designated object in both cases of
13637 user-specified storage pool: specific and class-wide, not only in the
13639 Raise CE when trying to set a not null access type object to null.
13640 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
13641 an explicit loop, because freeze nodes make its position variable.
13643 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
13646 2005-11-14 Javier Miranda <miranda@adacore.com>
13648 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
13649 Build_Stream_Procedure): Add the null-excluding attribute to the first
13651 This has no semantic meaning under Ada95 mode but it is a
13652 requirement under Ada05 mode.
13654 * par-ch3.adb (P_Access_Definition): Addition of warning message if
13655 the null exclusion is used under Ada95 mode
13656 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
13657 (P_Access_Definition): Remove assertion that forbids the use of
13658 the null-exclusion feature in Ada95.
13660 2005-11-14 Robert Dewar <dewar@adacore.com>
13662 * impunit.adb: Exclude container helper units not intended for use by
13665 2005-11-14 Ed Schonberg <schonberg@adacore.com>
13667 * freeze.adb (Freeze_Entity): For an access formal that is an access
13668 to subprogram, freeze the anonymous subprogram type at the same time,
13669 to prevent later freezing in the wrong scope, such as the enclosing
13671 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
13672 subprogram whenever available.
13674 2005-11-14 Arnaud Charlet <charlet@adacore.com>
13677 * gnatvsn.ads (Library_Version): Bump to 4.1
13679 2005-11-14 Robert Dewar <dewar@adacore.com>
13681 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
13682 Storage_Offset to avoid wrap around causing invalid results.
13684 2005-11-14 Pascal Obry <obry@adacore.com>
13686 * gnatbind.adb (Is_Cross_Compiler): New function returning True for
13688 (Scan_Bind_Arg): Fail with an error message if -M option is used
13689 on a native compiler.
13691 2005-11-14 Robert Dewar <dewar@adacore.com>
13692 Vincent Celier <celier@adacore.com>
13694 * gprep.adb: Implement -C switch to scan comments
13696 * scng.adb: Scan comment symbol separately if Replace_In_Comments set
13698 * scans.ads: Comment updates (including new use of Tok_Comment in
13701 * opt.ads: Add documentation for flags that are used by gprmake,
13702 currently and in the next version of gprmake.
13703 (Verbosity_Level): New variable
13704 Add Replace_In_Comments switch
13706 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
13708 Add /REPLACE_IN_COMMENTS for gnatprep -C switch
13710 2005-11-14 Arnaud Charlet <charlet@adacore.com>
13712 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
13713 message, friendlier.
13715 2005-11-14 Robert Dewar <dewar@adacore.com>
13717 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
13719 2005-11-14 Doug Rupp <rupp@adacore.com>
13721 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
13723 2005-11-14 Robert Dewar <dewar@adacore.com>
13725 * interfac.ads: Change declarations of IEEE float types so that we no
13726 longer need a separate version of this package for VMS.
13728 2005-11-14 Ed Schonberg <schonberg@adacore.com>
13730 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
13731 internal entity created for the declaration of a child subprogram body
13732 with no spec as coming from source, to generate proper cross-reference
13735 2005-11-14 Vincent Celier <celier@adacore.com>
13737 * make.adb (Compile_Sources): Change verbose message to minimum
13738 verbosity level High for "is in an Ada library", "is a read-only
13739 library" and "is an internal library",
13740 (Create_Binder_Mapping_File): Path name of ALI file for library project
13741 must include the library directory, not the object directory.
13742 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
13743 for new switches -vl, -vm and -vh.
13744 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
13745 (Check): Use minimum verbosity Medium for some Verbose_Msg calls
13746 (Compile_Sources): Do not attempt to compile if an ALI file is missing
13747 in a project that is externally built.
13748 (Compute_All_Imported_Projects): New procedure
13749 (Gnatmake): Check if importing libraries should be regenerated because
13750 at least an imported library is more recent.
13751 (Initialize): For each project compute the list of the projects it
13752 imports directly or indirectly.
13753 (Add_Library_Search_Dir): New procedure, used in place of
13754 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13755 put in the search paths.
13756 (Add_Source_Search_Dir): New procedure, used in place of
13757 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
13758 put in the search paths.
13759 (Mark_Directory): Resolve the absolute path the directory before marking
13762 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
13763 call to new procedure Bad_Switch. Call Scan_Pos with new parameter
13764 Switch. Do not handle any exception.
13765 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
13766 so that the switch is recognized as valid.
13767 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
13769 2005-11-14 GNAT Script <nobody@adacore.com>
13771 * Make-lang.in: Makefile automatically updated
13773 2005-11-14 Pascal Obry <obry@adacore.com>
13775 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
13777 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
13778 In both cases the last argument was dropped.
13780 2005-11-14 Eric Botcazou <ebotcazou@adacore.com>
13782 * namet.h: (Column_Numbe): New type.
13783 (Get_Column_Number): Define to sinput__get_column_number.
13784 (Instantiation): Define to sinput__instantiation.
13785 (Get_Column_Number): Declare.
13786 (Instantiation): Likewise.
13788 2005-11-14 Robert Dewar <dewar@adacore.com>
13790 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
13791 syntax, which could cause compiler hangs.
13793 2005-11-14 Vincent Celier <celier@adacore.com>
13795 * prj-ext.adb: Take into account new environment variable
13796 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
13798 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
13799 normalize its path name, making it absolute and resolving symbolic
13800 links, and replace the original if resolved path is different.
13802 2005-11-14 Vincent Celier <celier@adacore.com>
13804 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
13805 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
13807 2005-11-14 Emmanuel Briot <briot@adacore.com>
13809 * prj-pp.adb (Print): Do not output the with statement if the
13810 associated name is empty, which happens for virtual extending projects.
13811 (Print): Preserve the "extends all" attribute when printing the project.
13813 * prj-tree.ads (String_Value_Of): Add comment about returned value for
13814 a virtual extending project.
13816 2005-11-14 Ed Schonberg <schonberg@adacore.com>
13818 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
13819 rhs of an assignment even if the type is unconstrained, when the
13820 context is non-expanding.
13821 In an inlined body, if the context type is private,
13822 resolve with its full view, which must be a composite type.
13824 2005-11-14 Robert Dewar <dewar@adacore.com>
13825 Ed Schonberg <schonberg@adacore.com>
13827 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
13828 Do not give obsolescent warning on with of subprogram (since we
13830 (Analyze_With_Clause): Add test for obsolescent package
13831 (Install_Context_Clauses): If the unit is the body of a child unit, do
13832 not install twice the private declarations of the parents, to prevent
13833 circular lists of Use_Clauses in a parent.
13834 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
13835 compiling body of child unit.
13836 Use new class N_Subprogram_Instantiation
13837 (Expand_With_Clause): If this is a private with_clause for a child unit,
13838 appearing in the context of a package declaration, then the implicit
13839 with_clauses generated for parent units are private as well.
13840 (License_Check): Do not generate message if with'ed unit is internal
13842 2005-11-14 Gary Dismukes <dismukes@adacore.com>
13843 Ed Schonberg <schonberg@adacore.com>
13844 Thomas Quinot <quinot@adacore.com>
13846 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
13847 names are internal, because they will not have a corresponding partner
13848 in the actual package.
13849 (Analyze_Formal_Package): Move the setting of the formal package spec's
13850 Generic_Parent field so that it occurs prior to analyzing the package,
13851 to allow proper operation of Install_Parent_Private_Declarations.
13852 (Analyze_Package_Instantiation): Set the instantiated package entity's
13853 Package_Instantiation field.
13854 (Get_Package_Instantiation_Node): Move declaration to package spec.
13855 Retrieve the N_Package_Instantiation node when the Package_Instantiation
13857 (Check_Generic_Child_Unit): Within an inlined call, the only possible
13858 instantiation is Unchecked_Conversion, for which no parents are needed.
13859 (Inline_Instance_Body): Deinstall and record the use_clauses for all
13860 parent scopes of a scope being removed prior to inlining an instance
13862 (Analyze_Package_Instantiation): Do not perform front-end inlining when
13863 the current context is itself an instance within a non-instance child
13864 unit, to prevent scope stack errors.
13865 (Save_References): If the node is an aggregate that is an actual in a
13866 call, rewrite as a qualified expression to preserve some type
13867 information, to resolve possible ambiguities in the instance.
13868 (Instance_Parent_Unit): New global variable to record the ultimate
13869 parent unit associated with a generic child unit instance (associated
13870 with the existing Parent_Unit_Visible flag).
13871 (type Instance_Env): New component Instance_Parent_Unit for stacking
13872 parents recorded in the global Instance_Parent_Unit.
13873 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
13875 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
13876 it's not a top-level unit, and only do this if Instance_Parent_Unit is
13877 not already set. Replace test of Is_Child_Unit with test of parent's
13878 scope against package Standard. Add comments and a ??? comment.
13879 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
13880 on a child instance parent to test that the parent equals
13881 Instance_Parent rather than simply checking that the unit is not a
13883 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
13884 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
13885 a formal interface are ancestors of the corresponding actual.
13886 (Validate_Formal_Interface_Type): Additional legality checks.
13887 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
13888 interface types with ancestors.
13889 (Analyze_Formal_Package): If formal is a renaming, use renamed entity
13890 to diagnose attempts to use generic within its own declaration.
13892 2005-11-14 Ed Schonberg <schonberg@adacore.com>
13893 Javier Miranda <miranda@adacore.com>
13895 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
13897 (Build_Private_Derived_Type): The entity of the created full view of the
13898 derived type does not come from source. If after installing the private
13899 declarations of the parent scope the parent is still private, use its
13900 full view to construct the full declaration of the derived type.
13901 (Build_Derived_Record_Type): Relax the condition that controls the
13902 execution of the check that verifies that the partial view and
13903 the full view agree in the set of implemented interfaces. In
13904 addition, this test now only takes into account the progenitors.
13905 (Derive_Interface_Subprograms): No need to derive subprograms
13906 of ancestors that are interfaces.
13907 (Derive_Subprograms): Remove formal No_Predefined_Prims and the
13909 Change name Is_Package to Is_Package_Or_Generic_Package
13910 (Complete_Subprograms_Derivation): Handle the case in which the full
13911 view is a transitive derivation of the ancestor of the partial view.
13912 (Process_Full_View): Rename local subprogram Find_Interface_In_
13913 Descendant to Find_Ancestor_Interface to leave the code more clear.
13914 Remove wrong code that avoids the generation of an error message
13915 when the immediate ancestor of the partial view is an interface.
13916 In addition some minor reorganization of the code has been done to
13917 leave it more clear.
13918 (Analyze_Type_Declaration): If type has previous incomplete tagged
13919 partial view, inherit properly its primitive operations.
13920 (Collect_Interfaces): Make public, for analysis of formal
13922 (Analyze_Interface_Declaration): New procedure for use for regular and
13923 formal interface declarations.
13924 (Build_Derived_Record_Type): Add support for private types to the code
13925 that checks if a tagged type implements abstract interfaces.
13926 (Check_Aliased_Component_Type): The test applies in the spec of an
13928 (Access_Type_Declaration): Clean up declaration of malformed type
13929 declared as an access to its own classwide type, to prevent cascaded
13931 (Collect_Interfaces): For private extensions and for derived task types
13932 and derived protected types, the parent may be an interface that must
13933 be included in the interface list.
13934 (Access_Definition): If the designated type is an interface that may
13935 contain tasks, create Master_Id for it before analyzing the expression
13936 of the declaration, which may be an allocator.
13937 (Record_Type_Declaration): Set properly the interface kind, for use
13938 in allocators, the creation of master id's for task interfaces, etc.
13940 2005-11-14 Javier Miranda <miranda@adacore.com>
13941 Ed Schonberg <schonberg@adacore.com>
13943 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
13944 omitted in case of stream attribute subprograms.
13945 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
13946 appear immediately after a subprogram body, when there is no previous
13947 subprogram declaration.
13948 Change name Is_Package to Is_Package_Or_Generic_Package
13949 (Process_Formals): A non null qualifier on a non null named access
13950 type is not an error, and is a warning only if Redundant_Constructs
13953 2005-11-14 Gary Dismukes <dismukes@adacore.com>
13954 Ed Schonberg <schonberg@adacore.com>
13956 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
13957 nested within Analyze_Package_Specification to install the private
13958 declarations and use clauses within each of the parent units of a
13959 package instance of a generic child package.
13960 (Analyze_Package_Specification): When entering a private part of a
13961 package associated with a generic instance or formal package, the
13962 private declarations of the parent must be installed (by calling new
13963 procedure Install_Parent_Private_Declarations).
13964 Change name Is_Package to Is_Package_Or_Generic_Package
13965 (Preserve_Full_Attributes): For a synchronized type, the corresponding
13966 record is absent in a generic context, which does not indicate a
13969 2005-11-14 Ed Schonberg <schonberg@adacore.com>
13971 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
13972 not try to rewrite a renamed stream attribute, because the operations
13973 on the type may not have been generated.
13974 Handle properly a renaming_as_body generated for a stream operation
13975 whose default is abstract because the object type itself is abstract.
13976 (Find_Type): If the type is incomplete and appears as the prefix of a
13977 'Class reference, it is tagged, and its list of primitive operations
13978 must be initialized properly.
13979 (Chain_Use_Clauses): When chaining the use clauses that appear in the
13980 private declaration of a parent unit, prior to compiling the private
13981 part of a child unit, find on the scope stack the proper parent entity
13982 on which to link the use clause.
13983 (Note_Redundant_Use): Emit a warning when a redundant use clause is
13985 (Analyze_Object_Renaming): An attribute reference is not a legal object
13986 if it is not a function call.
13988 2005-11-14 Robert Dewar <dewar@adacore.com>
13989 Ed Schonberg <schonberg@adacore.com>
13991 * sem_eval.adb: Implement d.f flag
13992 (Subtype_Statically_Match): A generic actual type has unknown
13993 discriminants when the corresponding actual has a similar partial view.
13994 If the routine is called to validate the signature of an inherited
13995 operation in a child instance, the generic actual matches the full view,
13997 2005-11-14 Hristian Kirtchev <kirtchev@adacore.com>
13998 Ed Schonberg <schonberg@adacore.com>
13999 Robert Dewar <dewar@adacore.com>
14000 Thomas Quinot <quinot@adacore.com>
14002 * sem_res.adb (Resolve_Call): Provide a better error message whenever
14003 a procedure call is used as a select statement trigger and is not an
14004 entry renaming or a primitive of a limited interface.
14005 (Valid_Conversion): If the operand has a single interpretation do not
14006 remove address operations.
14007 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
14008 statement to inhibit warning.
14009 (Resolve_Unary_Op): Do not produce a warning when
14010 processing an expression of the form -(A mod B)
14011 Use Universal_Real instead of Long_Long_Float when we need a high
14012 precision float type for the generated code (prevents gratuitous
14013 Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
14014 (Resolve_Concatenation_Arg): Improve error message when argument is an
14015 ambiguous call to a function that returns an array.
14016 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
14017 there is an implicit operator in the given scope if we are within an
14018 instance: legality check has been performed on the generic.
14019 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
14020 after resolving operand, to avoid false warnings on overloaded calls.
14022 2005-11-14 Ed Schonberg <schonberg@adacore.com>
14023 Javier Miranda <miranda@adacore.com>
14026 * sem_type.adb (Covers): In an inlined body, a composite type matches
14027 a private type whose full view is a composite type.
14028 (Interface_Present_In_Ancestor): Protect the frontend against
14029 previously detected errors to ensure that its compilation
14030 with assertions enabled gives the same output that its
14031 compilation without assertions.
14032 (Interface_Present_In_Ancestor): Add support for private types.
14033 Change name In_Actual to In_Generic_Actual (clean up)
14034 (Disambiguate): New predicate In_Actual, to recognize expressions that
14035 appear in the renaming declaration generated for generic actuals, and
14036 which must be resolved in the outer context.
14038 2005-11-14 Robert Dewar <dewar@adacore.com>
14039 Thomas Quinot <quinot@adacore.com>
14040 Hristian Kirtchev <kirtchev@adacore.com>
14041 Ed Schonberg <schonberg@adacore.com>
14043 * sem_util.ads, sem_util.adb: Change name Is_Package to
14044 Is_Package_Or_Generic_Package.
14045 (Check_Obsolescent): New procedure.
14046 (Set_Is_Public): Remove obsolete junk test.
14047 (Set_Public_Status): Do not set Is_Public on an object whose declaration
14048 occurs within a handled_sequence_of_statemets.
14049 (Is_Controlling_Limited_Procedure): Factor some of the logic, account
14050 for a parameterless procedure.
14051 (Enter_Name): Recognize renaming declarations created for private
14052 component of a protected type within protected operations, so that
14053 the source name of the component can be used in the debugger.
14055 2005-11-14 Ed Schonberg <schonberg@adacore.com>
14056 Robert Dewar <dewar@adacore.com>
14058 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
14059 of a generic subprogram are not visible outside the body.
14060 (Set_Warning_Switch): New procedure (code to set warning mode moved
14061 here from Switch.C so that it can be shared by pragma processing.
14062 (Check_References): Special case warning for non-modified non-imported
14064 * par-prag.adb: Modify processing of pragma Warnings to accomodate new
14065 form with a string literal argument
14067 2005-11-14 Javier Miranda <miranda@adacore.com>
14069 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
14071 (Write): Addition of "not null" to the anonymous access.
14072 (Read): Addition of "not null" to the anonymous access.
14073 (Write): Addition of "not null" to the anonymous access.
14075 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
14076 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
14077 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
14078 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
14079 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
14080 "not null" to the anonymous access.
14082 2005-11-14 Robert Dewar <dewar@adacore.com>
14084 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
14087 2005-11-14 Vincent Celier <celier@adacore.com>
14089 * switch.adb (Bad_Switch): New procedure
14090 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
14091 message when in error.
14093 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
14094 Too_Many_Output_Files): Remove declarations, no longer used.
14095 (Scan_Nat): New parameter Switch
14097 (Bad_Switch): New procedure
14099 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
14100 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
14101 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
14102 to Osint.Fail. Do not handle any exception.
14104 2005-11-14 Vincent Celier <celier@adacore.com>
14106 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
14107 designates a non existent directory.
14109 2005-11-14 Robert Dewar <dewar@adacore.com>
14111 * xgnatugn.adb: Replace invalid membership test by 'Valid
14113 2005-11-14 Vincent Celier <celier@adacore.com>
14115 * makegpr.adb (Gprmake): Do not attempt to build the global archive if
14116 there is no object directory.
14118 2005-11-14 Robert Dewar <dewar@adacore.com>
14120 * usage.adb: Minor adjustment to output format, use nn instead of nnn
14121 (so that -gnateInnn does not run into next column)
14123 2005-11-14 Ed Falis <falis@adacore.com>
14125 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
14128 2005-11-14 Cyrille Comar <comar@adacore.com>
14130 * s-chepoo.ads: Add comments on Dereference.
14131 Remove unnecessary inherited abstract primitives.
14134 2005-11-14 Robert Dewar <dewar@adacore.com>
14136 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
14137 node parameter, not needed, since it is available as Declaration_Node.
14139 2005-11-14 Geert Bosch <bosch@adacore.com>
14141 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
14142 grammatically correct.
14144 2005-11-14 Vincent Celier <celier@adacore.com>
14146 * s-fileio.ads: Correct spelling error in comment
14148 2005-11-14 Cyrille Comar <comar@adacore.com>
14149 Robert Dewar <dewar@adacore.com>
14150 Vincent Celier <celier@adacore.com>
14151 Ben Brosgol <brosgol@adacore.com>
14152 Jose Ruiz <ruiz@adacore.com>
14153 Pascal Obry <obry@adacore.com>
14156 Document that -fstack-check is needed for strict compliance with the
14157 Ada 95 Reference Manual.
14158 Correct reference to VAX systems to meet HP guidelines
14159 Add documentation for new gnatmake switches -vl, -vm and -vh
14160 Replace DEC Ada by HP Ada
14161 Replace DIGITAL by HP
14162 Remove empty section on tools in compatibility section
14163 Clarify the Windows convention semantics.
14164 Document the Win32 calling convention.
14165 The Stdcall, Win32 and DLL convention are synonyms.
14166 Add a note in -gnatR description about zero size record components
14167 Note on new >= and <= warnings for -gnatwc
14168 Document that equal sign after -gnatm is optional.
14169 Note that strip is working fine on DLL built with a Library
14170 Project. The restriction apply only to DLL built with gnatdll.
14171 Update section about the way to debug a DLL.
14172 Update information about the DLL convention.
14173 Document -C switch for gnatprep
14174 Document new attribute Library_ALI_Dir
14175 Update elaboration doc to include implicit Elaborate pragmas now
14176 generated for subprogram instantiations.
14177 Document limitation on executable names that include spaces for --GCC,
14178 --GNATBIND, and --GNATLINK switches.
14179 Document that -w causes -gnatws to be added at start of gcc switches
14181 * gnat_rm.texi: Document that -mieee is needed for generating infinite
14182 and NaN values in case of overflow on machines that are not fully
14183 compliant with the IEEE floating-point standard.
14184 Create a section describing the set of compiler options needed for
14185 strict compliance with the Ada 95 Reference Manual.
14186 Add documentation for pragma Obsolescent applied to a package
14187 Clarify potential issues of mixed language programs related to the
14188 I/O buffering enabling in the elaboration of the GNAT runtime.
14189 Add extra documentation for pragma Restrictions (No_Elaboration_Code)
14190 This documentation only patch adds extra documentsion for pragma
14191 Restrictions (No_Elaboration_Code), explaining why it is not possible
14192 to document this restriction in terms of allowed source constructs.
14193 Document string literal form of pragma Warnings
14194 Document new attribute Library_ALI_Dir
14195 Add documentation on stable attributes in project files that was missing
14197 * gnat-style.texi: Indicate that paragraphs within a single comment
14198 should be separated by empty comment lines
14200 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
14203 * bindusg.adb: Minor cleanup, put -m before -M for consistency
14205 2005-11-14 Robert Dewar <dewar@adacore.com>
14207 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
14208 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
14209 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
14210 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
14211 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
14212 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
14213 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
14214 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
14215 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
14216 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
14217 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
14218 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
14219 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
14220 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
14221 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
14222 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
14223 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
14224 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
14225 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
14226 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
14227 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
14228 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
14229 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
14230 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
14231 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
14232 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
14233 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
14234 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
14235 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
14236 system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
14237 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
14238 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
14239 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
14240 system-interix.ads, system-solaris-sparc.ads,
14241 system-solaris-sparcv9.ads, s-inmaop-vms.adb,
14242 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
14243 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
14244 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
14245 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
14246 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
14247 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
14248 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
14249 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
14250 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
14251 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
14252 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
14253 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
14254 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
14255 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
14256 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
14257 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
14258 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
14259 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
14260 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
14261 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
14262 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
14263 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
14264 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
14265 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
14266 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
14267 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
14268 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
14269 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
14270 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
14271 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
14272 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
14273 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
14274 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
14275 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
14276 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
14277 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
14278 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
14279 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
14280 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
14281 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
14282 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
14283 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
14284 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
14285 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
14286 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
14287 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
14288 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
14289 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
14290 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
14291 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
14292 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
14293 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
14294 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
14295 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
14296 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
14297 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
14298 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
14299 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
14300 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
14301 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
14302 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
14303 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
14304 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
14305 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
14306 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
14307 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
14308 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
14309 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
14310 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
14311 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
14312 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
14313 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
14314 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
14315 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
14316 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
14317 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
14318 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
14319 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
14320 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
14321 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
14322 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
14323 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
14324 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
14325 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
14326 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
14327 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
14328 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
14329 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
14330 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
14331 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
14332 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
14333 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
14334 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
14335 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
14336 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
14337 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
14338 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
14339 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
14340 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
14341 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
14342 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
14343 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
14344 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
14345 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
14346 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
14347 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
14348 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
14349 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
14350 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
14351 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
14352 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
14353 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
14354 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
14355 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
14356 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
14357 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
14358 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
14359 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
14360 a-numaux-darwin.ads, a-numaux-darwin.adb,
14361 a-swuwha.ads, a-stunha.ads: Minor reformatting
14363 2005-11-14 Robert Dewar <dewar@adacore.com>
14366 * osint-m.adb: Add pragma Elaborate_All for Osint
14368 2005-11-10 Eric Botcazou <ebotcazou@adacore.com>
14371 * trans.c (call_to_gnu): Restore statement lost in translation.
14373 2005-11-08 Eric Botcazou <ebotcazou@adacore.com>
14375 * init.c: Use the Linux-specific section for the IA-64/Linux target.
14376 (__gnat_adjust_context_for_raise): Add conditional code so that the
14377 IA-64 is also supported.
14379 2005-11-03 James E Wilson <wilson@specifix.com>
14382 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
14383 TREE_OVERFLOW check.
14385 2005-09-21 Olivier Hainque <hainque@adacore.com>
14388 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
14389 as we create them to store a size in bits.
14391 2005-10-21 Eric Botcazou <ebotcazou@adacore.com>
14399 * utils2.c (build_return_expr): New helper function.
14400 * gigi.h (build_return_expr): Declare it.
14401 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
14402 of manually building the RETURN_EXPR tree.
14403 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
14404 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
14405 build_binary_op for the "target pointer" case. Use build_return_expr
14406 instead of manually building the RETURN_EXPR tree.
14408 2005-09-16 Laurent GUERBY <laurent@guerby.net>
14411 * s-tpinop.ads: Make this unit Preelaborate.
14413 2005-09-16 Andreas Jaeger <aj@suse.de>
14415 * socket.c: Add string.h for memcpy.
14417 2005-09-05 Arnaud Charlet <charlet@adacore.com>
14419 * dec-io.ads, dec-io.adb: Removed, no longer used.
14421 2005-09-01 Arnaud Charlet <charlet@adacore.com>
14423 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
14425 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
14426 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
14427 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
14428 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
14429 dependent units are Preelaborate.
14430 (Initialize): Call Interrupt_Managemeent.Initialize and
14431 OS_Primitives.Initialize to ensure proper initialization of this unit.
14432 Remove use of System.Soft_Links
14433 Make this unit Preelaborate.
14435 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
14436 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
14437 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
14438 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
14439 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
14440 s-tratas.ads, s-tasinf.ads: Minor reformatting.
14441 Add pragma Preelaborate, since these packages are suitable for this
14445 * s-traent-vms.ads, s-intman-dummy.adb,
14446 s-taprop-dummy.adb: Make this unit Preelaborate.
14448 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
14449 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
14450 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
14451 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
14452 s-intman-solaris.adb, s-intman-irix-athread.adb,
14453 s-intman-irix.adb: Mark this unit Preelaborate.
14454 (Initialize): New procedure.
14457 * s-taspri-linux.ads: Removed.
14459 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
14460 as done by other implementations (e.g. posix).
14462 * s-taprop.ads (Timed_Delay): Update spec since the caller now is
14463 responsible for deferring abort.
14464 Mark this unit Preelaborate.
14466 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
14467 proper initialization of the tasking run-time.
14469 * s-tasdeb.ads: Mark this unit Preelaborate.
14470 (Known_Tasks): Add explicit default value to avoid elaboration code.
14472 * s-inmaop-vms.adb (Elaboration code): Add call to
14473 Interrupt_Management.Initialize since the elaboration code depends on
14474 proper initialization of this package.
14476 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
14477 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
14478 s-osprim-posix.adb: Make this unit Preelaborate.
14480 * a-calend.adb: Add call to OS_Primitives.Initialize
14482 * a-elchha.adb: Update use of Except.Id.Full_Name.
14483 Minor reformatting.
14484 Remove use of Ada.Exceptions.Traceback when possible, cleaner.
14486 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
14487 Move with clauses outside Warnings Off now that dependent units are
14489 Use raise xxx with "..."; Ada 2005 form.
14491 * a-taside.ads, a-taside.adb:
14492 Remove some dependencies, to make it easier to make this unit truly
14494 Rewrite some code to be conformant with Preelaborate rules.
14496 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
14497 marked Preelaborate in the future.
14499 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
14500 these units Preelaborate.
14502 * s-exctab.adb: Update use of Except.Id.Full_Name.
14504 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
14505 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
14506 Set_Exc_Stack_Addr): Removed, no longer used.
14507 Remove reference to *Machine_State_Addr*, no longer needed.
14509 * s-stalib.ads: Mark this unit as Preelaborate[_05].
14510 (Exception_Data): Full_Name is now a System.Address so that this unit
14511 can be made Preelaborate.
14512 Clean up/simplify code thanks to Full_Name being a System.Address.
14513 Remove obsolete pragma Suppress (All_Checks), no longer needed.
14515 * s-taskin.ads, s-taskin.adb:
14516 Move with clauses outside Warnings Off now that dependent units are
14518 Make this unit Preelaborate.
14519 (Initialize): New proceduure, replace elaboration code and makes the
14520 set up of the tasking run-time cleaner.
14521 (Detect_Blocking): Now a function instead of a deferred boolean, to
14522 obey Preelaborate rules.
14524 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
14525 soft links, no longer used.
14527 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
14528 packages are suitable for this categorization.
14530 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
14531 since we compile run-time sources in Ada 2005 mode.
14532 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
14533 avoid having s-taprop*.adb depend on s-soflin and to avoid code
14535 Remove reference to *Machine_State_Addr*, no longer needed.
14537 2005-09-01 Arnaud Charlet <charlet@adacore.com>
14539 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
14540 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14541 Remove reference to System.Exceptions.
14543 * s-mastop-x86.adb: Removed, no longer used.
14545 * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
14547 * a-excach.adb: Minor reformatting.
14549 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
14550 instead fix new warnings that were hidden by this change.
14551 (AAA, ZZZ): Removed, replaced by...
14552 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
14553 are used instead of constants, to help make Ada.Exception truly
14555 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
14556 Raise_Storage_Error): File is now a System.Address, to simplify code.
14557 (Elab code): Removed, no longer used.
14558 (Null_Occurrence): Remove Warnings Off and make this construct
14560 Remove code related to front-end zero cost exception handling, since
14561 it is no longer used.
14562 Remove -gnatL/-gnatZ switches.
14564 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
14565 Update use of Except.Msg.
14567 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
14568 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
14569 to front-end zero cost exception handling, since it is no longer used.
14570 Remove -gnatL/-gnatZ switches.
14572 * lib-writ.ads: Minor reformatting
14575 * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
14577 * Make-lang.in: Remove references to s-except.ads
14579 * s-except.ads: Removed, no longer used.
14581 * s-mastop.ads, s-mastop.adb:
14582 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
14583 Remove reference to System.Exceptions.
14585 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
14586 switch-b.adb: Remove code related to front-end zero cost exception
14587 handling, since it is no longer used.
14588 Remove -gnatL/-gnatZ switches.
14590 2005-09-01 Robert Dewar <dewar@adacore.com>
14591 Gary Dismukes <dismukes@adacore.com>
14592 Javier Miranda <miranda@adacore.com>
14594 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
14595 type by valid test and generate warning.
14596 (Tagged_Membership): Generate call to the run-time
14597 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
14598 Change formal name Subtype_Mark to Result_Definition in several calls to
14599 Make_Function_Specification.
14600 (Expand_Allocator_Expression): Add tests for suppression of the AI-344
14601 check for proper accessibility of the operand of a class-wide allocator.
14602 The check can be left out if checks are suppressed or if the expression
14603 has a specific tagged type whose level is known to be safe.
14605 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
14606 generates the run-time check associated with null-excluding entities.
14607 (Expand_N_Return_Statement): Add tests to determine if the accessibility
14608 check on the level of the return expression of a class-wide function
14609 can be elided. The check usually isn't needed if the expression has a
14610 specific type (unless it's a conversion or a formal parameter). Also
14611 add a test for whether accessibility checks are suppressed. Augment
14612 the comments to describe the conditions for performing the check.
14614 2005-09-01 Hristian Kirtchev <kirtchev@adacore.com>
14615 Javier Miranda <miranda@adacore.com>
14616 Gary Dismukes <dismukes@adacore.com>
14617 Ed Schonberg <schonberg@adacore.com>
14619 * a-tags.adb (IW_Membership): Give support to
14620 "Iface_CW_Typ in T'Class". For this purpose the functionality of this
14621 subprogram has been extended to look for the tag in the ancestors tag
14623 Update the structure of the GNAT Dispatch Table to reflect the
14624 additional two tables used in dispatching selects.
14625 Introduce appropriate array types and record components in
14626 Type_Specific_Data to reflect the two tables.
14627 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
14628 the TSD of a tag, indexed by position.
14629 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
14630 operation kind in the TSD of a tag, indexed by position.
14632 * a-tags.ads: Introduce an enumeration type to capture different
14633 primitive operation kinds. Define a constant reflecting the number of
14634 predefined primitive operations.
14635 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
14636 of an entry wrapper.
14637 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
14638 callable entity of a primitive operation.
14640 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
14641 primitive operations used in dispatching selects for limited
14642 interfaces, limited tagged, task and protected types what implement a
14644 (Freeze_Type): Generate the bodies of the primitive operations used in
14645 dispatching selects for limited tagged, task and protected types that
14646 implement a limited interface. Generate statements to populate the two
14647 auxiliary tables used for dispatching in select statements.
14648 (Freeze_Record_Type): Add call to initialize the dispatch table entries
14649 associated with predefined interface primitive operations.
14650 (Build_Dcheck_Function): Change Set_Subtype_Mark to
14651 Set_Result_Definition.
14652 (Build_Variant_Record_Equality): Change Subtype_Mark to
14654 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
14655 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
14656 (Build_Assignment): Simplify the code that adds the run-time-check.
14657 (Expand_N_Object_Declaration): Code cleanup.
14659 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
14660 entries when there is a protected type that implements a limited
14663 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
14664 common routines used in expansion of dispatching selects.
14665 (Add_Private_Declarations): Select the appropriate protection type when
14666 there is a protected type that implements a limited interface.
14667 (Build_Parameter_Block): Generate a wrapped parameter block.
14668 (Build_Protected_Subprogram_Body): Select the appropriate type for
14669 locking entries when there is a protected type that implements a
14671 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
14672 classified as entry wrappers.
14673 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
14674 asynchronous selects.
14675 (Expand_N_Conditional_Entry_Call): Add support for expansion of
14676 dispatching conditional selects.
14677 (Expand_N_Protected_Type_Declaration): Select the appropriate type for
14678 protection when there is a protected type that implements limited
14680 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
14682 (Extract_Dispatching_Call): Extract the entity of the name of a
14683 dispatching call, the object parameter, actual parameters and
14684 corresponding formals.
14685 (Make_Initialize_Protection): Correct logic of protection initialization
14686 when there is a protected type that implements a limited interface.
14687 (Parameter_Block_Pack): Populate a wrapped parameter block with the
14688 values of actual parameters.
14689 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
14690 block and assign them to the original actual parameters.
14692 * exp_ch9.ads (Subprogram_Protection_Mode): New type.
14693 (Build_Protected_Sub_Specification): Change the type and name of the
14694 last formal to account for the increased variety of protection modes.
14696 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
14697 entities. Used to save the value of the Is_Hidden attribute when the
14698 limited-view is installed.
14699 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
14700 the attribute of procedures classified as entry wrappers.
14701 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
14702 entity of a primitive wrapper.
14703 (Write_Entity_Flags): Output the name and value of the
14704 Is_Primitive_Wrapper attribute.
14705 (Write_Field27_Name): Output the name and entity of the field Wrapped_
14707 (Underlying_Type): If we have an incomplete entity that comes from
14708 the limited view then we return the Underlying_Type of its non-limited
14709 view if it is already available.
14710 (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
14711 including operators.
14712 (Write_Field26_Name): Add entry for Overridden_Operation
14713 (Overridden_Operation): New attribute of functions and procedures.
14715 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
14716 predefined position in the dispatch table for the primitive operations
14717 used in dispatching selects.
14718 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
14719 predefined primitive operations and replace it with
14720 Default_Prim_Op_Count.
14721 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
14722 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
14723 the names of the generated primitive operations used in dispatching
14725 (Init_Predefined_Interface_Primitives): No need to inherit primitives in
14726 case of abstract interface types. They will be inherit by the objects
14727 implementing the interface.
14728 (Make_DT): There is no need to inherit the dispatch table of the
14729 ancestor interface for the elaboration of abstract interface types.
14730 The dispatch table will be inherited by the object implementing the
14732 (Copy_Secondary_DTs): Add documentation.
14733 (Validate_Position): Improve this static check in case of
14734 aliased subprograms because aliased subprograms must have
14736 (Init_Predefined_Interface_Primitives): New subprogram that initializes
14737 the entries associated with predefined primitives of all the secondary
14739 (Build_Anonymous_Access_Type): Removed.
14740 (Expand_Interface_Actuals): With the previous cleanup there is no need
14741 to build an anonymous access type. This allows further cleanup in the
14742 code generated by the expander.
14743 (Expand_Interface_Conversion): If the actual is an access type then
14744 build an internal function to handle the displacement. If the actual
14745 is null this function returns null because no displacement is
14746 required; otherwise performs a type conversion that will be
14747 expanded in the code that returns the value of the displaced actual.
14748 (Expand_Interface_Actuals): Avoid the generation of unnecessary type
14749 conversions that have no effect in the generated code because no
14750 displacement is required. Code cleanup; use local variables to
14751 avoid repeated calls to the subprogram directly_designated_type().
14753 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
14754 Classify the primitive operations used in dispatching selects as
14756 (Implements_Limited_Interface): Determine whether some type either
14757 directly implements a limited interface or extends a type that
14758 implements a limited interface.
14759 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
14760 (Expand_Subtype_From_Expr): Do not build actual subtype if the
14761 expression is limited.
14762 (Find_Interface_Tag): Add code to handle class-wide types and
14763 entities from the limited-view.
14765 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
14766 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
14767 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
14768 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
14771 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
14772 of procedure name or prefix that appears as a trigger in a triggering
14775 * uintp.ads: Introduce constants Uint_11 and Uint_13.
14777 2005-09-01 Arnaud Charlet <charlet@adacore.com>
14779 * s-tataat.adb, a-tasatt.adb:
14780 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
14782 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
14783 these procedures to body, and renamed Abort_Defer, Abort_Undefer.
14784 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
14787 2005-09-01 Arnaud Charlet <charlet@adacore.com>
14788 Jose Ruiz <ruiz@adacore.com>
14790 * s-taprop-vxworks.adb:
14791 Move with clauses outside Warnings Off now that dependent units are
14793 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
14794 initialization of this unit.
14795 (Specific): Add new procedures Initialize and Delete so that this
14796 package can be used for VxWorks 5.x and 6.x
14797 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
14798 differences between VxWorks 5.x and 6.x
14799 Minor reformatting.
14800 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
14802 Use only Preelaborate-compatible constructs.
14804 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
14805 Primitives.Operations.
14806 (Delete, Initialize): New procedures.
14808 * s-osinte-vxworks.adb: Body used to handle differences between
14809 VxWorks 5.x and 6.x
14810 (kill, Set_Time_Slice, VX_FP_TASK): New functions.
14812 * s-osinte-vxworks.ads: Minor reformatting.
14813 Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
14814 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
14816 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
14817 between Vxworks 5 and 6.
14818 (taskLock, taskUnlock): Removeed, no longer used.
14820 * adaint.c: The wait.h header is not located in the sys directory on
14821 VxWorks when using RTPs.
14822 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
14824 (__gnat_dup): dup is available on Vxworks when using RTPs.
14825 (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
14827 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
14829 * expect.c: The wait.h header is not located in the sys directory on
14830 VxWorks when using RTPs.
14832 2005-09-01 Thomas Quinot <quinot@adacore.com>
14834 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
14836 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
14838 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
14839 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
14840 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
14841 g-soccon-freebsd.ads: Add new constants:
14843 SO_RCVTIMEO/SO_SNDTIMEO
14847 Move all target-specific file inclusions and macro definitions to
14848 gsocket.h, in order to ensure that any C code in socket.c will see a
14849 set of constants that is consistent with the contents of g-soccon.ads.
14851 * gsocket.h: Code imported from gen-soccon.c:
14852 Move all target-specific file inclusions and macro definitions to
14853 gsocket.h, in order to ensure that any C code in socket.c will see a set
14854 of constants that is consistent with the contents of g-soccon.ads.
14855 This change also makes gen-soccon self-contained (removing dependencies
14856 upon GCC internal headers).
14858 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
14860 (To_Inet_Addr): Now a procedure instead of a function, more efficient.
14862 * socket.c: Minor reformatting.
14864 2005-09-01 Ed Schonberg <schonberg@adacore.com>
14865 Thomas Quinot <quinot@adacore.com>
14867 * fname-sf.adb, mlib-tgt.ads,
14868 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
14869 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
14870 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
14871 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
14872 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
14873 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
14874 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
14875 makegpr.adb: Remove redundant use_clauses.
14877 2005-09-01 Arnaud Charlet <charlet@adacore.com>
14879 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
14880 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
14881 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
14882 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
14883 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
14884 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
14885 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
14886 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
14887 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
14888 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
14889 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
14890 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
14891 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
14892 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
14893 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
14894 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
14895 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
14896 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
14897 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
14898 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
14899 s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
14900 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
14901 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
14902 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
14903 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
14904 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
14905 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
14906 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
14907 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
14908 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
14909 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
14910 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
14911 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
14912 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
14913 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
14914 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
14915 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
14916 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
14917 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
14918 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
14919 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
14920 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
14921 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
14922 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
14923 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
14924 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
14925 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
14926 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
14927 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
14928 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
14929 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
14930 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
14931 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
14932 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
14933 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
14934 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
14935 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
14936 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
14937 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
14938 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
14939 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
14940 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
14941 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
14942 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
14943 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
14944 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
14945 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
14946 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
14947 and always use the no parameter form for consistency.
14949 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
14951 2005-09-01 Robert Dewar <dewar@adacore.com>
14953 * binde.adb: Minor reformatting
14954 (Find_Elab_Order): Output warning if -p used with static elab order
14956 2005-09-01 Robert Dewar <dewar@adacore.com>
14958 * checks.adb (Check_Needed): New procedure, deals with removing checks
14959 based on analysis of short-circuited forms. Also generates warnings for
14960 improper use of non-short-circuited forms.
14963 2005-09-01 Robert Dewar <dewar@adacore.com>
14965 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
14968 2005-09-01 Robert Dewar <dewar@adacore.com>
14970 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
14972 Implement new insertion char < (conditional warning)
14973 * errutil.adb, erroutc.adb: Implement new insertion char <
14974 (conditional warning).
14975 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
14976 (Error_Msg_Warn): New variable for < insertion char.
14977 * prj-nmsc.adb: Implement new errout insertion char < (conditional
14979 (Check_For_Source): Change value of Source_Id only after the current
14980 source has been dealt with.
14982 2005-09-01 Robert Dewar <dewar@adacore.com>
14983 Doug Rupp <rupp@adacore.com>
14985 * exp_attr.adb: Handle vax fpt for 'Valid attribute
14986 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
14987 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
14988 (Valid_D, Valid_F, Valid_G): New functions
14990 2005-09-01 Ed Schonberg <schonberg@adacore.com>
14991 Hristian Kirtchev <kirtchev@adacore.com>
14992 Javier Miranda <miranda@adacore.com>
14994 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
14995 from object notation, the original node is unanalyzed and carries no
14996 semantic information, so that accessiblity checks must be performed on
14997 the type of the actual itself.
14998 (Expand_N_Subprogram_Declaration): Change last actual parameter for
14999 compatibility with Build_Protected_Sub_Specification.
15000 (Check_Overriding_Inherited_Interfaces): Add suport to handle
15001 overloaded primitives.
15002 (Register_Interface_DT_Entry): Use the new name of the formal
15003 the the calls to Expand_Interface_Thunk
15005 * exp_dbug.ads: Augment comments on encoding of protected types to
15006 include the generation of dispatching subprograms when the type
15007 implements at least one interface.
15009 * lib.ads: Extend information in Load_Stack to include whether a given
15010 load comes from a Limited_With_Clause.
15012 * lib-load.adb (From_Limited_With_Chain): New predicate to determine
15013 whether a potential circularity is harmless, because it includes units
15014 loaded through a limited_with clause. Extends previous treatment which
15015 did not handle properly arbitrary combinations of limited and
15016 non-limited clauses.
15018 2005-09-01 Nicolas Setton <setton@adacore.com>
15020 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
15021 to be encoded as typ___XBLU_lowerbound__upperbound instead of
15022 typ___XB_lowerbound__upperbound.
15024 2005-09-01 Thomas Quinot <quinot@adacore.com>
15026 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
15027 dummy access formal for RACW/RAS TypeCode TSS.
15028 (Build_TypeCode_Call): Do not generate dummy null access actual for
15029 calls to the TypeCode TSS.
15031 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15033 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
15034 fully qualified name, to distinguish instances with the same local name.
15036 * g-souinf.ads (Enclosing_Entity): Document that entity name is now
15039 2005-09-01 Robert Dewar <dewar@adacore.com>
15041 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
15044 2005-09-01 Jerome Lambourg <lambourg@adacore.com>
15046 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
15047 (Free): New deallocation procedure for filter elements
15048 (Close): Deallocate any existing filter for the concerned connection
15050 2005-09-01 Laurent Pautet <pautet@adacore.com>
15052 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
15053 position set is provided, we compute one in order to reduce the maximum
15054 length of the keys. This computation first selects a character
15055 position between 1 and the minimum length of the keys in order to
15056 avoid reducing one of the keys to an empty string.
15057 (Initialize, Compute): When the ratio V to K is too low, the algorithm
15058 does not converge. The initialization procedure now comes with a
15059 maximum number of iterations such that when exceeded, an exception is
15060 raised in Compute. The user can initialize this ratio to another value
15062 Reformating and updated headers.
15064 2005-09-01 Javier Miranda <miranda@adacore.com>
15066 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
15067 that given an entity T creates and returns an Itype that duplicates the
15068 contents of T. The returned Itype has the null-exclusion
15069 attribute set to True, and its Etype attribute references T
15070 to keep the association between the two entities.
15071 Update copyright notice
15073 * sem_aggr.adb (Check_Can_Never_Be_Null,
15074 Aggregate_Constraint_Checks, Resolve_Aggregate,
15075 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
15077 * sem_ch5.adb (Analyze_Assignment): Code cleanup.
15079 2005-09-01 Gary Dismukes <dismukes@adacore.com>
15080 Robert Dewar <dewar@adacore.com>
15081 Hristian Kirtchev <kirtchev@adacore.com>
15083 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
15086 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
15088 Call Set_Result_Definition instead of Set_Subtype_Mark.
15089 (P_Subprogram_Specification): Add parsing of anonymous access result
15090 plus null exclusions. Call Set_Result_Definition instead of
15093 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
15094 (P_Access_Type_Definition): Add parsing for an anonymous access result
15095 subtype, plus parsing for null exclusions. Call Set_Result_Definition
15096 instead of Set_Subtype_Mark.
15098 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
15099 (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
15100 (Result_Definition): New function for N_Function_Specifications.
15101 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
15102 N_Function_Specification.
15103 (Set_Null_Exclusion_Present): Allow this flag for
15104 N_Function_Specification.
15105 (Set_Result_Definition): New procedure for N_Function_Specifications.
15106 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
15107 and N_Function_Specification.
15109 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
15110 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
15111 Add support for LIMITED NEW for Ada 2005 AI-419
15112 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
15113 syntax for anonymous access results.
15114 Replace Subtype_Mark field by Result_Definition in
15115 N_Function_Specification and N_Access_Definition specs.
15116 Add Null_Exclusion_Present to spec of N_Function_Specification.
15117 (Result_Definition): New function for N_Function_Specification and
15118 N_Access_Function_Definition.
15119 (Set_Result_Definition): New procedure for N_Function_Specification and
15120 N_Access_Function_Definition.
15122 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
15123 Result_Definition for cases of N_Access_Function_Definition and
15124 N_Function_Specification.
15125 Print "not null" if Null_Exclusion_Present on N_Function_Specification.
15127 2005-09-01 Vincent Celier <celier@adacore.com>
15129 * lib-writ.adb: Update Copyright notice
15130 (Write_With_Lines): On platforms where file names are case-insensitive,
15131 record the file names in lower case.
15132 (Write_ALI): For D lines, on platforms where file names are
15133 case-insensitive, record the file names in lower case.
15135 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15136 Emmanuel Briot <briot@adacore.com>
15138 * lib-xref.adb (Output_Overridden_Op): Display information on
15139 overridden operation.
15141 * lib-xref.ads: Add documentation on overridden operations.
15143 * ali.ads (Xref_Entity_Record): Add support for storing the overriding
15146 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
15147 overriding entity information.
15149 2005-09-01 Vincent Celier <celier@adacore.com>
15151 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
15152 including those that are inherited.
15154 2005-09-01 Robert Dewar <dewar@adacore.com>
15156 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
15158 * par-prag.adb: Implement new pragma Debug_Policy
15160 * sem_prag.adb Implement new pragma Debug_Policy
15161 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
15162 Component_Size attribute specification. Give warning for ignored pragma
15165 * snames.h, snames.ads, snames.adb: Introduce entries in
15166 Preset_Names for Name_Disp_Asynchronous_Select,
15167 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
15168 Name_Disp_Timed_Select.
15169 New pragma Debug_Policy
15171 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
15173 Switch -gnata also sets Debug_Pragmas_Enabled
15175 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
15176 handle an explicit -gnata when compiling predefined files.
15178 2005-09-01 Vincent Celier <celier@adacore.com>
15180 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
15181 directories of projects that have no Ada sources.
15183 2005-09-01 Robert Dewar <dewar@adacore.com>
15185 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
15186 (makes a difference for wide characters)
15188 * widechar.adb, widechar.ads:
15189 Add Wide_Char_Byte_Count feature to count chars vs bytes
15191 2005-09-01 Thomas Quinot <quinot@adacore.com>
15192 Ed Schonberg <schonberg@adacore.com>
15193 Robert Dewar <dewar@adacore.com>
15195 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
15196 'Address attribute reference with an overloaded prefix, use the
15197 location of the prefix (not the location of the attribute reference) as
15198 the error location.
15199 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
15200 a function renaming thereof, is a valid prefix for 'Size (where it is
15201 intepreted as a function call).
15202 (Statically_Denotes_Entity): New predicate to determine whether the
15203 prefix of an array attribute can be considered static.
15206 (Eval_Attr): Fix failure to evaluate Component_Size for
15207 unconstrained arrays (resulted in wrong value in packed case, since
15208 back end cannot handle this case)
15210 2005-09-01 Robert Dewar <dewar@adacore.com>
15212 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
15213 error msgs for most common cases.
15214 Use new errout insertion char < (conditional warning)
15216 2005-09-01 Javier Miranda <miranda@adacore.com>
15217 Ed Schonberg <schonberg@adacore.com>
15219 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
15220 become local to the whole package.
15221 (Install_Limited_Withed_Unit): Instead of unchaining real entities if
15222 the package was already analyzed the new algorithm "replaces" the
15223 real entities by the shadow ones. This is required to ensure that
15224 the order of these entities in the homonym chains does not change;
15225 otherwise we can have undefined references at linking time because
15226 in case of conflicts the external name of the entities will have
15227 a suffix that depends on the order of the entities in the chain.
15228 (Remove_Limited_With_Clause): Complementary code that completes the
15229 new algorithm and replaces the shadow entities by the real ones.
15230 (Install_Limited_Withed_Unit): When unchaining entities before the
15231 installation of the shadow entities, only regular entities of the
15232 public part must be taken into account. This is required to
15233 keep this routine in synch with the work done by Remove_Limited_
15235 (Install_Limited_With_Clause): Introduce implicit limited_with_clause
15236 even if unit is analyzed, because the analysis of the unit is
15237 idempotent in any case, and the limited view of the unit may have to
15238 be installed for proper visibility.
15239 (Expand_Limited_With_Clause): Even if the unit in the implicit
15240 with_clause has been analyzed already, a limited view of the package
15241 must be built for the current context, if it does not exist yet.
15243 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15244 Javier Miranda <miranda@adacore.com>
15245 Gary Dismukes <dismukes@adacore.com>
15247 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
15248 defining entity for the instance body, make a new defining identifier
15249 rather than copying the entity of the spec, to prevent accidental
15250 sharing of the entity list.
15251 (Check_Private_View): When exchanging views of private types, build the
15252 list of exchanged views as a stack, to ensure that on exit the exchanges
15253 are undone in the proper order.
15254 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
15255 Restore the compilation environment in case of instantiation_error.
15256 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
15257 for an anonymous access result.
15258 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
15259 (Formal_Entity): Handle properly the case of a formal package that
15260 denotes a generic package renaming.
15262 2005-09-01 Thomas Quinot <quinot@adacore.com>
15264 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
15265 clause if the array aggregate is surrounded by parentheses.
15267 2005-09-01 Cyrille Comar <comar@adacore.com>
15268 Gary Dismukes <dismukes@adacore.com>
15269 Ed Schonberg <schonberg@adacore.com>
15270 Javier Miranda <miranda@adacore.com>
15272 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
15274 to check if a type is Constrained in cases related to code generation
15275 (rather than semantic checking) since otherwise we do not generate
15276 similar code for mutable private types depending if their
15277 discriminants are visible or not.
15278 (Check_Abstract_Overriding): Do not complain about failure to override
15279 the primitive operations used in dispatching selects since they will
15280 always be overriden at the freeze point of the type.
15281 (Access_Definition): Separate out handling for resetting the scope
15282 of an anonymous access function result type. Retrieve the scope
15283 of the associated function rather than using Current_Scope, which
15284 does not have a consistent value (depends on whether we're in the
15285 middle of analyzing formal parameters). Add ??? comment about
15286 finding a cleaner way to handle the special cases of scope setting.
15287 (Process_Incomplete_Dependents): A protected operation is never a
15288 dispatching operation (only its wrapper may be).
15289 (Build_Derived_Record_Type): In case of tagged private types that
15290 implement interfaces add derivation of predefined primitive
15292 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
15293 by two parameters that are used in case of derivation from abstract
15294 interface types: No_Predefined_Prims is used to avoid the derivation
15295 of predefined primitives from the interface, and Predefined
15296 Prims_Only is used to complete the derivation predefined primitives
15297 in case of private tagged types implementing interfaces.
15298 Fix typo in comments
15299 (Find_Interface_In_Descendant): Protect the frontend against
15300 wrong code with large circularity chains.
15301 (Is_Private_Overriding): Add support for entities overriding interface
15302 subprograms. The test failed because Entities associated with overriden
15303 interface subprograms are always marked as hidden (and used to build
15304 the secondary dispatch table); in this case the overriden entity is
15305 available through the field abstract_interface_alias (cf. override_
15306 dispatching_operation)
15307 (Access_Definition): Set the scope of the type to Current_Scope for the
15308 case of a function with an anonymous access result type.
15309 (Access_Subprogram_Declaration): Handle creation of the type entity for
15310 an access-to-function type with an anonymous access result.
15311 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
15312 in handling for N_Access_Function_Definition.
15313 (Analyze_Subtype_Declaration): Modify the text of error message.
15314 (Derived_Type_Declaration): Modify the text of error message.
15315 (Process_Subtype): Modify the text of error message plus cleanup
15316 of one redundant error message.
15317 (Analyze_Component_Declaration): Code cleanup.
15318 (Analyze_Object_Declaration): Code cleanup.
15319 (Analyze_Subtype_Declaration): Propagate the null-exclusion
15320 attribute in case of access types. Code cleanup.
15321 (Array_Type_Declaration): Code cleanup.
15322 (Process_Discriminants): Create the new null-excluding itype
15323 if required. Code cleanup.
15324 (Process_Subtype): Create the new null-excluding itype if
15325 required. Code cleanup.
15326 (Build_Derived_Record_Type): Code cleanup to avoid calling
15327 twice the subprogram derive_subprograms in case of private
15328 types that implement interfaces. In this particular case the
15329 subprogram Complete_Subprograms_Derivation already does the
15330 job associated with the second call.
15332 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
15333 conversion to the full view when generating an operation for a
15334 discriminant whose type may currently be private.
15336 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15337 Javier Miranda <miranda@adacore.com>
15339 * sem_ch4.adb (Transform_Object_Operation): In a context off the form
15340 V (Obj.F), the rewriting does not involve the indexed component, but
15341 only the selected component itself.
15342 Do not apply the transformation if the analyzed node is an actual of a
15343 call to another subprogram.
15344 (Complete_Object_Operation): Retain the entity of the
15345 dispatching operation in the selector of the rewritten node. The
15346 entity will be used in the expansion of dispatching selects.
15347 (Analyze_One_Call): Improve location of the error message associated
15349 (Analyze_Selected_Component): No need to resolve prefix when it is a
15350 function call, resolution is done when parent node is resolved, as
15352 (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
15353 when attempting to resolve a call transformed from its object notation.
15354 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
15355 of the argument list for each interpretation of the operation.
15356 (Try_Object_Operation): The designated type of an access parameter may
15357 be an incomplete type obtained through a limited_with clause, in which
15358 case the primitive operations of the type are retrieved from its full
15360 (Analyze_Call): If this is an indirect call, and the return type of the
15361 access_to_subprogram is incomplete, use its full view if available.
15363 2005-09-01 Javier Miranda <miranda@adacore.com>
15364 Gary Dismukes <dismukes@adacore.com>
15366 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
15367 access types the null-exclusion and access-to-constant attributes must
15369 (Analyze_Return_Statement): When the result type is an anonymous access
15370 type, apply a conversion of the return expression to the access type
15371 to ensure that appropriate accessibility checks are performed.
15372 (Analyze_Return_Type): For the case of an anonymous access result type,
15373 generate the Itype and set Is_Local_Anonymous_Access on the type.
15374 Add ??? placeholder for check to disallow returning a limited object
15375 in Ada 2005 unless it's an aggregate or a result of a function call.
15376 Change calls from Subtype_Mark to Result_Definition.
15377 (Analyze_Subprogram_Body): Change formal Subtype_Mark to
15378 Result_Definition in call to Make_Function_Specification.
15379 (Build_Body_To_Inline): Change Set_Subtype_Mark to
15380 Set_Result_Definition.
15381 (Make_Inequality_Operator): Change formal Subtype_Mark to
15382 Result_Definition in call to Make_Function_Specification.
15383 (Process_Formals): Create the new null-excluding itype if required.
15384 (New_Overloaded_Entity): For an entity overriding an interface primitive
15385 check if the entity also covers other abstract subprograms in the same
15386 scope. This is required to handle the general case, that is, overriding
15387 other interface primitives and overriding abstract subprograms inherited
15388 from some abstract ancestor type.
15389 (New_Overloaded_Entity): For an overriding entity that comes from
15390 source, note the operation that it overrides.
15391 (Check_Conformance, Type_Conformant): Addition of one new formal
15392 to skip controlling formals in the analysis. This is used to
15393 handle overloading of abstract interfaces.
15394 (Base_Types_Match): Add missing case for types imported from
15395 limited-with clauses
15396 (New_Overloaded_Entity): Add barrier to protect the use of
15397 the "alias" attribute.
15399 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15401 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
15402 verify that the procedure and the entry are mode conformant.
15403 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
15404 as a different operator, which is often a cut-and-paste error.
15406 2005-09-01 Javier Miranda <miranda@adacore.com>
15407 Ed Schonberg <schonberg@adacore.com>
15409 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
15410 used in controlling parameters exclude null because it is necessary to
15411 read the tag to dispatch, and null has no tag.
15412 (Override_Dispatching_Operation): If the previous operation is inherited
15413 from an interface, it becomes hidden and does not participate in later
15416 2005-09-01 Javier Miranda <miranda@adacore.com>
15417 Ed Schonberg <schonberg@adacore.com>
15418 Gary Dismukes <dismukes@adacore.com>
15420 * sem_res.adb (Resolve_Membership_Op): In case of the membership test
15421 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
15422 the expander will generate the corresponding run-time check to evaluate
15424 (Resolve_Call): Check for legal type of procedure name or prefix that
15425 appears as a trigger in a triggering alternative.
15426 (Valid_Conversion): If expression is ambiguous and the context involves
15427 an extension of System, remove System.Address interpretations.
15428 (Resolve_Qualified_Expression): Reject the case of a specific-type
15429 qualification applied to a class-wide argument. Enhance comment
15430 to explain checking of Original_Node.
15431 (Resolve_Type_Conversion): The location of the error message was not
15432 general enough to handle the general case and hence it has been removed.
15433 In addition, this patch improves the text of the message.
15434 (Resolve_Type_Conversion): Add missing support for access to interface
15436 (Resolve_Type_Conversion): If the target is a class-wide interface type,
15437 do not expand if the expression is the actual in a call, because proper
15438 expansion will take place when the call itself is expanded.
15439 (Resolve_Allocator): If the context is an unchecked conversion, the
15440 allocator inherits its storage pool, if any, from the target type of
15443 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15444 Javier Miranda <miranda@adacore.com>
15446 * sem_type.adb (Add_One_Interp): If a candidate operation is an
15447 inherited interface operation that has an implementation, use the
15448 implementation to avoid spurious ambiguities.
15449 (Interface_Present_In_Ancestor): In case of concurrent types we can't
15450 use the Corresponding_Record_Typ attribute to look for the interface
15451 because it is set by the expander (and hence it is not always
15452 available). For this reason we traverse the list of interfaces
15453 (available in the parent of the concurrent type).
15454 (Interface_Present_In_Ancestor): Handle entities from the limited view
15456 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15458 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
15459 from the list of required components.
15460 (Is_Controlling_Limited_Procedure): Determine whether an entity is a
15461 primitive procedure of a limited interface with a controlling first
15463 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
15465 (Safe_To_Capture_Value): A value (such as non_null) is not safe to
15466 capture if it is generated in the second operand of a short-circuit
15468 Do not capture values for variables with address clauses.
15469 (Is_Object_Reference): Treat a function call as an object reference only
15470 if its type is not Standard_Void_Type.
15472 2005-09-01 Ed Schonberg <schonberg@adacore.com>
15474 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
15475 to a variable that is statically known to be constant.
15477 2005-09-01 Geert Bosch <bosch@adacore.com>
15478 Robert Dewar <dewar@adacore.com>
15480 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
15481 (VAXGF_Safe_First): Idem.
15483 2005-09-01 Robert Dewar <dewar@adacore.com>
15484 Arnaud Charlet <charlet@adacore.com>
15486 * g-dirope.ads: Minor reformatting
15487 Document that bounds of result of Base_Name match the input index
15489 Add documentation on environment variable syntax for Expand_Path
15491 * gnat_ugn.texi: Update documentation to include mention of -m switches
15492 Document new treatment of wide characters in max line length
15494 Remove -gnatL/-gnatZ switches, no longer used.
15495 Add note on pragmas Assertion_Policy and Debug_Policy in discussion
15498 * gnat_rm.texi: Add doc for two argument form of pragma
15499 Float_Representation.
15500 Add documentation for pragma No_Strict_Aliasing
15501 Add note that explicit component clause overrides pragma Pack.
15502 Add documentation of pragma Debug_Policy
15504 2005-09-01 Matthew Heaney <heaney@adacore.com>
15506 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
15507 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
15508 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
15509 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
15510 draft (Draft 13, August 2005) of Ada Amendment 1.
15512 2005-09-01 Arnaud Charlet <charlet@adacore.com>
15514 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
15515 Note that the platform-specific version of g-soccon.ads for VMS is now
15516 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
15517 really is a package spec).
15518 Replace s-taspri-linux.ads by s-taspri-posix.ads
15519 Remove references to s-mastop-x86.adb
15521 * system-vxworks-xscale.ads: Removed, no longer used.
15522 * s-vxwork-xscale.ads: Removed, no longer used.
15524 2005-09-01 Robert Dewar <dewar@adacore.com>
15526 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
15527 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
15528 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
15529 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
15530 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
15531 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
15532 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
15533 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
15534 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
15535 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
15536 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
15537 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
15538 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
15539 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
15540 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
15541 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
15542 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
15543 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
15544 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
15545 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
15546 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
15548 2005-08-29 Arnaud Charlet <charlet@adacore.com>
15552 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
15554 2005-08-29 Arnaud Charlet <charlet@adacore.com>
15555 Doug Rupp <rupp@adacore.com>
15557 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
15559 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
15560 this code in the GNAT run-time.
15562 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
15565 * init.c (__gnat_error_handler [many]): Mark "msg" as const
15566 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
15568 (__gnat_inside_elab_final_code): Moved here from
15569 Standard_Library and only defined for the compiler.
15570 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
15571 (__gnat_inum_to_ivec): Do not define this function on VxWorks when
15572 using RTPs because directly vectored Interrupt routines are not
15573 supported on this configuration.
15574 (getpid): Do not redefine this function on VxWorks when using RTPs
15575 because this primitive is well supported by the RTP libraries.
15576 (copy_msg): Correct the code that checks for buffer overflow.
15577 Discovered during code reading.
15579 2005-08-29 Olivier Hainque <hainque@adacore.com>
15581 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
15582 a library level mutable variable with an initializer, tell
15583 build_allocator to ignore the initializer's size. It may not be large
15584 enough for all the values that might be assigned to the variable later
15587 2005-08-29 Arnaud Charlet <charlet@adacore.com>
15588 Eric Botcazou <ebotcazou@adacore.com>
15590 * trans.c: Protect < in error msg with quote
15591 Replace GCC_ZCX by Back_End_Exceptions.
15592 (addressable_p) <COMPONENT_REF>: Also return 1 if the field
15593 has been sufficiently aligned in the record.
15595 2005-08-15 James E. Wilson <wilson@specifix.com>
15597 * system-linux-alpha.ads: Change ia64 to alpha.
15599 2005-08-01 Kazu Hirata <kazu@codesourcery.com>
15601 * decl.c, utils.c: Fix comment typos.
15603 2005-07-29 Kazu Hirata <kazu@codesourcery.com>
15605 * decl.c, init.c, initialize.c: Fix comment typos.
15607 2005-07-20 Giovanni Bajo <giovannibajo@libero.it>
15609 Make CONSTRUCTOR use VEC to store initializers.
15610 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
15612 * trans.c (extract_values): Likewise.
15613 * utils.c (convert, remove_conversions): Likewise.
15614 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
15615 gnat_build_constructor): Likewise.
15617 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
15619 * decl.c (components_to_record): Use DECL_FCONTEXT instead of
15621 (compare_field_bitpos): Likewise.
15623 2005-07-09 Andrew Pinski <pinskia@physics.uc.edu>
15625 * utils.c (create_var_decl): Only set DECL_COMMON on
15626 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
15627 VAR_OR_FUNCTION_DECL_P.
15629 2005-07-08 Daniel Berlin <dberlin@dberlin.org>
15631 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
15634 2005-07-07 Pascal Obry <obry@adacore.com>
15636 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
15637 returned type on Windows.
15639 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
15642 * g-socket.adb (Inet_Addr): Check for empty Image and raises an
15643 exception in this case.
15644 Simplify the code as "Image (Image'Range)" = "Image".
15646 2005-07-07 Vincent Celier <celier@adacore.com>
15648 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
15649 the destructor/constructor attributes for <lib>final/<lib>init.
15651 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
15653 2005-07-07 Eric Botcazou <ebotcazou@adacore.com>
15655 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
15656 type if the parameter is not passed by copy but reference by default.
15658 2005-07-07 Javier Miranda <miranda@adacore.com>
15660 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
15661 Reimplementation of the support for abstract interface types in order
15662 to leave the code more clear and easy to maintain.
15664 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
15665 abstract interface types in order to leave the code clearer and easier
15668 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
15669 is now implemented by the new subprogram Fill_Secondary_DT_Entry.
15670 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
15671 appropriate entry of the secondary dispatch table.
15672 (Make_DT): Add code to inherit the secondary dispatch tables of
15675 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
15676 implementing both functionalities by means of a common routine, each
15677 routine has its own code.
15679 2005-07-07 Javier Miranda <miranda@adacore.com>
15681 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
15683 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
15686 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15689 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
15690 use of tag incomplete types.
15692 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
15693 give support to tagged incomplete types.
15695 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
15696 expression is a discriminant reference and its type is private, as can
15697 happen within a stream operation for a mutable record, use the full
15698 view of the type to resolve the case alternatives.
15699 (Analyze_Assignment): Check wrong dereference of incomplete types.
15701 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
15704 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
15707 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
15708 N_Incomplete_Type_Declaration nodes.
15710 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
15711 Tag_Present to give support to tagged incomplete types:
15713 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
15716 2005-07-07 Olivier Hainque <hainque@adacore.com>
15719 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
15720 definitions for the Unwind wrappers in the compiler case.
15722 2005-07-07 Ed Schonberg <schonberg@adacore.com>
15723 Javier Miranda <miranda@adacore.com>
15725 * par-load.adb (Load): If a child unit is loaded through a limited_with
15726 clause, each parent must be loaded as a limited unit as well.
15728 * sem_ch10.adb (Previous_Withed_Unit): Better name for
15729 Check_Withed_Unit. Return true if there is a previous with_clause for
15730 this unit, whether limited or not.
15731 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
15733 (Is_Visible_Through_Renamings): New local subprogram of install_limited
15734 _withed_unit that checks if some package installed through normal with
15735 clauses has a renaming declaration of package whose limited-view is
15736 ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
15737 of the current Draft document for Ada 2005.
15738 (Analyze_Context): Complete the list of compilation units that
15739 are allowed to contain limited-with clauses. It also contains
15740 checks that were previously done by Install_Limited_Context_Clauses.
15741 This makes the code more clear and easy to maintain.
15742 (Expand_Limited_With_Clause) It is now a local subprogram of
15743 Install_Limited_Context_Clauses, and contains the code that adds
15744 the implicit limited-with clauses for parents of child units.
15745 This functionality was prevously done by Analyze_Context.
15747 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
15750 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
15751 been erroneously named in a limited-with clause of its own context.
15752 In this case the error has been previously notified by Analyze_Context.
15754 2005-07-07 Ed Schonberg <schonberg@adacore.com>
15756 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
15757 generic package that contains local declarations with the same name.
15758 (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
15760 2005-07-07 Bernard Banner <banner@adacore.com>
15762 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
15763 ia64 platform only on platforms that you the GCC unwind library
15764 rather than the system unwind library.
15766 2005-07-07 Thomas Quinot <quinot@adacore.com>
15768 * expect.c: Minor reformatting
15770 2005-07-07 Sergey Rybin <rybin@adacore.com>
15772 * vms_data.ads: Add VMS qualifiers for new gnatpp switch
15775 * gnat_ugn.texi: Add description for new gnatpp option
15778 2005-07-04 Thomas Quinot <quinot@adacore.com>
15780 * g-expect-vms.adb, g-expect.ads, g-expect.adb
15781 (Get_Command_Output): New subprogram to launch a process and get its
15782 standard output as a string.
15784 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
15785 Olivier Hainque <hainque@adacore.com>
15787 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
15788 fetch a code-range descriptor associated with the machine state. On
15789 failure set the machine state's PC to 0; on success, pass the
15790 descriptor to exc_virtual_unwind.
15792 * init.c (Tru64 section): New function __gnat_set_code_loc.
15794 2005-07-04 Vincent Celier <celier@adacore.com>
15796 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15797 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15798 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
15799 Remove all auto-initialization code, as this is now done through the
15800 constructor mechanism.
15802 * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
15803 __gnat_sals_init_using_constructors): New functions.
15805 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
15806 Linker_Constructor and Linker_Destructor when switch -a is used.
15808 * bindusg.adb: Add line for new switch -a
15810 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
15811 (Gnatbind): When switch -a is used, check if it is allowed
15813 * switch-b.adb (Scan_Binder_Switches): Process new switch -a
15815 2005-07-04 Joel Brobecker <brobecker@adacore.com>
15817 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
15818 This prevents us from hitting a limitation during the debug info
15819 generation when using stabs.
15820 (Prims_Ptr): Likewise.
15822 2005-07-04 Gary Dismukes <dismukes@adacore.com>
15823 Ed Schonberg <schonberg@adacore.com>
15824 Javier Miranda <miranda@adacore.com>
15826 * checks.adb (Null_Exclusion_Static_Checks): In the case of
15827 N_Object_Declaration, only perform the checks if the Object_Definition
15828 is not an Access_Definition.
15830 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
15831 where the parent of an the access definition is an N_Object_Declaration
15832 when determining the Associated_Node_For_Itype and scope of an
15833 anonymous access-to-subprogram type.
15835 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
15836 Corresponding_Spec on the body created for a null procedure. Add ???
15837 comment. Remove New_Copy_Tree call on body argument to
15838 Set_Body_To_Inline.
15840 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
15841 discriminants, use the type of the actual as well, because the
15842 discriminants may be read by the called subprogram.
15844 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
15845 access type we do not need to handle non-limited views.
15846 (Build_Derived_Record_Type): Additional check to check that in case of
15847 private types, interfaces are only allowed in private extensions.
15849 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
15851 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
15852 <Pragma_Linker_Destructor>: Likewise.
15854 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
15855 Pragma_Linker_Destructor.
15857 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
15858 ATTR_LINK_DESTRUCTOR.
15859 (static_ctors, static_dtors): New variables.
15861 * misc.c (gnat_expand_body): Output current function as constructor
15862 and destructor if requested.
15864 * par-prag.adb: Add processing for pragma Linker_Constructor and
15867 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
15868 extracted from Check_Interrupt_Or_Attach_Handler.
15869 (Check_Interrupt_Or_Attach_Handler): Invoke it.
15870 Implement pragma Linker_Constructor and Linker_Destructor with the
15871 help of Find_Unique_Parameterless_Procedure.
15872 Replace Name_Alias with Name_Target for pragma Linker_Alias.
15874 * snames.h, snames.ads, snames.adb:
15875 Add Name_Linker_Constructor and Name_Linker_Destructor.
15876 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
15877 * snames.adb: Remove Name_Alias.
15879 * trans.c: Include cgraph.h.
15880 (build_global_cdtor): New function.
15881 (Compilation_Unit_to_gnu): Build global constructor and destructor if
15883 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
15885 (addressable_p) <COMPONENT_REF>: Unconditionally test
15886 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
15888 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
15889 variable if it is external.
15891 (static_ctors, static_dtors): New global variables.
15892 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
15893 <ATTR_LINK_DESTRUCTOR>: Likewise.
15894 (end_subprog_body): Chain function as constructor and destructor
15897 * exp_util.adb (Force_Evaluation): Unconditionally invoke
15898 Remove_Side_Effects with Variable_Ref set to true.
15899 (Remove_Side_Effects): Handle scalar types first. Use a renaming
15900 for non-scalar types even if Variable_Ref is true and for class-wide
15903 2005-07-04 Ed Schonberg <schonberg@adacore.com>
15905 * exp_attr.adb (Mod): Evaluate condition expression with checks off,
15906 to prevent spurious warnings.
15908 2005-07-04 Thomas Quinot <quinot@adacore.com>
15910 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
15911 Itypes. Itypes are really unexpected there.
15912 (Build_TypeCode_Function): Generalise special processing for Itypes to
15913 handle the case of numeric implicit base types as well as enumerated
15916 2005-07-04 Ed Schonberg <schonberg@adacore.com>
15918 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
15919 controlled, indicate the expected type of the dereference that is
15920 created for the call to Deep_Finalize, to prevent spurious errors when
15921 the designated type is private and completed with a derivation from
15922 another private type.
15924 2005-07-04 Vincent Celier <celier@adacore.com>
15926 * make.adb (Change_To_Object_Directory): When unable to change the
15927 current dir to the object directory, output the full path of the
15930 2005-07-04 Matthew Gingell <gingell@adacore.com>
15932 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
15934 * indepsw-linux.adb: Replace by...
15936 * indepsw-gnu.adb: ...this new file
15938 2005-07-04 Vincent Celier <celier@adacore.com>
15940 * mlib-prj.adb (Auto_Initialize): New constant String
15941 (SALs_Use_Constructors): New Boolean function
15942 (Build_Library): Call gnatbind with Auto_Initialize switch when
15943 SALs_Use_Constructors returns True.
15945 * mlib-tgt.ads: Minor reformatting
15947 * mlib-utl.ads: Minor reformatting
15949 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
15951 2005-07-04 Ed Schonberg <schonberg@adacore.com>
15953 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
15954 single protected declarations can have an interface list.
15955 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
15956 with seriously malformed entry declarations, and lead to compilation
15957 abandoned messages.
15959 2005-07-04 Javier Miranda <miranda@adacore.com>
15961 * par-load.adb: Load the context items in two rounds.
15963 2005-07-04 Robert Dewar <dewar@adacore.com>
15965 * scng.adb: Do not consider Mod used as an attribute to be a keyword
15967 2005-07-04 Ed Schonberg <schonberg@adacore.com>
15968 Javier Miranda <miranda@adacore.com>
15970 * sem_ch10.adb (Build_Limited_Views): A type declared with a private
15971 type extension needs a limited view.
15972 Remove previous restriction on private types available through the
15973 limited-view (only tagged private types were previously allowed).
15974 (Install_Withed_Unit): In the code that implements the
15975 legality rule given in AI-377, exclude a child unit with the name
15976 Standard, because it is a homonym of the Standard environment package.
15978 2005-07-04 Thomas Quinot <quinot@adacore.com>
15980 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
15981 overloaded function call, carry interpretations from the original tree
15984 2005-07-04 Ed Schonberg <schonberg@adacore.com>
15986 * sem_ch6.adb (Conforming_Types): If the types are anonymous access
15987 types check whether some designated type is a limited view, and use
15988 the non-limited view if available.
15990 2005-07-04 Gary Dismukes <dismukes@adacore.com>
15992 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
15993 constraint of full view of a private view T1 if present, when T2 is a
15994 discriminated full view.
15996 2005-07-04 Thomas Quinot <quinot@adacore.com>
15998 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
15999 actual that is a view conversion of a bit packed array reference.
16001 2005-07-04 Ed Schonberg <schonberg@adacore.com>
16003 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
16004 present before checking whether an interface type covers a synchronized
16007 2005-07-04 Ed Schonberg <schonberg@adacore.com>
16009 * sem_util.adb (Is_Object_Reference): An indexed or selected component
16010 whose prefix is an implicit dereference is an object reference. Removes
16011 spurious errors when compiling with -gnatc.
16013 2005-07-04 Robert Dewar <dewar@adacore.com>
16016 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
16018 2005-07-04 Matthew Gingell <gingell@adacore.com>
16020 * tracebak.c: Enable tracebacks on ia64 platforms
16022 2005-07-04 Vincent Celier <celier@adacore.com>
16024 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
16025 the GNAT BIND command, as gnatbind accepts multiples ALI files with
16026 the -L or -n switches.
16028 2005-07-04 Vincent Celier <celier@adacore.com>
16030 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
16031 correctly computed and the main project data is not modified while
16033 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
16034 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
16035 c++linker as this does not work on some platforms.
16037 2005-07-04 Matthew Heaney <heaney@adacore.com>
16039 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
16041 * a-coinve.adb: Perform constraint checks explicitly.
16043 2005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
16044 Thomas Quinot <quinot@adacore.com>
16046 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
16047 new target gen-soccon.
16049 2005-07-04 Robert Dewar <dewar@adacore.com>
16051 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
16053 2005-07-04 Thomas Quinot <quinot@adacore.com>
16055 * g-socket.ads (Check_Selector): Minor rewording of comment.
16057 2005-07-04 Vincent Celier <celier@adacore.com>
16059 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
16061 2005-07-04 Thomas Quinot <quinot@adacore.com>
16063 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
16065 2005-07-04 Sergey Rybin <rybin@adacore.com>
16067 * gnat_ugn.texi: Add description of --eol gnatpp option
16069 2005-07-04 Eric Botcazou <ebotcazou@adacore.com>
16070 Thomas Quinot <quinot@adacore.com>
16072 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
16073 if the user wants all calls of a subprogram to be flagged,
16074 independently of whether they are made from within the same unit or
16076 Mention restriction for pragma Linker_Alias on some platforms.
16077 Document pragma Linker_Constructor and Linker_Destructor.
16078 Rewrite documentation of Weak_External, Linker_Section and
16079 Linker_Alias pragmas.
16081 2005-07-04 Arnaud Charlet <charlet@adacore.com>
16083 * s-stausa.ads, s-stausa.adb: New files.
16085 2005-06-30 Kelley Cook
16087 * all files: Update FSF address in copyright headers.
16088 * gen-soccon.co (main): Output new FSF address in generated files.
16090 2005-06-28 Paul Brook <paul@codesourcery.com>
16092 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
16094 2005-06-14 Olivier Hainque <hainque@adacore.com>
16095 Eric Botcazou <ebotcazou@adacore.com>
16097 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
16098 exc_unwind, now that we are generating proper .debug_frame output for
16101 * tracebak.c: Remove the mips-irix section, as we are now using the
16102 s-mastop based unwinder again.
16103 Under SPARC/Solaris, take into account the stack bias to compute the
16104 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9
16107 2005-06-14 Doug Rupp <rupp@adacore.com>
16109 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
16111 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
16113 2005-06-14 Pascal Obry <obry@adacore.com>
16115 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
16116 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
16117 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
16120 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
16121 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
16122 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
16123 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
16124 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
16125 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
16126 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
16127 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
16128 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
16129 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
16130 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
16131 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
16132 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
16133 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
16134 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
16135 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
16136 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
16137 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
16138 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
16139 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
16140 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
16141 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
16142 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
16143 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
16144 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
16145 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
16146 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
16147 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
16148 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
16149 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
16150 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
16151 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
16152 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
16153 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
16154 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
16155 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
16156 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
16157 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
16158 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
16159 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
16160 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
16161 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
16162 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
16163 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
16164 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
16165 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
16166 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
16167 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
16168 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
16169 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
16170 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
16171 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
16172 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
16173 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
16174 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
16175 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
16176 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
16177 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
16178 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
16179 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
16180 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
16181 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
16182 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
16183 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
16184 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
16185 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
16186 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
16187 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
16188 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
16189 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
16190 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
16191 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
16192 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
16193 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
16194 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
16195 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
16196 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
16197 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
16198 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
16199 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
16200 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
16201 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
16202 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
16203 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
16204 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
16205 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
16206 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
16207 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
16208 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
16209 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
16210 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
16211 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
16212 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
16213 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
16214 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
16215 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
16216 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
16217 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
16218 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
16219 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
16220 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
16221 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
16222 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
16223 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
16224 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
16225 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
16226 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
16227 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
16228 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
16229 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
16230 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
16231 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
16232 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16233 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
16234 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
16235 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
16236 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
16237 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
16238 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
16239 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
16240 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
16241 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
16242 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
16243 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
16244 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
16245 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
16246 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
16247 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
16248 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
16249 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
16250 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
16251 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
16252 "GNU Ada" to GNAT, use proper casing for RUN-TIME.
16254 2005-06-14 Jose Ruiz <ruiz@adacore.com>
16255 Arnaud Charlet <charlet@adacore.com>
16257 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
16258 longer protected objects. They have been replaced by lower-level
16259 suspension objects made up by a mutex and a condition variable (or
16260 their equivalent given a particular OS) plus some internal data to
16261 reflect the state of the suspension object.
16262 (Initialize, Finalize): Add this initialization procedure for
16263 Suspension_Object, which is a controlled type.
16264 (Finalize): Add the finalization procedure for Suspension_Object,
16265 which is a controlled type.
16267 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
16268 Ada.Synchronous_Task_Control because there is no longer a need for a
16269 VxWorks specific version of this package. Target dependencies
16270 has been moved to System.Task_Primitives.Operations.
16272 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
16274 (InitializeCriticalSection, EnterCriticalSection,
16275 LeaveCriticalSection, DeleteCriticalSection): Replace the type
16276 pCriticalSection by an anonymous access type so that we avoid problems
16277 of accessibility to local objects.
16279 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
16280 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
16281 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
16282 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
16283 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
16284 set the environment task mask here.
16285 (Current_State): Add this function that returns the state of the
16287 (Set_False): Add this procedure that sets the state of the suspension
16289 (Set_True): Add this procedure that sets the state of the suspension
16290 object to True, releasing the task that was suspended, if any.
16291 (Suspend_Until_True): Add this procedure that blocks the calling task
16292 until the state of the object is True. Program_Error is raised if
16293 another task is already waiting on that suspension object.
16294 (Initialize): Add this procedure for initializing the suspension
16295 object. It initializes the mutex and the condition variable which are
16296 used for synchronization and queuing, and it sets the internal state
16298 (Finalize): Add this procedure for finalizing the suspension object,
16299 destroying the mutex and the condition variable.
16301 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
16302 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
16303 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
16304 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
16305 which provides a low-level abstraction (using operating system
16306 primitives) for Ada.Synchronous_Task_Control.
16307 This object is made up by a mutex (for ensuring mutual exclusion), a
16308 condition variable (for queuing threads until the condition is
16309 signaled), a Boolean (State) indicating whether the object is open,
16310 and a Boolean (Waiting) reflecting whether there is a task already
16311 suspended on this object.
16313 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
16314 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
16315 s-intman-vms.ads, s-intman-mingw.adb,
16316 (Initialize_Interrupts): Removed, no longer used.
16318 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
16319 (Setup_Interrupt_Mask): New procedure.
16321 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments.
16323 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
16325 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
16326 this is no longer done in the body of s-taprop
16327 (Server_Task): Explicitely test for Pending_Action in case
16328 System.Parameters.No_Abort is True.
16330 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
16331 is no longer done in the body of s-taprop
16333 2005-06-14 Robert Dewar <dewar@adacore.com>
16335 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
16336 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
16337 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
16338 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
16339 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
16340 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
16341 system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
16342 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
16343 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
16344 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
16345 system-linux-hppa.ads, system-vms_64.ads,
16346 system-vxworks-alpha.ads: Minor comment update for
16347 AI-362 (unit is Pure).
16349 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
16350 Add pragma Pure_05 for AI-362
16351 Make remaining conversion functions obsolescent in Ada 95
16353 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16354 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
16355 Add entries for a-wichun and a-zchuni
16356 Add a-widcha a-zchara for AI-395
16357 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
16359 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
16360 Add entries for a-wichun.o and a-zchuni.o
16361 Entries for a-widcha.o and a-zchara.o
16362 Add entry for a-chacon.o
16364 * a-ztenau.adb: Add with of Ada.Characters.Conversions
16366 * a-chacon.ads, a-chacon.adb: New files.
16368 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
16369 categorization violations.
16371 * a-strmap.ads: Add pragma Pure_05 for AI-362
16372 * a-strmap.ads: Add note on implicit categorization for AI-362
16374 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
16376 * par-prag.adb: Dummy entry for pragma Persistent_BSS
16377 Set Ada_Version_Explicit, for implementation of AI-362
16378 Add processing for pragma Pure_05 and Preelaborate_05
16379 Add entry for Assertion_Policy pragma
16381 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
16382 when needed for proper processing of categorization stuff
16385 For several cases, make errors in preealborate units warnings,
16386 instead of errors, if GNAT_Mode is set. For AI-362.
16388 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
16389 preelaborate unit is now warning if in GNAT mode
16391 * s-stoele.ads: Document AI-362 for pragma preelaborate
16393 2005-06-14 Doug Rupp <rupp@adacore.com>
16395 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
16396 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
16397 Default_Exception_Msg_Max_Length: new parameter.
16399 * a-except.ads: (Exception_Msg_Max_Length): Set to
16400 System.Parameters.Default_Exception_Msg_Max_Length
16401 Add pragma Preelaborate_05 for AI-362
16402 Add warnings off to allow categorization violations for AI-362
16404 2005-06-14 Vincent Celier <celier@adacore.com>
16406 * gnatsym.adb: Adapt to modification of package Symbols: procedure
16407 Process is now in package Processing.
16409 * symbols.ads, symbols.adb:
16410 (Processing): New package, containing procedure Process
16412 * symbols-vms-alpha.adb:
16413 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
16415 * symbols-vms.adb, symbols-processing-vms-alpha.adb,
16416 symbols-processing-vms-ia64.adb: New files.
16418 2005-06-14 Pascal Obry <obry@adacore.com>
16420 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
16421 implementation. This new version generates the proper DllMain routine
16422 to initialize the SAL. The DllMain is generated in Ada and compiled
16423 before being added as option to the library build command.
16425 2005-06-14 Doug Rupp <rupp@adacore.com>
16426 Pascal Obry <obry@adacore.com>
16428 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
16429 call to decc$translate_vms.
16430 (__gnat_locate_regular_file): Check if the path_val contains quotes. We
16431 need to remove those quotes before catenating the filename.
16432 (__gnat_locate_exec_on_path): improvements to the Win32 section:
16433 * avoid allocating the memory twice for better efficiency;
16434 * allocate 32K buffer for environment expansion as suggested by MSDN;
16435 * prepend ".;" to the path so that current directory is searched too.
16437 2005-06-14 Robert Dewar <dewar@adacore.com>
16439 * a-except.adb (Exception_Identity): return Null_Id for null occurrence
16440 instead of raising CE (AI-241)
16441 Add warnings off to allow categorization violations for AI-362
16443 2005-06-14 Robert Dewar <dewar@adacore.com>
16445 * ali-util.adb, gnatbind.adb: Remove references to
16446 Force_RM_Elaboration_Order.
16448 * switch-b.adb: Remove recognition of -f switch
16450 2005-06-14 Pascal Obry <obry@adacore.com>
16452 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
16453 implementation which is slightly more efficient.
16455 2005-06-14 Gary Dismukes <dismukes@adacore.com>
16456 Javier Miranda <miranda@adacore.com>
16457 Ed Schonberg <schonberg@adacore.com>
16458 Hristian Kirtchev <kirtchev@adacore.com>
16460 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
16461 allocator's designated type is a class-wide type, and compiling for
16462 Ada 2005, emit a run-time check that the accessibility level of the
16463 type given in the allocator's expression is not deeper than the level
16464 of the allocator's access type.
16466 (Tagged_Membership): Modified to gives support to abstract interface
16469 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
16471 (Descendant_Tag): New predefined function
16472 (Is_Descendant_At_Same_Level): New predefined function
16473 (Get_Access_Level): New private function
16474 (Set_Access_Level): New private procedure
16475 (IW_Membership): New function. Given the tag of an object and the tag
16476 associated with an interface, evaluate if the object implements the
16478 (Register_Interface_Tag): New procedure used to initialize the table of
16479 interfaces used by the IW_Membership function.
16480 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
16481 of the dispatch table.
16482 (Inherit_TSD): Modified to copy the table of ancestor tags plus the
16483 table of interfaces of the parent.
16484 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
16485 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
16486 (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
16487 and raise Tag_Error if the passed tag equalis No_Tag, to conform with
16488 Ada 2005 semantics for the new predefined function.
16490 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
16491 call to Descendant_Tag rather than Internal_Tag.
16492 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
16493 the accessibility level of the attribute's Item parameter is not deeper
16494 than the level of the attribute's prefix type. Tag_Error is raised if
16495 the check fails. The check is only emitted for Ada_05.
16496 (Find_Stream_Subprogram): If a TSS exists on the type itself for the
16497 requested stream attribute, use it.
16498 (Expand_N_Attribute_Reference): If the designated type is an interface
16499 then rewrite the referenced object as a conversion to force the
16500 displacement of the pointer to the secondary dispatch table.
16501 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
16502 is a dereference of an object with a constrained partial view.
16504 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
16505 type is a class-wide type, emit a run-time check that the accessibility
16506 level of the returned object is not deeper than the level of the
16507 function's master (only when compiling for Ada 2005).
16509 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
16510 Action_Nb_Arg): Add entries for new Get_Access_Level and
16511 Set_Access_Level routines in these tables.
16512 (Make_DT): Generate a call to set the accessibility level of the
16513 tagged type in its TSD.
16514 (Make_DT): Code cleanup. The functionality of generating all the
16515 secondary dispatch tables has been moved to freeze_record_type.
16516 (Make_Abstract_Interface_DT): Minor code cleanup.
16517 (Set_All_DT_Position): Code cleanup. As part of the code cleanup
16518 this subprogram implements a new algorithm that provides the
16519 same functionality and it is more clear in case of primitives
16520 associated with abstract interfaces.
16521 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
16522 clean up, the functionality of this subprogram is now provided
16523 by Set_All_DT_Position.
16524 (Write_DT): New subprogram: a debugging procedure designed to be called
16525 within gdb to display the dispatch tables associated with a tagged
16527 (Collect_All_Interfaces): New subprogram that collects the whole list
16528 of interfaces that are directly or indirectly implemented by a tagged
16530 (Default_Prim_Op_Position): New subprogram that returns the fixed
16531 position in the dispatch table of the default primitive operations.
16532 (Expand_Interface_Actuals): New subprogram to generate code that
16533 displaces all the actuals corresponding to class-wide interfaces to
16534 reference the interface tag of the actual object.
16535 (Expand_Interface_Conversion): New subprogram. Reference the base of
16536 the object to give access to the interface tag associated with the
16537 secondary dispatch table.
16538 (Expand_Interface_Thunk): New subprogram that generates the code of the
16539 thunk. This is required for compatibility with the C+ ABI.
16540 (Make_Abstract_Interface_DT): New subprogram that generate the
16541 declarations for the secondary dispatch tables associated with an
16542 abstract interface.
16543 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
16544 attribute for each primitive operation covering interface subprograms
16545 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
16546 These subprograms were upgraded to give support to abstract interfaces
16548 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
16549 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
16550 RE_Set_Access_Level.
16551 (RE_Unit_Table): Add entries for new Ada.Tags operations.
16552 Add support to call the followig new run-time subprograms:
16553 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
16555 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
16556 match its full declaration when both have an access definition with
16557 statically matching designated subtypes.
16558 (Analyze_Component_Declaration): Delete commented out code that was
16559 incorrectly setting the scope of an anonymous access component's type.
16560 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
16561 an access discriminant when the containing type is nonlimited.
16562 (Make_Incomplete_Type_Declaration): Create an incomplete type
16563 declaration for a record type that includes self-referential access
16565 (Check_Anonymous_Access_Types): Before full analysis of a record type
16566 declaration, create anonymous access types for each self-referential
16568 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
16569 an access component in this context is a Local_Anonymous_Access, for
16570 proper accessibility checks.
16571 (Access_Definition): Set properly the scope of the anonymous access type
16572 created for a stand-alone access object.
16573 (Find_Type_Of_Object): An object declaration may be given with an access
16575 (Complete_Subprograms_Derivation): New subprogram used to complete
16576 type derivation of private tagged types implementing interfaces.
16577 In this case some interface primitives may have been overriden
16578 with the partial-view and, instead of re-calculating them, they
16579 are included in the list of primitive operations of the full-view.
16580 (Build_Derived_Record_Type): Modified to give support to private
16581 types implemening interfaces.
16582 (Access_Definition): Reject ALL on anonymous access types.
16583 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
16584 type derivation to occur at a deeper accessibility level than the
16586 For the case of derivation within a generic body however, disallow the
16587 derivation if the derived type has an ancestor that is a formal type
16588 declared in the formal part of an enclosing generic.
16589 (Analyze_Object_Declaration): For protected objects, remove the check
16590 that they cannot contain interrupt handlers if not declared at library
16592 (Add_Interface_Tag_Components): New subprogram to add the tag components
16593 corresponding to all the abstract interface types implemented by a
16594 record type or a derived record type.
16595 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16596 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16597 Process_Full_View, Record_Type_Declaration): Modified to give
16598 support to abstract interface types
16599 (Collect_Interfaces): New subprogram that collects the list of
16600 interfaces that are not already implemented by the ancestors
16601 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
16602 when partial view has no discriminants and full view has defaults.
16603 (Constrain_Access): Reject a constraint on a general access type
16604 if the discriminants of the designated type have defaults.
16605 (Access_Subprogram_Declaration): Associate the Itype node with the inner
16606 full-type declaration or subprogram spec. This is required to handle
16607 nested anonymous declarations.
16608 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
16609 Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
16610 Process_Full_View, Record_Type_Declaration): Modified to give
16611 support to abstract interface types
16612 (Derive_Subprograms): Addition of a new formal to indicate if
16613 we are in the case of an abstact-interface derivation
16614 (Find_Type_Of_Subtype_Indic): Moved from the body of the package
16615 to the specification because it is requied to analyze all the
16616 identifiers found in a list of interfaces
16618 * debug.adb: Complete documentation of flag "-gnatdZ"
16620 * exp_ch3.adb: Implement config version of persistent_bss pragma
16621 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
16622 testing for TSS presence to properly enforce visibility rules.
16623 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
16624 Make_Abstract_Interfaces_DT to generate the secondary tables
16625 associated with abstract interfaces.
16626 (Build_Init_Procedure): Modified to initialize all the tags
16628 (Component_Needs_Simple_Initialization): Similar to other tags,
16629 interface tags do not need initialization.
16630 (Freeze_Record_Type): Modified to give support to abstract interface
16632 (Expand_N_Object_Declaration): Do not generate an initialization for
16633 a scalar temporary marked as internal.
16635 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
16636 in-out parameter that is a component in an initialization procedure,
16637 whose constraint might depend on discriminants, and that may be
16638 misaligned because of packing or representation clauses.
16639 (Is_Legal_Copy): New predicate to determine whether a possibly
16640 misaligned in-out actual can actually be passed by copy/return. This
16641 is an error in case the type is by_reference, and a warning if this is
16642 the consequence of a DEC import pragma on the subprogram.
16643 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
16645 (Expand_Inlined_Call): Mark temporary generated for the return value as
16646 internal, so that no useless scalar normalization is generated for it.
16647 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
16648 null procedure can always be inlined.
16649 (Expand_N_Subprogram_Declaration): If this is the declaration of a null
16650 procedure, generate an explicit empty body for it.
16652 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
16653 Given a type implementing an interface, returns the corresponding
16654 access_disp_table value.
16655 (Find_Interface_Tag): New subprogram. Given a type implementing an
16656 interface, returns the record component containing the tag of the
16658 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
16659 previous ones that return the corresponding tag and access_disp_table
16661 (Is_Predefined_Dispatching_Operation): Determines if a subprogram
16662 is a predefined primitive operation.
16663 (Expand_Subtype_From_Expr): If the expression is a selected component
16664 within an initialization procedure, compute its actual subtype, because
16665 the component may depend on the discriminants of the enclosing record.
16667 * i-cpp.ads, i-cpp.adb:
16668 This package has been left available for compatibility with previous
16669 versions of the frontend. As part of the new layout this is now a
16670 dummy package that uses declarations available at a-tags.ads
16672 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
16673 "constant access" and "aliased [constant] access" when not compiling
16675 Suppress Ada 2005 keyword warning if -gnatwY used
16676 (P_Identifier_Declarations): Add support for object declarations with
16677 access definitions.
16678 (Private_Extension_Declaration): Complete the documentation
16679 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
16680 attribute in case of private extension declaration
16681 (P_Type_Declaration): Mark as "abstract" the type declarations
16682 corresponding with protected, synchronized and task interfaces
16683 (P_Declarative_Items): "not" and "overriding" are overriding indicators
16684 for a subprogram or instance declaration.
16686 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
16687 instantiation that is a dispatching operation has controlling access
16688 parameters that are null excluding.
16689 Save and restore Ada_Version_Explicit, for implementation of AI-362
16690 (Validate_Derived_Type_Instance): Add check for abstract interface
16692 (Analyze_Formal_Package): Establish Instantiation source for the copy of
16693 the generic that is created to represent the formal package.
16694 (Analyze_Package_Instantiation): Instantiate body immediately if the
16695 package is a predefined unit that contains inlined subprograms, and
16696 we are compiling for a Configurable_Run_Time.
16697 (Instantiate_Formal_Subprogram): Indicate that null default subprogram
16698 If the program has a null default, generate an empty body for it.
16700 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
16701 error message condition, null procedures are correctly detected now.
16702 (New_Overloaded_Entity): Bypass trivial overriding indicator check
16703 for subprograms in the context of protected types. Instead, the
16704 indicator is examined in Sem_Ch9 while analysing the subprogram
16706 (Check_Overriding_Indicator): Check consistency of overriding indicator
16707 on subprogram stubs as well.
16708 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
16710 (Analize_Subprogram_Specification): When analyzing a subprogram in which
16711 the type of the first formal is a concurrent type, replace this type
16712 by the corresponding record type.
16713 (Analyze_Subprogram_Body): Undo the previous work.
16714 (Analyze_Procedure_Call): If the call has the form Object.Op, the
16715 analysis of the prefix ends up analyzing the call itself, after which
16717 (Has_Interface_Formals): New subprogram subsidiary to analyze
16718 subprogram_specification that returns true if some non
16719 class-wide interface subprogram is found
16720 (New_Overloaded_Entity): Modified to give support to abstract
16722 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
16723 access to subprograms must be recursive.
16724 (Is_Unchecked_Conversion): Improve the test that recognizes
16725 instantiations of Unchecked_Conversion, and allows them in bodies that
16726 are to be inlined by the front-end. When the body comes from an
16727 instantiation, a reference to Unchecked_Conversion will be an
16728 Expanded_Name, even though the body has not been analyzed yet.
16729 Replace Is_Overriding and Not_Overriding in subprogram_indication with
16730 Must_Override and Must_Not_Override, to better express intent of AI.
16731 (Analyze_Subprogram_Body): If an overriding indicator is given, check
16732 that it is consistent with the overrinding status of the subprogram
16734 (Analyze_Subprogram_Declaration): Indicate that a null procedure is
16736 If the subprogram is a null procedure, indicate that it does not need
16739 * sem_disp.adb (Check_Controlling_Type): Give support to entities
16740 available through limited-with clauses.
16741 (Check_Dispatching_Operation): A stub acts like a body, and therefore is
16742 allowed as the last primitive of a tagged type if it has no previous
16744 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
16745 to give support to abstract interface types
16747 * sem_res.adb (Valid_Conversion): Perform an accessibility level check
16748 in the case where the target type is an anonymous access type of an
16749 object or component (that is, when Is_Local_Anonymous_Access is true).
16750 Prevent the special checks for conversions of access discriminants in
16751 the case where the discriminant belongs to a nonlimited type, since
16752 such discriminants have their accessibility level defined in the same
16753 way as a normal component of an anonymous access type.
16754 (Resolve_Allocator): When an allocator's designated type is a class-wide
16755 type, check that the accessibility level of type given in the
16756 allocator's expression or subtype indication is not statically deeper
16757 than the level of the allocator's access type.
16758 (Check_Discriminant_Use): Diagnose discriminant given by an expanded
16759 name in a discriminant constraint of a record component.
16760 (Resolve_Explicit_Dereference): Do not check whether the type is
16761 incomplete when the dereference is a use of an access discriminant in
16762 an initialization procedure.
16763 (Resolve_Type_Conversion): Handle conversions to abstract interface
16765 (Valid_Tagged_Conversion): The conversion of a tagged type to an
16766 abstract interface type is always valid.
16767 (Valid_Conversion): Modified to give support to abstract interface types
16768 (Resolve_Actuals): Enable full error reporting on view conversions
16769 between unrelated by_reference array types.
16770 The rule for view conversions of arrays with aliased components is
16771 weakened in Ada 2005.
16772 Call to obsolescent subprogram is now considered to be a violation of
16773 pragma Restrictions (No_Obsolescent_Features).
16774 (Check_Direct_Boolean_Operator): If the boolean operation has been
16775 constant-folded, there is nothing to check.
16776 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
16777 check on possible violation of restriction No_Direct_Boolean_Operators
16778 until after expansion of operands, to prevent spurious errors when
16779 operation is constant-folded.
16781 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
16782 Has_Compatible_Type): Modified to give support to abstract interface
16784 (Interface_Present_In_Ancestor): New function to theck if some ancestor
16785 of a given type implements a given interface
16787 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
16788 prefix is a parameterless function that returns an access_to_procedure.
16789 (Transform_Object_Operation): Handle properly function calls of the
16790 form Obj.Op (X), which prior to analysis appear as indexed components.
16791 (Analyze_One_Call): Complete the error notification to help new Ada
16793 (Analyze_Allocator): For an allocator without an initial value, where
16794 the designated type has a constrained partial view, a discriminant
16795 constraint is illegal.
16797 2005-06-14 Robert Dewar <dewar@adacore.com>
16799 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
16800 do with treatment of Set_Col when positioned at end of line character.
16802 2005-06-14 Robert Dewar <dewar@adacore.com>
16804 * atree.adb: (Elist*): Protect against uninitialized field
16806 2005-06-14 Ed Schonberg <schonberg@adacore.com>
16808 * checks.adb (Install_Null_Excluding_Check): Do not generate checks
16809 for an attribute reference that returns an access type.
16810 (Apply_Discriminant_Check): No need for check if (designated) type has
16811 constrained partial view.
16813 (Apply_Float_Conversion_Check): Generate a short-circuit expression for
16814 both bound checks, rather than a conjunction.
16815 (Insert_Valid_Check): If the expression is an actual that is an indexed
16816 component of a bit-packed array, force expansion of the packed element
16817 reference, because it is specifically inhibited elsewhere.
16819 2005-06-14 Vincent Celier <celier@adacore.com>
16821 * clean.adb (Clean_Project): Correctly delete executable specified as
16822 absolute path names.
16824 * make.adb (Gnatmake): Allow relative executable path names with
16825 directory information even when project files are used.
16826 (Change_To_Object_Directory): Fail gracefully when unable to change
16827 current working directory to object directory of a project.
16828 (Gnatmake): Remove exception handler that could no longer be exercized
16829 (Compile_Sources.Compile): Use deep copies of arguments, as some of them
16830 may be deallocated by Normalize_Arguments.
16831 (Collect_Arguments): Eliminate empty arguments
16833 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
16834 and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
16835 (Check_Project): Return False when Project is No_Project. Return True
16836 when All_Projects is True.
16837 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
16838 All_Projects to True.
16841 2005-06-14 Ed Schonberg <schonberg@adacore.com>
16842 Javier Miranda <miranda@adacore.com>
16843 Thomas Quinot <quinot@adacore.com>
16844 Robert Dewar <dewar@adacore.com>
16845 Hristian Kirtchev <kirtchev@adacore.com>
16846 Gary Dismukes <dismukes@adacore.com>
16848 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
16849 anonymous access types, to indicate that the accessibility level of
16850 the type is determined by that of the enclosing declaration.
16851 (Has_Persistent_BSS): New flag
16852 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
16853 of this attribute with functions.
16854 (Is_Primitive_Wrapper): Remove the barrier.
16855 (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
16856 Has_Specified_Stream_Read, Has_Specified_Stream_Write):
16858 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
16859 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
16861 (Is_Pure_Unit_Access_Type): New flag
16862 (Abstract_Interfaces): Complete the assertion to cover all usages.
16863 (Set_Is_Interface): Complete the assertion to cover all usages.
16864 (Is_Primitive_Wrapper): New attribute.
16865 (Is_Obsolescent): Now applies to all entities (though it is only set
16866 for subprograms currently)
16867 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
16868 which solves various problems concerning access subtypes.
16869 (Has_Persistent_BSS): New flag
16870 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
16871 Remove these subprograms because this attribute is currently
16874 Has_Specified_Stream_Input (Flag190)
16875 Has_Specified_Stream_Output (Flag191)
16876 Has_Specified_Stream_Read (Flag192)
16877 Has_Specified_Stream_Write (Flag193)
16878 Present in all type and subtype entities. Set for a given view if the
16879 corresponding stream-oriented attribute has been defined by an
16880 attribute definition clause. When such a clause occurs, a TSS is set
16881 on the underlying full view; the flags are used to track visibility of
16882 the attribute definition clause for partial or incomplete views.
16883 (Is_Pure_Unit_Access_Type): New flag
16884 Clarify use of Is_Internal.
16885 (Is_Primitive_Wrapper): New attribute present in primitive subprograms
16886 internally generated to wrap the invocation of tasks and protected
16887 types that implement interfaces.
16888 (Implementation_Base_Type): Documentation correction
16889 (Is_Obsolescent): Now applies to all entities (though it is only set
16890 for subprograms currently)
16891 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
16892 which solves various problems concerning access subtypes.
16894 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
16895 for examined parameters. Identify unequal parameter list lengths as
16896 non-conformant parameters.
16897 (Overriding_Possible): Do not check for "All" qualifier in declaration
16898 of controlling access parameter, following prescription of AI-404.
16899 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
16900 that build the procedure body that wraps an entry invocation
16901 (Build_Corresponding_Record, Build_Protected_Sub_Specification,
16902 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
16903 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
16904 give support to abstract interface types
16906 * freeze.adb (Freeze_Entity): Issue error message if
16907 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
16908 type has no storage pool (Ada 2005) AI-366.
16909 Also modified to give support to abstract interface types
16910 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
16911 Inline_Always pragma.
16913 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
16914 now begin an entry declaration.
16915 (P_Entry_Or_Subprogram_With_Indicator): New procedure in
16916 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
16917 a subprogram declaration preceded by an overriding indicator.
16918 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
16919 declarations or subprogram declarations preceded by reserved words
16920 "not" or "overriding".
16921 (P_Entry_Declaration): Update comment. Parse and check overriding
16922 indicator, set semantic flags of entry declarations.
16923 (P_Task): New error message in case of private applied
16924 to a task type declaration.
16925 (P_Protected): New error message in case of private applied
16926 to a task type declaration.
16928 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
16929 in which the full view of a type implementing an interface is a
16931 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
16932 Declare_Inherited_Private_Subprograms): If an explicit operation
16933 overrides an operation that is inherited in the private part, mark the
16934 explicit one as overriding, to enable overriding indicator checks.
16935 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
16936 full view to partial view, to simplify handling in back-end.
16938 * sprint.adb: Print interface lists where needed: derived types,
16939 protected types, task types.
16940 output "is null" for null procedures. Part of implementation of
16942 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
16943 relaxation of rules for access types in pure, shared passive partitions.
16945 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
16946 first read discriminants into temporary objects, performing checks on
16947 the read values, then possibly performing discriminant checks on the
16948 actual (if it is constrained), and only finally reading the components
16949 into a constrained temporary object.
16950 (Build_Elementary_Input_Call): Adjust the specific circuitry for the
16951 case of reading discriminants of a mutable record type to recognize
16952 the new form of the code generated by
16953 Build_Mutable_Record_Read_Procedure.
16955 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
16956 of a simple call to Make_TSS_Name.
16957 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
16958 buffer, in order for Is_TSS to work correctly on local TSS names.
16960 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
16961 Is_Local_Anonymous_Access to check legaliy of attributes in the
16962 context of access components and stand-alone access objects.
16963 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
16964 treated as available for a limited private type if there is an
16965 attribute_definition_clause that applies to its full view, but not in
16966 other cases where the attribute is available for the full view
16967 (specifically, the sole fact that the full view is non-limited does not
16968 make the attribute available for the partial view).
16969 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
16970 non-overloaded intrinsic subprogram.
16971 (Check_Stream_Attribute): Reject an attribute reference for an
16972 unavailable stream attribute even if the prefix is not a limited type
16973 (case of a 'Input attribute reference for an abstract, non-classwide
16975 (Stream_Attribute_Available): New function to determine whether a stream
16976 attribute is available at a place.
16977 (Check_Attribute): Use Stream_Attribute_Available instead of just
16978 testing for TSS presence on the implementation base type.
16979 (Analyze_Attribute): Modified to give support to task interfaces.
16980 (Analyze_Access_Attribute): Add error check for use of an Access (or
16981 Unrestricted_Access) attribute with a subprogram marked as
16983 (Analyze_Attribute, case Attribute_Address): Add error check for use of
16984 an Address attribute with a subprogram marked as Inline_Always.
16985 Update Eval_Attribute to handle new value of Width from AI-395
16987 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
16988 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
16989 Factor common code across the stream-oriented attribute circcuits into
16990 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
16991 processing is functionally identical to the previous duplicated one,
16992 except that an expression that denotes an abstract subprogram will now
16993 be rejected, as mandated by AI-195 item 5.
16995 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
16996 Is_Local_Anonymous_Access to apply accessibility checks to access
16997 components and stand-alone access objects.
16998 (Has_Discriminant_Dependent_Constraint): Moved to spec for use
17000 (Is_Potentially_Persistent_Type): New function
17001 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
17002 a heap-object whose type has a constrained partial view, the object is
17003 unconstrained and the component may depend on a discriminant, making its
17006 * sinfo.ads, sinfo.adb
17007 (Must_Not_Override): Flag applicable to N_Entry_Declaration.
17008 (Must_Override): Flag applicable to N_Entry_Declaration.
17009 Indicate that interface_list can appear in single task and single
17010 protected declarations.
17011 Replace Is_Overriding and Not_Overriding with Must_Override and
17012 Must_Not_Override, to better express intent of AI.
17013 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
17014 of an overriding indicator in a subprogram or instance.
17015 Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
17016 Add the overriding indicator [[not] overriding] construct to the
17017 following grammar productions:
17019 GENERIC_INSTANTIATION
17020 SUBPROGRAM_SPECIFICATION
17022 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
17023 can start with an overriding indicator.
17025 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
17026 flags accordingly on subrogram specifications or instances.
17029 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
17030 overriding_indicator, if present, is consistent with status of spec.
17031 Improve error message for null-excluding checks on controlling access
17033 (Check_In_Previous_With_Clause): Protect the frontend against
17034 previously reported critical errors in the context clauses.
17035 Save and restore Ada_Version_Explicit, for implementation of AI-362
17036 (Analyze_Subprogram_Renaming): If the new entity is a dispatching
17037 operation verify that controlling formals of the renamed entity that
17038 are access parameters are explicitly non-null.
17039 (Find_Expanded_Name): Improve error message when prefix is an illegal
17040 reference to a private child unit.
17042 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
17043 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
17044 Rewrite to correspond to new wide character names in AI-395
17046 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
17047 default procedures.
17049 2005-06-14 Ed Schonberg <schonberg@adacore.com>
17050 Robert Dewar <dewar@adacore.com>
17052 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
17053 code, not on the bodies of predefined operations, to cut down on
17056 2005-06-14 Ed Schonberg <schonberg@adacore.com>
17058 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
17059 be expanded in place. The size computation does not require a
17060 subtraction, which would raise an exception on a compiler built with
17061 assertions when the upper bound is Integer'first.
17062 (Flatten): For an array of composite components, take into account the
17063 size of the components to determine whether it is safe to expand the
17064 array into a purely positional representation.
17066 2005-06-14 Thomas Quinot <quinot@adacore.com>
17068 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
17069 denoting a formal parameter into account.
17071 2005-06-14 Ed Schonberg <schonberg@adacore.com>
17073 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
17074 the entry_call alternative of a conditional entry call, wrap the
17075 conditional entry call itself.
17077 2005-06-14 Nicolas Setton <setton@adacore.com>
17078 Ed Schonberg <schonberg@adacore.com>
17080 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
17081 the "simple_choice" member in a variant record, in accordance with the
17082 description in the package spec: the information output for a constant
17083 should be "S number", not "SS number".
17084 (Get_Encoded_Name): Return at once if not generating code. Avoids name
17085 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
17087 2005-06-14 Thomas Quinot <quinot@adacore.com>
17089 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
17090 RACW without any primitives, do not generate the if statement for
17091 dispatching by name in the PolyORB/DSA case, as it would be malformed
17092 (it would have an Elsif_Parts list that is not No_List, but with a
17095 2005-06-14 Robert Dewar <dewar@adacore.com>
17097 * exp_intr.adb, par-ch5.adb: Minor fix to error message text
17099 2005-06-14 Jose Ruiz <ruiz@adacore.com>
17101 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
17102 can determine whether pragma Suppress_Exception_Locations is in effect.
17104 * utils2.c (build_call_raise): Do not pass the file name to the
17105 exception handler if pragma Suppress_Exception_Locations is in effect.
17106 (build_allocator): Add and process arg IGNORE_INIT_TYPE.
17108 2005-06-14 Emmanuel Briot <briot@adacore.com>
17110 * g-debpoo.adb (Deallocate, Dereference): Improve output.
17112 2005-06-14 Nicolas Roche <roche@adacore.com>
17114 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
17116 (Next_Level): Fix minor bug in handling of ../dir case
17117 (Read): Add dir separator to Directory name so that "" is understood as
17120 2005-06-14 Pascal Obry <obry@adacore.com>
17122 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
17123 releasing the items.
17125 2005-06-14 Vincent Celier <celier@adacore.com>
17126 Cyrille Comar <comar@adacore.com>
17128 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
17129 with output file descriptor and with output file name.
17130 (Dup, Dup2): Now global procedures as they are used by two subprograms
17131 (Copy): Allocate the 200K buffer on the heap rather than on the stack.
17133 2005-06-14 Thomas Quinot <quinot@adacore.com>
17136 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
17138 (Create_Selector): Bind listening socket used to create the signalling
17139 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
17140 Set listen backlog to 1 to ensure that we detect socket theft by a
17141 failure of our own connect(2) call.
17142 (Check_Selector): Improve documentation of the selector mechanism.
17143 (Broadcast_Inet_Addr): New constant.
17145 2005-06-14 Gary Dismukes <dismukes@adacore.com>
17147 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
17148 type which turns out to be an incomplete and incorrect fix.
17149 (Layout_Array_Type): Use Underlying_Type when checking whether the scope
17150 of the type is declared in a record (for determination of insertion
17152 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
17153 a private type and ensure that the primary entity is used for the type
17154 of the newly created function's V formal by taking the Etype of the
17157 2005-06-14 Javier Miranda <miranda@adacore.com>
17158 Jose Ruiz <ruiz@adacore.com>
17159 Robert Dewar <dewar@adacore.com>
17160 Ed Schonberg <schonberg@adacore.com>
17162 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
17163 that indicates if we are parsing a compilation unit found in a
17164 limited-with clause.
17165 It is use to avoid the circularity check.
17167 * par.ads, par.adb (Par): Addition of a new parameter to indicate if
17168 we are parsing a compilation unit found in a limited-with clause. This
17169 is use to avoid the circularity check.
17171 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
17172 unit as a consequence of parsing a limited-with clause. This is used
17173 to avoid the circularity check.
17175 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
17176 (Analyze_Context): Limited-with clauses are now allowed
17177 in more compilation units.
17178 (Analyze_Subunit_Context, Check_Parent): Protect the frontend
17179 againts previously reported critical errors in context clauses
17180 (Install_Limited_Withed_Unit): Code cleanup plus static detection
17181 of two further errors: renamed subprograms and renamed packages
17182 are not allowed in limited with clauses.
17183 (Install_Siblings): Do not install private_with_clauses on the package
17184 declaration for a non-private child unit.
17185 (Re_Install_Parents): When a parent of the subunit is reinstalled,
17186 reset visibility of child units properly.
17187 (Install_Withed_Unit): When a child unit appears in a with_clause of its
17188 parent, it is immediately visible.
17190 2005-06-14 Ed Schonberg <schonberg@adacore.com>
17191 Emmanuel Briot <briot@adacore.com>
17193 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
17194 declared within an inlined body as referenced, to prevent spurious
17196 (Output_One_Ref): If an entity renames an array component, indicate in
17197 the ALI file that this aliases (renames) the array. Capture as well
17198 function renamings that rename predefined operations.
17199 Add information about generic parent for package and subprogram
17201 (Get_Type_Reference): For a subtype that is the renaming of an actual in
17202 an instantiation, use the first_subtype to ensure that we don't generate
17203 cross-reference information for internal types.
17204 For objects and parameters of a generic private type, retain the '*'
17205 indicator to distinguish such an entity from its type.
17207 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
17208 to store information about instantiated entities.
17210 * ali.adb (Scan_ALI): Add support for parsing the reference to the
17213 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
17214 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
17217 2005-06-10 Doug Rupp <rupp@adacore.com>
17218 Arnaud Charlet <charlet@adacore.com>
17219 Olivier Hainque <hainque@adacore.com>
17220 Jose Ruiz <ruiz@adacore.com>
17222 * Make-lang.in: Add initialize.o when needed.
17223 Remove obsolete references to RT_FLAGS.
17224 Add missing dependencies for sdefault.o
17226 * initialize.c: New file.
17228 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
17229 [VMS] cond_signal_table: Fix problem in declaration.
17230 [VMS] __gnat_error_handler: rewrite.
17231 Move all __gnat_initialize() routines to initialize.c
17232 Specialize the former "hpux" section to "hppa hpux", as this is what the
17233 section really is here for and we now have other hpux ports that need
17234 different contents.
17235 (__gnat_adjust_context_for_raise) i386-linux: First version of this
17236 function for this target. Adjust PC by one in the machine context. This
17237 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
17238 it is more reliable to do that in the signal handler itself.
17239 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
17240 flags, so that the handler is passed the context structure to adjust
17241 prior to the raise.
17242 (__gnat_error_handler) i386-linux: Adjust the signature to match what a
17243 SA_SIGINFO sigaction should look like. Call
17244 __gnat_adjust_context_for_raise before actually raising. Cleanup unused
17245 Machine_State_Operations stuff.
17246 Add conditional code so that the x86_64 is also supported.
17248 2005-06-14 Pascal Obry <obry@adacore.com>
17250 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
17253 2005-06-14 Robert Dewar <dewar@adacore.com>
17255 * opt.ads, opt.adb: New flags for persistent_bss mode
17256 Add Ada_Version_Explicit, for implementation of AI-362
17257 Add Assertions_Enabled_Config and associated handling
17258 Needed since setting can be changed with Assertion_Policy pragma
17259 Add new flag Warn_On_Ada_2005_Compatibility
17261 * switch-c.adb: Recognize -gnatwy/Y
17262 Set Ada_Version_Explicit, for implementation of AI-362
17263 The -gnatg switch now includes -gnatyu
17265 * usage.adb: Add -gnatwy/Y
17266 Remove wrong asterisk on -gnatwX line
17267 Add line for -gnatyu switch
17269 2005-06-14 Vincent Celier <celier@adacore.com>
17271 * osint.adb (Add_Default_Search_Dirs): Put source and object
17272 directories of project files before directories coming from
17273 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
17275 2005-06-14 Robert Dewar <dewar@adacore.com>
17278 * par-ch2.adb (Scan_Pragma_Argument): New procedure
17279 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
17281 2005-06-14 Vincent Celier <celier@adacore.com>
17283 * prep.adb (Preprocess): Ignore error when scanning the first token of
17286 2005-06-14 Vincent Celier <celier@adacore.com>
17288 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
17289 (Check_Stand_Alone_Library): If the specified reference symbol file does
17290 not exist, only issue a warning when the symbol policy is not
17291 Controlled. And, when symbol policy is Compliant, set the symbol
17292 policy to Autonomous.
17294 2005-06-14 Vincent Celier <celier@adacore.com>
17296 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
17297 when the project file in a with clause is not the last one, that is the
17298 project file name is followed by a comma.
17299 * prj-pp.adb: (First_With_In_List): New Boolean global variable
17300 (Print): Issue list of project files separated by commas in with clauses
17301 according to the values returned by Is_Not_Last_In_List.
17302 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
17303 (Set_Is_Not_Last_In_List): New procedure
17305 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
17307 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
17309 2005-06-14 Robert Dewar <dewar@adacore.com>
17311 * scng.adb: Add call to new Check_EOF routine
17312 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
17313 Add some comments regarding wide character handling
17315 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
17317 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
17319 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
17320 characters are now considered graphic characters and hence yield false
17323 * nmake.adt: Modify header so that xnmake does not generate output
17324 files with multiple blank lines.
17326 * treeprs.adt: Remove a blank line so that output from xtreeprs does
17327 not have an extra blank line
17329 2005-06-14 Gary Dismukes <dismukes@adacore.com>
17331 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
17332 expression when the component type is an anonymous access type to
17333 ensure that appropriate accessibility checks are done.
17335 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
17336 expression of an assignment when the target object is of an anonymous
17337 access type. This ensures that required accessibility checks are done.
17338 (One_Bound): Move the check for type Universal_Integer to
17340 (Process_Bounds): Check whether the type of the preanalyzed range is
17341 Universal_Integer, and in that case set Typ to Integer_Type prior
17342 to setting the type of the original range and the calls to One_Bound.
17344 2005-06-14 Ed Schonberg <schonberg@adacore.com>
17346 * sem_case.adb (Expand_Others_Choice): Improve warning.
17348 2005-06-14 Ed Schonberg <schonberg@adacore.com>
17350 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
17351 constraint of full view if present, when other type is discriminated.
17352 (Eval_Relational_Op): Recognize tests of pointer values against Null,
17353 when the pointer is known to be non-null, and emit appropriate warning.
17355 2005-06-14 Robert Dewar <dewar@adacore.com>
17356 Ed Schonberg <schonberg@adacore.com>
17359 * sem_prag.adb: Implement pragma Persistent_BSS
17360 Remove obsolete pragma Persistent_Data, Persistent_Object
17361 Set Ada_Version_Explicit, for implementation of AI-362
17362 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
17363 Add processing for pragma Pure_05 and Preelaborate_05
17364 Add processing for Assertion_Policy pragma
17365 Add pragma identifiers for Assert
17366 (Analyze_Pragma, case Assert): Check number of arguments
17367 (Process_Inline): Additional guard against an illegal program, where the
17368 argument of the pragma is undefined, and warnings on redundant
17369 constructs are enabled.
17370 (Analyze_Pragma, case Obsolescent): Allow an optional second argument
17371 Ada_05 to this pragma, specifying that the pragma is only active in
17373 (Check_Arg_Order): New procedure
17374 Add appropriate calls to this procedure throughout
17375 Also throughout, check entity name before doing any other checks
17377 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
17378 Remove obsolete pragma Persistent_Data, Persistent_Object
17379 Add entries for pragma Pure_05 and Preelaborate_05
17380 Add entries for Assertion_Policy pragma and associated names
17381 Add some names for pragma argument processing
17383 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
17385 2005-06-14 Ed Schonberg <schonberg@adacore.com>
17387 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
17388 appears within a negation (either from source or as a rewriting of
17389 inequality) adjust text of warning accordingly.
17391 2005-06-14 Thomas Quinot <quinot@adacore.com>
17393 * s-strxdr.adb: Follow AI95-00132
17395 2005-06-14 Arnaud Charlet <charlet@adacore.com>
17397 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
17399 2005-06-14 Arnaud Charlet <charlet@adacore.com>
17400 Jose Ruiz <ruiz@adacore.com>
17402 * s-tposen.adb, s-tpobop.adb
17403 (Exceptional_Complete_Rendezvous): Save the occurrence and not only
17405 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
17406 there is no violation of the Max_Entry_Queue_Length restriction (if it
17407 has been set); Program_Error is raised otherwise.
17408 (Requeue_Call): Before requeuing the task on the target entry queue we
17409 check that there is no violation of the Max_Entry_Queue_Length
17410 restriction (if it has been set); Program_Error is raised otherwise.
17412 2005-06-14 Robert Dewar <dewar@adacore.com>
17414 * styleg.adb: Fix several remaining problems in -gnatyu switch
17415 Blank line count not reset at start
17416 Scanning outside source buffer in some cases
17417 Confusing message for blanks at end of file
17418 Non-empty blank lines not recognized
17420 * nmake.adt: Modify header so that xnmake does not generate output
17421 files with multiple blank lines.
17423 * treeprs.adt: Remove a blank line so that output from xtreeprs does
17424 not have an extra blank line
17426 2005-06-14 Sergey Rybin <rybin@adacore.com>
17428 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
17430 2005-06-14 Doug Rupp <rupp@adacore.com>
17431 Vincent Celier <celier@adacore.com>
17433 * vms_conv.ads, vms_conv.adb: Remove "Library" command.
17436 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17437 Remove "Library" command.
17438 Change keyword for style check -gnatyd from NOCRLF to
17440 Remove useless second style check keyword NONE
17441 Remove help documentation for inexistent style check keyword
17443 Add help documentation for style check keywords DOS_LINE_ENDINGS,
17444 UNNECESSARY_BLANK_LINES and XTRA_PARENS
17445 Add UNNECESSARY_BLANK_LINES for -gnatyu
17446 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
17448 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
17450 2005-06-14 Vincent Celier <celier@adacore.com>
17452 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
17453 gprmake was invoked with -d.
17454 (Compile_Sources): If -d was used, output the "completed ..." message
17455 for each compilation.
17456 (Scan_Arg): Recognize new switch -d
17457 When -c and at least one main is specified, set
17458 Unique_Compile to True to guarantee that no other sources will be
17461 2005-06-14 Matthew Heaney <heaney@adacore.com>
17463 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
17464 * a-swuwha.ads, a-swuwha.adb: New files
17466 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
17467 * a-szuzha.ads, a-szuzha.adb: New files.
17469 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
17470 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
17471 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
17472 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
17473 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
17474 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
17475 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
17476 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
17477 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
17478 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
17481 2005-06-10 Eric Botcazou <ebotcazou@adacore.com>
17482 Olivier Hainque <hainque@adacore.com>
17483 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17484 Pascal Obry <obry@adacore.com>
17486 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
17488 * trans.c (call_to_gnu): Issue a warning for users of Starlet when
17489 making a temporary around a procedure call because of non-addressable
17491 (process_freeze_entity): If entity is a private type, capture size
17492 information that may have been computed for the full view.
17493 (tree_transform, case N_Allocator): If have initializing expression,
17494 check type for Has_Constrained_Partial_View and pass that to
17496 (tree_transform, case N_Return_Statement): Pass extra arg to
17499 * decl.c (annotate_value): Remove early return if -gnatR is not
17501 (gnat_to_gnu_field): Don't make a packable type for a component clause
17502 if the position is byte aligned, the field is aliased, and the clause
17503 size isn't a multiple of the packable alignment. It serves no useful
17504 purpose packing-wise and would be rejected later on.
17505 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
17508 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
17509 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
17511 (create_concat_name): Idem.
17513 2005-06-10 Robert Dewar <dewar@adacore.com>
17514 Eric Botcazou <ebotcazou@adacore.com>
17515 Ben Brosgol <brosgol@adacore.com>
17516 Cyrille Comar <comar@adacore.com>
17517 Sergey Rybin <rybin@adacore.com>
17518 Pascal Obry <obry@adacore.com>
17520 * gnat_rm.texi: Add documentation for pragma Persistent_BSS
17521 Document second argument (Ada_05) of pragma Obsolescent
17522 Add note that call to subprogram marked with pragma Obsolescent
17523 is now considered to be a violation of program Restrictions
17524 (No_Obsolescent_Features).
17525 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
17526 that only machine-dependent attributes are supported.
17529 Commented out menu lines and empty section for gnatclean examples
17531 Fix some over long lines
17532 Clarify and enhance documentation of ADA_PROJECT_PATH.
17533 Rework section 2.11.2(3) about linking with a non-GNU compiler.
17534 Mention new switch -fcallgraph-info.
17535 Mention new switch -fstack-usage.
17536 For gnatpp, replace '-notab' with '-N' and add this option to Index
17537 Corrected VMS example.
17538 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
17540 Add documentation for -gnatyu switch (unnecessary blank lines)
17541 Document new switch -U for GNAT PRETTY and GNAT METRIC
17542 Add note about Stdcall being handled as C convention on non Windows OS.
17543 Remove some junk typo in description of gnatbind -S switch
17544 Remove reference to Extensions_Allowed pragma
17545 Document the new order of the directories to be searched (source and
17546 object directories of project files before directories in ADA_*_PATH
17547 environment variables.
17549 * g-trasym.ads: Document that IRIX is supported
17551 2005-06-10 Arnaud Charlet <charlet@adacore.com>
17553 * Makefile.in: Add initialize.o when needed.
17554 Adapt to new VMS package body Symbols and subunits
17555 No specialized version of a-sytaco is needed for VxWorks.
17557 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
17558 * a-zchara.ads, a-widcha.ads: New files.
17560 * system-hpux-ia64.ads: New file.
17562 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
17563 is imported from the VxWorks kernel.
17565 2005-06-14 Robert Dewar <dewar@adacore.com>
17567 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
17568 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
17569 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
17570 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
17571 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
17572 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
17573 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
17574 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
17575 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
17576 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
17577 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
17578 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
17580 2005-06-14 Thomas Quinot <quinot@adacore.com>
17582 * xeinfo.adb: Fix typo in comment
17584 2005-06-14 Javier Miranda <miranda@adacore.com>
17586 * repinfo.ads: Fix typo in comment
17588 2005-06-14 Gary Dismukes <dismukes@adacore.com>
17590 * s-finimp.adb (Parent_Tag): Delete this imported function (function
17591 Parent_Tag is now in the visible part of Ada.Tags).
17592 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
17593 using imported function.
17595 2005-06-14 Bernard Banner <banner@adacore.com>
17597 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
17598 also apply for handling support for VxSim 653.
17600 2005-06-14 Eric Botcazou <ebotcazou@adacore.com>
17602 * xsnames.adb: Add automatic generation of snames.h.
17604 2005-06-14 Thomas Quinot <quinot@adacore.com>
17606 * gen-soccon.c: Add IP_MULTICAST_IF constant
17607 Minor reformatting and adjustments to prevent warnings.
17609 2005-06-14 Pascal Obry <obry@adacore.com>
17611 * seh_init.c: Do not include <sys/stat.h>. This is not needed.
17613 2005-06-03 Andrew Pinski <pinskia@physics.uc.edu>
17615 * trans.c (gnat_gimplify_expr): Call
17616 recompute_tree_invarant_for_addr_expr when we change
17617 the operand of the ADDR_EXPR.
17619 2005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17621 * misc.c: Don't include errors.h.
17623 2005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
17625 * raise.c (db): Add ATTRIBUTE_PRINTF_2.
17627 2005-05-29 Kazu Hirata <kazu@cs.umass.edu>
17629 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
17631 * gnat_rm.texi, gnat_ugn.texi: Fix typos.
17633 2005-05-16 Nathanael Nerode <neroden@gcc.gnu.org>
17636 * Makefile.in: Make TGT_LIB behave correctly.
17638 2005-04-23 DJ Delorie <dj@redhat.com>
17640 * misc.c: Adjust warning() callers.
17642 2005-04-16 Laurent GUERBY <laurent@guerby.net>
17645 * a-nudira.adb (Value): Check for valid string.
17646 * a-nuflra.adb (Value): Likewise.
17648 2005-04-11 Richard Sandiford <rsandifo@redhat.com>
17650 * lang.opt: Refer to the GCC internals documentation instead of c.opt.
17652 2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
17654 * adaint.c, init.c, tracebak.c: Fix comment typos.
17655 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
17657 2005-04-07 Laurent GUERBY <laurent@guerby.net>
17658 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
17660 * Makefile.in: Add make ifeq define for hppa linux tasking support.
17661 * system-hpux.ads: Define Signed_Zeros to be True.
17662 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
17664 2005-04-01 Kazu Hirata <kazu@cs.umass.edu>
17666 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
17667 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
17670 2005-03-30 Tom Tromey <tromey@redhat.com>
17672 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
17674 2005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
17676 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
17678 2005-03-29 Robert Dewar <dewar@adacore.com>
17680 * sem_res.adb (Resolve_Real_Literal): Generate warning if static
17681 fixed-point expression has value that is not a multiple of the Small
17684 * opt.ads (Warn_On_Bad_Fixed_Value): New flag
17686 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
17689 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
17691 2005-03-29 Vincent Celier <celier@adacore.com>
17693 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
17694 (Build_Dynamic_Library.Version_String): Return the empty string when
17695 Lib_Version is empty or when the symbol policy is not Autonomous.
17697 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
17698 a symbol is not in the reference symbol file, increase the Major ID
17699 and set the Minor ID to 0.
17700 Use gsmatch=lequal instead of gsmatch=equal
17702 2005-03-29 Doug Rupp <rupp@adacore.com>
17704 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
17705 name and translate.
17707 2005-03-29 Javier Miranda <miranda@adacore.com>
17709 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
17710 (Inherit_DT): The first formal has been redefined as a Tag.
17711 This allows us the removal of the subprogram Get_TSD.
17712 (TSD): Replace the call to Get_TSD by the actual code.
17714 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
17715 (Make_DT): Upgrade the call to Inherit_TSD according to the
17716 new interface: the first formal is now a Tag.
17718 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
17719 redefined as a Tag.
17720 This change allows us to remove the subprogram Get_TSD.
17721 (CPP_Get_TSD): Subprogram removed.
17722 (TSD): Replace the call to CPP_Get_TSD by the actual code.
17724 * rtsfind.ads: Remove support to call the run-time
17727 2005-03-29 Robert Dewar <dewar@adacore.com>
17729 * errutil.adb, errout.adb:
17730 Minor comment updates on Line_Terminator references
17732 * par-ch10.adb: Add ??? comment about line terminator
17734 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
17735 (check dos line terminator).
17736 (Check_Line_Max_Length): New procedure, split off from the existing
17737 Check_Line_Terminator routine. Separating this out allows -gnatyf to
17738 be properly recognized.
17740 * styleg.adb: Add ??? comment for line terminator reference
17742 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
17743 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
17745 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
17746 (check dos line terminator).
17747 (Check_Line_Max_Length): New procedure, split off from the existing
17748 Check_Line_Terminator routine. Separating this out allows -gnatyf to
17749 be properly recognized.
17751 * stylesw.ads, stylesw.adb:
17752 Add handling for new -gnatyd switch (check dos line terminator)
17754 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
17755 Recognize -gnatwb/-gnatwB switches
17756 Include Warn_On_Bad_Fixed_Value for -gnatg
17759 Add line for new -gnatyd switch (check dos line terminator)
17761 * usage.adb: Add lines for -gnatwb/-gnatwB
17763 * vms_data.ads: Add entry for NOCRLF (-gnatyd)
17765 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
17767 * gnat_ugn.texi: Fix overlong lines
17768 Document new -gnatyd switch
17769 Document new -gnatwb/-gnatwB switches
17771 2005-03-29 Ed Schonberg <schonberg@adacore.com>
17773 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
17774 order to retrieve the component list of the type, before examining
17775 individual components.
17777 * sem_type.adb (Covers): Types are compatible if one is the base type
17778 of the other, even though their base types might differ when private
17779 views are involved.
17781 2005-03-29 Thomas Quinot <quinot@adacore.com>
17783 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
17784 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
17785 of using Set_Renaming_TSS. This ensures that the TSS bodies are not
17786 analyzed if expansion is disabled (which could otherwise cause spurious
17787 error messages if expansion has been disabled due to previous
17788 (unrelated) errors).
17790 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
17791 is disabled, the entity denoted by the argument is the access type
17792 itself, not an underlying record type, so there is no need to go back
17793 to the Corresponding_Remote_Type.
17795 2005-03-29 Gary Dismukes <dismukes@adacore.com>
17796 Robert Dewar <dewar@adacore.com>
17798 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
17799 expand a call to an instance of
17800 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
17801 Constructor actual of the instance. A class-wide membership
17802 check is also generated, to ensure that the tag passed to the instance
17803 denotes a type in the class.
17804 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
17805 of Name_Generic_Dispatching_Constructor.
17807 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
17808 05 unit for AI-260-02).
17810 * a-tgdico.ads: New file.
17812 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
17813 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
17815 * snames.ads, snames.adb (Preset_Names): Add entry for
17816 Generic_Dispatching_Constructor.
17819 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
17820 character type cases.
17821 (Analyze_Subprogram_Renaming): Add special handling for
17822 the case of renaming of stream attributes when the renaming denotes a
17823 generic formal subprogram association for an abstract formal subprogram.
17824 Check that the attribute is a primitive stream attribute (and not
17825 a class-wide stream attribute) and then rewrite the attribute name
17826 as the name of the appropriate compiler-generated stream primitive.
17828 2005-03-29 Robert Dewar <dewar@adacore.com>
17830 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
17832 (Is_Possibly_Unaligned_Object): Correct typo that
17833 resulted in inaccurate result for unaligned scalars within records.
17835 2005-03-29 Ed Schonberg <schonberg@adacore.com>
17837 * freeze.adb (Freeze_Record_Type): If the type of the component is an
17838 itype whose parent is controlled and not yet frozen, do not create a
17839 freeze node for the itype if expansion is disabled.
17841 2005-03-29 Vincent Celier <celier@adacore.com>
17843 * make.adb (Gnatmake): Don't fail if the main project file is declared
17844 as having no Ada sources. Do not display message "no sources to
17845 compile" in quiet output.
17847 2005-03-29 Doug Rupp <rupp@adacore.com>
17849 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
17852 2005-03-29 Robert Dewar <dewar@adacore.com>
17854 * par-ch12.adb (P_Generic): Give better msg for illegal private generic
17857 2005-03-29 Robert Dewar <dewar@adacore.com>
17859 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
17860 missing TYPE Improve the error message generated when compiling a
17861 limited interface in Ada83 or Ada95 mode.
17863 2005-03-29 Robert Dewar <dewar@adacore.com>
17865 * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
17866 rather than proceed ahead using a junk attribute name.
17868 2005-03-29 Vincent Celier <celier@adacore.com>
17870 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
17872 * prj-part.adb (Parse_Single_Project): Set the location of a project
17873 on its defining identifier, rather than on the reserved word "project".
17875 * prj-proc.adb (Expression): Adapt to the fact that default of external
17876 references may be string expressions, not always literal strings.
17877 (Recursive_Process): Set Display_Name equal to Name
17878 when Location is No_Location, that is when there is no actual file.
17879 Get the Display_Name of the project from the source, when it is not a
17881 (Process): Use the Display_Name in error messages
17883 * prj-strt.adb (External_Reference): Allow default to be string
17884 expressions, not only literal strings.
17886 2005-03-29 Vincent Celier <celier@adacore.com>
17888 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
17889 file and the reference symbol file to be the same file.
17891 2005-03-29 Thomas Quinot <quinot@adacore.com>
17893 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
17894 forbid conversion of a local access-to-subprogram type to a remote one.
17896 * sem_util.adb (Wrong_Type): For a record type that is the expanded
17897 equivalent type for a remote access-to-subprogram type, go back to the
17898 original RAS entity when displaying an error message, so the casing is
17899 the original source casing.
17901 2005-03-29 Robert Dewar <dewar@adacore.com>
17903 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
17906 2005-03-29 Ed Schonberg <schonberg@adacore.com>
17908 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
17909 subtype if code is being pre-analyzed, to prevent un-expanded
17910 references to protected formals, among others.
17911 (Analyze_Explicit_Dereference): If the overloaded prefix includes some
17912 interpretation that can be a call, include the result of the call as a
17913 possible interpretation of the dereference.
17915 * sem_ch5.adb (Process_Bounds): Determine type of range by
17916 pre-analyzing a copy of the original range, and then analyze the range
17917 with the expected type.
17919 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
17920 with an overloaded prefix where not all interpretations yield an
17921 access to subprogram, do not rewrite node as a call.
17922 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
17923 the node as a call once the context identifies the interpretation of
17924 the prefix whose call yields the context type.
17925 (Valid_Conversion): For the case of a conversion between
17926 local access-to-subprogram types, check subtype conformance using
17927 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
17928 detailed error message.
17930 2005-03-29 Ed Schonberg <schonberg@adacore.com>
17932 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
17933 indicator, indicate that the formal can never be null.
17934 (Process_Formals): If a formal has a non_null indicator, insert the
17935 resulting subtype immediately before the enclosing subprogram decl,
17936 and not at the beginning of the corresponding declarative part, to
17937 prevent access before elaboration (Ada2005).
17939 2005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
17942 * utils.c (finish_record_type): Use variable_size when setting sizes.
17944 2005-03-29 Robert Dewar <dewar@adacore.com>
17946 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
17947 guarantee Unix style line terminators for the output files, even when
17948 running on windows.
17950 2005-03-29 Robert Dewar <dewar@adacore.com>
17952 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
17953 buffer if an exception is raised.
17955 2005-03-29 Ed Falis <falis@adacore.com>
17957 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
17960 2005-03-29 Robert Dewar <dewar@adacore.com>
17962 * sem_util.ads: Minor reformatting
17963 * gnat_rm.texi: Minor editing.
17965 2005-03-29 Eric Botcazou <ebotcazou@adacore.com>
17967 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
17968 * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
17970 2005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
17972 * adaint.c (__gnat_portable_spawn): Adjust cast.
17974 2005-03-23 Joseph S. Myers <joseph@codesourcery.com>
17976 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
17978 2005-03-17 Pascal Obry <obry@adacore.com>
17980 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
17983 * expect.c (__gnat_waitpid): Moved here from adaint.c.
17984 Reimplement under Win32 using Win32 API.
17986 (__gnat_kill) [Win32]: Properly close the process handle before leaving
17989 2005-03-17 Eric Botcazou <ebotcazou@adacore.com>
17991 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
17992 (DECL_RENAMED_OBJECT): New accessor macro.
17993 (SET_DECL_RENAMED_OBJECT): New setter macro.
17995 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
17996 object in all cases. Attach the renamed object to the VAR_DECL.
17997 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
17998 field is not prescribed.
18000 * misc.c (gnat_handle_option): Handle -gnatO separately.
18001 (gnat_print_decl) <VAR_DECL>: New case.
18002 Print the DECL_RENAMED_OBJECT node.
18004 * lang.opt: Declare separate -gnatO option.
18006 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
18007 pointer, replace it with the renamed object.
18008 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
18009 pointer type if the source is not a fat pointer type whose underlying
18010 array has the same non-zero alias set as that of the destination array.
18012 2005-03-17 Javier Miranda <miranda@adacore.com>
18014 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
18015 (Get_Inheritance_Depth): Removed.
18016 (Set_Inheritance_Depth): Removed.
18018 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
18019 subprogram Get_Expanded_Name because it is not referenced by the
18022 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
18023 (CPP_Get_Inheritance_Depth): Removed.
18024 (CPP_Set_Inheritance_Depth): Removed.
18026 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
18028 2005-03-17 Robert Dewar <dewar@adacore.com>
18030 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
18031 3, since we now expect GCC 3 to do all the work.
18033 2005-03-17 Javier Miranda <miranda@adacore.com>
18035 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
18036 of one barrier to avoid wrong usage of this attribute.
18038 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
18039 First_Private_Entity.
18041 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
18042 the subprogram against wrong usage.
18043 Adapt the code to traverse the entities in the
18044 scope of a record_type because in addition to its usage regarding
18045 packages, this subprogram is also called by Expand_N_Freeze_Entity
18046 to install the visible declarations of the enclosing scope of a
18047 record_type_with_private to establish the proper visibility before
18048 freezing the entity and related subprograms.
18050 2005-03-17 Ed Schonberg <schonberg@adacore.com>
18052 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
18055 2005-03-17 Thomas Quinot <quinot@adacore.com>
18057 * exp_ch3.adb (Check_Attr): New subprogram.
18058 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
18059 into a new Check_Attr subprogram, in order to provide a more
18060 explanatory error message (including the name of the missing attribute).
18061 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
18062 subprogram determines whether a default implementation exists for a
18063 given stream attribute.
18064 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
18065 Determine whether to generate a default implementation for each stream
18066 attribute separately, as this depends on the specific attribute.
18068 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
18069 limited extension where a stream attribute is missing for a limited
18070 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
18071 generate a bogus reference to the missing attribute to prevent
18072 cascaded errors. Instead, generate a null statement.
18074 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
18075 available for a limited type if it has been specified for an ancestor
18078 2005-03-17 Ed Schonberg <schonberg@adacore.com>
18080 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
18081 entity is an operator.
18083 2005-03-17 Thomas Quinot <quinot@adacore.com>
18085 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
18086 spec, to make this predicate available to other units.
18088 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
18091 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
18092 when no distribution runtime library is available.
18094 * sem_res.adb, sem_dist.adb: Disable expansion of remote
18095 access-to-subprogram types when no distribution runtime library is
18097 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
18098 predicate available to other units.
18100 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
18101 spec, to make this predicate available to other units.
18103 2005-03-17 Vincent Celier <celier@adacore.com>
18105 * make.adb (Insert_Project_Sources): Make sure the Q is always
18108 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
18109 the default for the tree, not the global default naming.
18111 * prj-proc.adb (Recursive_Process): No need to put the default naming
18112 in the project data, it's already there.
18114 2005-03-17 Doug Rupp <rupp@adacore.com>
18116 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
18118 * 5xcrtl.ads: Renamed to...
18119 * s-crtl-vms64.ads: ...this new file
18121 2005-03-17 Robert Dewar <dewar@adacore.com>
18124 * namet.adb (Copy_One_Character): Set proper wide character encoding
18125 for upper half character if we have upper half encoding.
18127 2005-03-17 Robert Dewar <dewar@adacore.com>
18129 * par.adb (Par): Improved msg for attempt to recompile predefined unit
18131 2005-03-17 Thomas Quinot <quinot@adacore.com>
18133 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
18134 tagged limited type, the TSS is a newly built renaming declaration:
18135 insert it using Set_TSS, not Copy_TSS.
18137 2005-03-17 Javier Miranda <miranda@adacore.com>
18139 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
18140 Try_Object_Operation): Analyze the object that is accessible
18141 through the prefix of the subprogram call before we apply
18142 the transformation of the object-operation notation.
18144 2005-03-17 Jose Ruiz <ruiz@adacore.com>
18146 * s-taprob.adb (Initialize_Protection): Initialize the protected
18147 object's owner to Null_Task.
18148 (Lock): If pragma Detect_Blocking is in effect and the caller of this
18149 procedure is already the protected object's owner then Program_Error
18150 is raised. In addition the protected object's owner is updated.
18151 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
18152 of this procedure is already the protected object's owner then
18153 Program_Error is raised.
18154 In addition the protected object's owner is updated.
18155 (Unlock): Remove the ownership of the protected object.
18157 * s-taprob.ads (Protection): Add the field Owner, used to store the
18158 protected object's owner.
18159 This component is needed for detecting one type of potentially blocking
18160 operations (external calls on a protected subprogram with the same
18161 target object as that of the protected action). Document the rest of
18164 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
18165 Initialize the protected object's owner to Null_Task.
18166 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
18167 caller of this procedure is already the protected object's owner then
18168 Program_Error is raised.
18169 Do not raise Program_Error when this procedure is called from a
18171 (Unlock_Entries): Remove the ownership of the protected object.
18172 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
18173 of this procedure is already the protected object's owner then
18174 Program_Error is raised.
18175 Do not raise Program_Error when this procedure is called from
18176 a protected action.
18178 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
18179 used to store the protected object's owner.
18181 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
18182 effect and this procedure (a potentially blocking operation) is called
18183 from whithin a protected action, Program_Error is raised.
18184 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
18185 and this procedure (a potentially blocking operation) is called from
18186 whithin a protected action, Program_Error is raised.
18188 2005-03-17 Vincent Celier <celier@adacore.com>
18189 Nicolas Setton <setton@adacore.com>
18191 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
18192 switch, not supported by the linker on Darwin. Add '_' before
18193 <library>init, as this character is added unconditionally by the
18195 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
18196 correct one ".dylib". This fixes detection of the archive files when
18197 building library projects.
18199 2005-03-17 Vincent Celier <celier@adacore.com>
18201 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
18202 -gnat83, -gnat95 and -gnat05.
18204 2005-03-17 Vasiliy Fofanov <fofanov@adacore.com>
18206 * gnat_ugn.texi: Document gnatmem restriction
18208 2005-03-17 Thomas Quinot <quinot@adacore.com>
18210 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
18213 2005-03-17 Robert Dewar <dewar@adacore.com>
18215 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
18216 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
18217 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
18219 * casing.adb: Comment improvements
18221 2005-03-17 Pascal Obry <obry@adacore.com>
18223 * g-expect.adb: Minor reformatting.
18225 2005-03-15 Zack Weinberg <zack@codesourcery.com>
18227 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
18228 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
18231 2005-03-15 Vincent Celier <celier@adacore.com>
18233 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
18234 Add new parameter In_Tree to specify the project tree: needed
18235 by the project manager. Adapt to changes in project manager
18236 using new parameter In_Tree.
18238 2005-03-15 Jakub Jelinek <jakub@redhat.com>
18240 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
18241 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
18242 ada/bldtools to avoid make -jN failures.
18244 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
18246 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
18247 to NULL_TREE on entry.
18249 2005-03-15 Robert Dewar <dewar@adacore.com>
18251 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
18252 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
18253 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
18254 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
18255 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
18256 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
18257 system-interix.ads, system-solaris-sparc.ads,
18258 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
18259 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
18260 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
18261 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
18262 system-linux-s390.ads, system-linux-s390x.ads: Add line defining
18263 Compiler_System_Version to be False.
18265 * opt.ads: Add new flag Opt.Address_Is_Private
18267 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
18268 Add new parameter Compiler_System_Version to avoid checking for
18269 completeness of parameters when compiler is compiling itself.
18270 Allows old versions of GNAT to be compiled with new compiler.
18272 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
18274 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
18275 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
18277 (Stack_Base_Available): New flag.
18278 (Get_Page_Size): New overloaded functions imported from C.
18279 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
18280 PROT_ON, PROT_OFF): New constants.
18281 (mprotect): New function imported from C.
18282 (pthread_teb_t): New record type.
18284 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
18285 (Create_Task): Account for the Yellow Zone and the guard page.
18287 2005-03-15 Vincent Celier <celier@adacore.com>
18289 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
18290 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
18291 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
18292 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
18293 Library_File_Name_For): Add new parameter In_Tree
18294 to specify the project tree: needed by the project manager.
18295 Adapt to changes in project manager using new parameter In_Tree.
18296 Remove local imports, use functions in System.CRTL.
18298 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
18299 to use the project manager.
18301 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
18302 In_Tree to designate the project tree. Adapt to changes in the project
18303 manager, using In_Tree.
18305 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
18306 Copy_Interface_Sources): Add new parameter In_Tree to specify the
18307 project tree: needed by the project manager.
18308 (Build_Library): Check that Arg'Length >= 6 before checking if it
18309 contains "--RTS=...".
18311 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
18312 Library_File_Name_For): Add new parameter In_Tree to specify the
18313 project tree: needed by the project manager.
18315 * prj.ads, prj.adb: Major modifications to allow several project trees
18316 in memory at the same time.
18317 Change tables to dynamic tables and hash tables to dynamic hash
18318 tables. Move tables and hash tables from Prj.Com (in the visible part)
18319 and Prj.Env (in the private part). Move some constants from the visible
18320 part to the private part. Make other constants deferred.
18321 (Project_Empty): Make it a variable, not a function
18322 (Empty_Project): Add parameter Tree. Returns the data with the default
18323 naming data of the project tree Tree.
18324 (Initialize): After updating Std_Naming_Data, copy its value to the
18325 component Naming of Project Empty.
18326 (Register_Default_Naming_Scheme): Use and update the default naming
18327 component of the project tree, instead of the global variable
18329 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
18330 Tree is not defaulted, return the default naming data of the Tree.
18331 (Initial_Buffer_Size): Constant moved from private part
18332 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
18333 variables initialized in procedure Initialize.
18334 (Add_To_Buffer): Add two in out parameters to replace global variables
18335 Buffer and Buffer_Last.
18336 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
18338 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
18340 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18341 for the project tree.
18342 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
18343 constant at the beginning of the package spec, so that they cane be used
18344 in subprograms before their full declarations.
18345 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
18346 (Empty_Project): Add parameter of type Project_Node_Ref
18347 (Private_Project_Tree_Data): Add component Default_Naming of type
18349 (Buffer, Buffer_Last): remove global variables
18350 (Add_To_Buffer): Add two in out parameters to replace global variables
18351 Buffer and Buffer_Last.
18352 (Current_Packages_To_Check): Remove global variable
18353 (Empty_Name): Move to private part
18354 (No-Symbols): Make it a constant
18355 (Private_Project_Tree_Data): New type for the private part of the
18357 (Project_Tree_Data): New type for the data of a project tree
18358 (Project_Tree_Ref): New type to designate a project tree
18359 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
18360 for the project tree.
18362 * prj-attr.ads: Add with Table; needed, as package Prj no longer
18363 imports package Table.
18365 * prj-com.adb: Remove empty, no longer needed body
18367 * prj-com.ads: Move most of the content of this package to package Prj.
18369 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
18370 designate the project node tree and Packages_To_Check to replace
18371 global variable Current_Packages_To_Check.
18372 Add new parameters In_Tree and Packages_To_Check to local subprograms,
18373 when needed. Adapt to changes in project manager with project node tree
18376 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
18377 project tree to most subprograms. Move tables and hash tables to
18378 private part of package Prj.
18379 Adapt to changes in project manager using project tree In_Tree.
18381 * prj-makr.adb (Tree): New constant to designate the project node tree
18382 Adapt to change in project manager using project node tree Tree
18384 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
18385 display the Library_Src_Dir and the Library_Dir.
18386 Add new parameter In_Tree to designate the project node tree to most
18387 subprograms. Adapt to changes in the project manager, using project tree
18389 (Check_Naming_Scheme): Do not alter the casing on platforms where
18390 the casing of file names is not significant.
18391 (Check): Add new parameter In_Tree to designate the
18393 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
18394 designate the project tree.
18395 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
18397 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
18398 to replace those that were in the private part of package Prj.
18399 Add new parameter In__Tree to designate the project node tree to most
18400 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18401 (Post_Parse_Context_Clause): When specifying the project node of a with
18402 clause, indicate that it is a limited with only if there is "limited"
18403 in the with clause, not necessarily when In_Limited is True.
18404 (Parse): Add new parameter In_Tree to designate the project node tree
18406 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
18407 designate the project node tree. Adapt to change in Prj.Tree with
18408 project node tree In_Tree.
18410 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
18411 tree In_Tree in the call to function Empty_Process to give its initial
18412 value to the project data Processed_Data.
18413 Add new parameters In_Tree to designate the project tree and
18414 From_Project_Node_Tree to designate the project node tree to several
18415 subprograms. Adapt to change in project manager with project tree
18416 In_Tree and project node tree From_Project_Node_Tree.
18418 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
18419 to replace those that were in the private part of package Prj.
18420 Add new parameter In_Tree to designate the project node tree to most
18421 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
18423 * prj-tree.ads, prj-tree.adb: Add new parameter of type
18424 Project_Node_Tree_Ref to most subprograms.
18425 Use this new parameter to store project nodes in the designated project
18427 (Project_Node_Tree_Ref): New type to designate a project node tree
18428 (Tree_Private_Part): Change table to dynamic table and hash tables to
18429 dynamic hash tables.
18431 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
18432 the project tree to most subprograms. Adapt to changes in project
18433 manager using project tree In_Tree.
18435 * makegpr.adb (Project_Tree): New constant needed to use project
18438 2005-03-15 Olivier Hainque <hainque@adacore.com>
18440 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
18441 for sigactions with SA_SIGINFO set. Call
18442 __gnat_adjust_context_for_raise before raising, to perform the
18443 potentially required adjustments to the machine context for the GCC
18446 * raise.h (__gnat_adjust_context_for_raise): New prototype.
18448 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
18449 Adjust PC by one in the provided machine context.
18450 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
18451 so that the handler is passed the context structure to adjust prior to
18453 (__gnat_error_handler) HPUX: Adjust the signature to match what an
18454 SA_SIGINFO sigaction should look like. Call
18455 __gnat_adjust_context_for_raise before actually raising.
18456 (__gnat_adjust_context_for_raise): Default noop to help PC
18457 adjustments before raise from signal handlers.
18458 (__gnat_error_handler): Indirectly call a predicate function to
18459 determine if a condition should be resignaled or not.
18460 (__gnat_set_resignal_predicate): User interface to modify the predicate.
18461 (__gnat_default_resignal_p): Default GNAT predicate.
18463 2005-03-15 Doug Rupp <rupp@adacore.com>
18465 * adaint.c: Prefix #include of VMS system header files with vms/
18466 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
18467 Do not define a dummy function "convert_addresses" under Darwin,
18470 * tb-alvms.c, expect.c: Prefix #include of VMS system header files
18473 2005-03-15 Nicolas Setton <setton@adacore.com>
18475 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
18478 2005-03-15 Robert Dewar <dewar@adacore.com>
18480 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
18483 * a-retide.ads: Minor comment changes
18485 2005-03-15 Robert Dewar <dewar@adacore.com>
18487 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
18488 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
18489 Realloc_For_Chunk to private part of package.
18490 New subprograms for AI-301
18492 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
18493 Get_Line procedure.
18494 Avoid unnecessary use of Get/Set_Wide_String
18496 2005-03-15 Robert Dewar <dewar@adacore.com>
18499 * a-stunau.ads, a-stunau.adb:
18500 Change interface to allow efficient (and correct) implementation
18501 The previous changes to allow extra space in unbounded strings had
18502 left this interface a bit broken.
18504 * a-suteio.adb: Avoid unnecessary use of Get/Set_String
18506 * g-spipat.ads, g-spipat.adb: New interface for Get_String
18507 Minor reformatting (function specs)
18509 * g-spitbo.adb: New interface for Get_String
18511 * g-spitbo.ads: Minor reformatting
18513 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
18515 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
18517 2005-03-15 Javier Miranda <miranda@adacore.com>
18518 Robert Dewar <dewar@adacore.com>
18519 Thomas Quinot <quinot@adacore.com>
18520 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18522 * atree.ads, atree.adb: Add support for Elist24 field
18524 * atree.h: Fix wrong definition of Field27
18525 Add support for Elist16 field
18526 Add support for Elist24 field
18528 * einfo.ads, einfo.adb (Abstract_Interfaces,
18529 Set_Abstract_Interfaces): New subprograms.
18530 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
18532 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
18533 entities rather than a single node.
18534 (Is_Interface, Set_Is_Interface): New subprogram
18535 (First_Tag_Component): New syntesized attribute
18536 (Next_Tag_Component): New synthesized attribute
18537 (Write_Entity_Flags): Upgraded to write Is_Interface
18538 (Write_Field24_Name): Upgraded to write Abstract_Interfaces
18539 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
18540 (Task_Body_Procedure): New subprogram to read this attribute.
18541 (Set_Task_Body_Procedure): New subprogram to set this attribute.
18542 (Has_Controlled_Component): Now applies to all entities.
18543 This is only a documentation change, since it always worked to apply
18544 this to other than composite types (yielding false), but now this is
18546 Update documentation on Must_Be_Byte_Aligned for new spec
18548 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
18549 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
18550 uses of the Access_Disp_Table attribute to reference the first dispatch
18551 table associated with a tagged type. As
18552 part of the implementation of abstract interface types,
18553 Access_Disp_Table has been redefined to contain a list of dispatch
18554 tables (rather than a single dispatch table).
18555 Similarly, upgrade all the references to Tag_Component by the
18556 new attribute First_Tag_Component.
18557 (Find_Inherited_TSS): Moved to exp_tss.
18558 Clean up test in Expand_N_Object_Declaration for cases
18559 where we need to do a separate assignment of the initial value.
18560 (Expand_N_Object_Declaration): If the expression in the
18561 declaration of a tagged type is an aggregate, no need to generate an
18562 additional tag assignment.
18563 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
18565 Bit packed array ops are only called if operands are known to be
18567 (Component_Equality): When returning an N_Raise_Program_Error statement,
18568 ensure that its Etype is set to Empty to avoid confusing GIGI (which
18569 expects that only expressions have a bona fide type).
18570 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
18571 determine the amount of data to be copied.
18573 * par.adb (P_Interface_Type_Definition): New subprogram that parses the
18574 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
18575 INTERFACE_TYPE_DEFINITION ::=
18576 [limited | task | protected | synchronized] interface
18577 [AND interface_list]
18579 * par-ch3.adb (P_Type_Declaration): Modified to give support to
18581 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
18583 (P_Interface_Type_Definition): New subprogram that parses the new
18584 syntax rule of Ada 2005 interfaces
18585 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
18586 messages by the correct RENAMES (quotes removed).
18588 * sem_prag.adb: Upgrade all the references to Tag_Component by the new
18589 attribute First_Tag_Component.
18591 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
18592 (Interface_List, Set_Interface_List): New subprograms.
18593 (Interface_Present, Set_Interface_Present): New subprograms.
18594 (Limited_Present, Set_Limited_Present): Available also in derived
18595 type definition nodes.
18596 (Protected_Present, Set_Protected_Present): Available also in
18597 record type definition and
18598 derived type definition nodes.
18599 (Synchronized_Present, Set_Synchronized_Present): New subprograms.
18600 (Task_Present, Set_Task_Present): New subprogram.
18601 (Task_Body_Procedure): Removed.
18602 (Set_Task_Body_Procedure): Removed.
18603 These subprogram have been removed because the attribute
18604 Task_Body_Procedure has been moved to the corresponding task type
18605 or task subtype entity to leave a field free to store the list
18606 of interfaces implemented by a task (for AI-345)
18607 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
18608 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
18609 expression flag Do_Range_Check
18610 (Exception_Junk): Change to Flag7 to accomodate above change
18611 (Box_Present, Default_Name, Specification, Set_Box_Present,
18612 Set_Default_Name, Set_Specification): Expand the expression
18613 "X in N_Formal_Subprogram_Declaration" into the corresponding
18614 two comparisons. Required to use the csinfo tool.
18616 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
18617 "with string" given.
18619 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
18622 * par-ch11.adb (P_Raise_Statement): Recognize with string expression
18625 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
18626 attribute Task_Body_Procedure rather than the old semantic field that
18627 was available in the task_type_declaration node.
18629 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
18630 interface type definitions.
18631 (P_Formal_Derived_Type_Definition): Modified to handle the list of
18634 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
18635 task type declaration.
18636 (P_Protected): Modified to handle the list of interfaces in a
18637 protected type declaration.
18639 2005-03-15 Doug Rupp <rupp@adacore.com>
18640 Vincent Celier <celier@adacore.com>
18642 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
18643 (Gen_Output_File_C): Likewise.
18644 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
18646 2005-03-15 Thomas Quinot <quinot@adacore.com>
18648 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
18649 is an N_Raise_Constraint_Error node, create a new copy of it without
18650 going through a call to Duplicate_Subexpr.
18652 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
18653 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18654 Nicolas Setton <setton@adacore.com>
18655 Ed Schonberg <schonberg@adacore.com>
18661 * decl.c (gnat_to_gnu_field): Reject aliased components with a
18662 representation clause that prescribes a size not equal to the rounded
18663 size of their types.
18664 (gnat_to_gnu_entity, case E_Component): Always look at
18665 Original_Record_Component if Present and not the entity.
18666 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
18667 of tagged extension types by not making field for components that are
18669 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
18670 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
18671 expression to the type of the object when the object is constant.
18672 Reverse defer_debug_incomplete_list before traversing it, so that trees
18673 are processed in the order at which they were added to the list. This
18674 order is important when using the stabs debug format.
18675 If we are deferring the output of debug information, also defer this
18676 output for a function return type.
18677 When adding fields to a record, prevent emitting debug information
18678 for incomplete records, emit the information only when the record is
18680 (components_to_record): New parameter defer_debug.
18681 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
18682 (gnat_to_gnu_field_decl): New function.
18683 (substitution_list, annotate_rep): Call it.
18684 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
18685 (gnat_to_gnu_entity, case E_Record_Type): Likewise.
18686 No longer update discriminants to not be a COMPONENT_REF.
18687 (copy_alias_set): Strip padding from input type; also handle
18688 unconstrained arrays properly.
18690 * gigi.h (write_record_type_debug_info): New function.
18691 Convert to use ANSI-style prototypes. Remove unused
18692 declarations for emit_stack_check, elab_all_gnat and
18693 set_second_error_entity.
18694 (gnat_to_gnu_field_decl): New decl.
18696 * utils.c (write_record_type_debug_info): New function.
18697 (finish_record_type): Delegate generation of debug information to
18698 write_record_type_debug_info.
18699 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
18700 (update_pointer_to): Fix pasto.
18701 (convert) <UNION_TYPE>: Accept slight type variations when
18702 converting to an unchecked union type.
18704 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
18705 replace the N_Freeze_Entity with a null statement.
18707 * freeze.adb (Freeze_Expression): If the freeze nodes are generated
18708 within a constrained subcomponent of an enclosing record, place the
18709 freeze nodes in the scope stack entry for the enclosing record.
18710 (Undelay_Type): New Subprogram.
18711 (Set_Small_Size): Pass T, the type to modify; all callers changed.
18712 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
18713 within records; allow them to have freeze nodes if their base types
18716 * exp_util.adb (Remove_Side_Effects): Properly test for
18717 Expansion_Delayed and handle case when it's inside an
18718 N_Qualified_Expression.
18720 * sem_ch3.adb (Derived_Type_Declaration): New predicate
18721 Comes_From_Generic, to recognize accurately that the parent type in a
18722 derived type declaration can be traced back to a formal type, because
18723 it is one or is derived from one, or because its completion is derived
18725 (Constrain_Component_Type): If component comes from source and has no
18726 explicit constraint, no need to constrain in in a subtype of the
18728 (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
18729 Minor change to propagate Is_Ada_2005 flag
18731 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
18732 Expansion_Delayed is False.
18733 (assoc_to_constructor): Ignore fields that have a
18734 Corresponding_Discriminant.
18735 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
18736 function returns "by target", dereference the target pointer using the
18737 type of the actual return value.
18738 <all>: Be prepared for a null gnu_result.
18739 (processed_inline_subprograms): Check flag_really_no_inline
18740 instead of flag_no_inline.
18741 (set_second_error_entity): Remove unused function.
18742 (gnat_to_gnu, case N_Selected_Component): Call
18743 gnat_to_gnu_field_decl.
18744 (assoc_to_constructor): Likewise.
18746 2005-03-15 Robert Dewar <dewar@adacore.com>
18747 Ed Schonberg <schonberg@adacore.com>
18748 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
18750 * exp_pakd.adb (Create_Packed_Array_Type): Do not set
18751 Must_Be_Byte_Aligned for cases where we do not need to use a
18752 System.Pack_nn unit.
18754 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
18756 Needed now that we do some processing for IN parameters as well. This
18757 may well fix some unrelated errors.
18758 (Expand_Call): Handle case of unaligned objects (in particular those
18759 that come from packed arrays).
18760 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
18761 renamed entity is an inherited operation, re-expand the call using the
18762 original operation, which is the one to call.
18763 Detect attempt to inline parameterless recursive subprogram.
18764 (Represented_As_Scalar): Fix to work properly with private types
18765 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
18766 accurate estimate. Yields True in far fewer cases than before,
18767 improving the quality of code that depends on this test.
18769 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
18770 over both visible and private declarations to remove them from tree,
18771 and mark subprograms declared in package as eliminated, to prevent
18772 spurious use in subsequent compilation of generic units in the context.
18774 * exp_util.ads: Minor cleanup in variable names
18776 * sem_eval.ads, sem_eval.adb: Minor reformatting
18777 (Compile_Time_Known_Bounds): New function
18779 2005-03-15 Ed Schonberg <schonberg@adacore.com>
18781 * exp_ch7.adb (Convert_View): Use base types of underlying types when
18782 determining whether an unchecked conversion is needed for the argument
18783 of an initialization call.
18785 2005-03-15 Ed Schonberg <schonberg@adacore.com>
18787 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
18788 that appears in the instantiation rather than the internal subtype
18789 generated in the wrapper package, to avoid anomalies in gigi when the
18790 target is derived from a private type whose full view is an access type.
18792 2005-03-15 Robert Dewar <dewar@adacore.com>
18794 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
18796 Add documentation to replace the use of this flag
18797 Fix kludge for Maximum_Alignment on x86 so that it does not apply to
18800 2005-03-15 Thomas Quinot <quinot@adacore.com>
18802 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
18803 here from exp_attr so it can be shared between exp_attr and exp_dist.
18804 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
18805 all TSS names, not a subset thereof, and the previous name introduced
18806 an unnecessarily confusion that a distinction might exist between
18807 "OK" TSS names and some "not OK" TSS names.
18809 2005-03-15 Doug Rupp <rupp@adacore.com>
18811 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
18814 2005-03-15 Pascal Obry <obry@adacore.com>
18815 Eric Botcazou <ebotcazou@adacore.com>
18819 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
18820 when IN_RTS. This is to work around a bootstrap path problem.
18822 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
18823 table and pass it to __gnat_install_SEH_handler().
18824 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
18826 * lang.opt: Fix specification of -fRTS=.
18828 2005-03-15 Doug Rupp <rupp@adacore.com>
18829 Bernard Banner <banner@adacore.com>
18830 Vincent Celier <celier@adacore.com>
18831 Arnaud Charlet <charlet@adacore.com>
18834 This change works fine when gnatlib is built from the gcc directory,
18835 but does not work when using the libada Makefile, since GCC_FOR_TARGET
18836 is not passed to ada/Makefile.in, so more work is needed by a
18837 Makefile/configure expert.
18839 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
18840 set GMEM_LIB on ia64 linux to add optional support for gnatmem.
18841 Setup gnatlink switch -M for x86_64 linux, as it is already setup
18843 (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
18844 Run ranlib on libgccprefix.a
18845 Define PREFIX_OBJS for Darwin, to build libgccprefix.
18846 (ADA_INCLUDE_SRCS): Split Ada packages.
18848 2005-03-15 Robert Dewar <dewar@adacore.com>
18850 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
18852 * impunit.adb: Add GNAT.UTF_32
18854 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
18856 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
18857 now uses GNAT.UTF_32).
18859 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
18860 capabilities for categorizing characters using Unicode categories
18862 2005-03-15 Ed Schonberg <schonberg@adacore.com>
18864 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
18865 instantiation that has been rewritten as a package body, retrieve spec
18866 to generate proper name for implicit_with_clause.
18867 (Install_Parents): Recognize a parent that is an instantiation but has
18868 been rewritten as a package declaration during analysis.
18870 2005-03-15 Javier Miranda <miranda@adacore.com>
18871 Ed Schonberg <schonberg@adacore.com>
18873 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
18874 parameter reported some error we immediately return. This improves the
18875 behaviour of the frontend in case of errors.
18876 (Install_Parent, Remove_Parent): Introduce new flag
18877 Parent_Unit_Visible, to preserve the proper visibility of the ultimate
18878 ancestor of a generic child unit, when the child is being instantiated.
18879 (Inline_Instance_Body): If we are compiling the private
18880 part or the body of a child unit, restore the proper visibility of the
18881 parents after compiling the instance body.
18883 2005-03-15 Ed Schonberg <schonberg@adacore.com>
18884 Javier Miranda <miranda@adacore.com>
18887 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
18888 of a private type, in which case it is underlying_type that denotes
18889 the proper task. Also modified to use the new entity attribute
18890 that is directly available in the task type and task subtype entities
18891 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
18892 arrays when other dimensions than the first are constrained by
18893 discriminants of an enclosing record.
18894 (Insert_Explicit_Dereference): If the prefix is an indexed component or
18895 a combination of indexed and selected components, find ultimate entity
18896 and generate the appropriate reference for it, to suppress spurious
18898 (Note_Possible_Modification): If an entity name has no entity, return.
18899 (Is_Variable): A function call never denotes a variable.
18900 (Requires_Transient_Scope): For record types, recurse only on
18901 components, not on internal subtypes that may have been generated for
18902 constrained components.
18904 2005-03-15 Ed Schonberg <schonberg@adacore.com>
18906 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
18907 Eliminated as candidates for resolution. Both efficient, and avoids
18908 anomalies with operators declared in deleted code.
18909 (Process_Implicit_Dereference_Prefix): Use this procedure whenever
18910 expansion is disabled (as when compiling a generic) to prevent spurious
18911 warnings on prefixes of selected components.
18913 2005-03-15 Ed Schonberg <schonberg@adacore.com>
18915 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
18916 attached to a list before checking whether it appears in the private
18917 declarations of the current package.
18918 (Make_Inequality_Operator): Insert declaration in proper declarative
18919 list rather than just setting the Parent field, so that
18920 Is_Private_Declaration can handle it properly.
18922 2005-03-15 Ed Schonberg <schonberg@adacore.com>
18924 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
18925 a renaming a body, check that the renamed subprogram in not intrinsic.
18926 (Find_Direct_Name): If several use_visible entities hide
18927 each other, and the context is a predefined file compiled through
18928 rtsfind, keep only the entity that comes from a predefined file.
18930 2005-03-15 Geert Bosch <bosch@adacore.com>
18932 * s-fatgen.adb (Valid): Extend special exceptions to account for long
18933 long float padding to also cover AMD64 and IA64.
18935 2005-03-15 Gary Dismukes <dismukes@adacore.com>
18937 * s-imgwch.adb: Add with and use of Interfaces.
18938 (Img_Wide_Character): Change type of Val to Unsigned_16.
18939 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
18941 2005-03-15 Matthew Gingell <gingell@adacore.com>
18943 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
18945 2005-03-15 Robert Dewar <dewar@adacore.com>
18947 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
18949 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
18951 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
18953 2005-03-15 Robert Dewar <dewar@adacore.com>
18955 * s-bitops.adb, s-bitops.ads,
18956 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
18957 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
18958 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
18959 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
18960 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
18961 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
18962 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
18963 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
18966 2005-03-15 Eric Botcazou <ebotcazou@adacore.com>
18968 * utils2.c (build_binary_op): Fix typo.
18970 2005-03-15 Doug Rupp <rupp@adacore.com>
18972 * s-crtl.ads (popen,pclose): New imports.
18974 2005-03-15 Cyrille Comar <comar@adacore.com>
18976 * comperr.adb (Compiler_Abort): remove references to obsolete
18977 procedures in the bug boxes for various GNAT builds.
18979 2005-03-15 Vincent Celier <celier@adacore.com>
18981 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
18983 2005-03-15 Geert Bosch <bosch@adacore.com>
18984 Arnaud Charlet <charlet@adacore.com>
18985 Robert Dewar <dewar@adacore.com>
18986 Cyrille Comar <comar@adacore.com>
18987 Sergey Rybin <rybin@adacore.com>
18989 * gnat_ugn.texi: Remove extended inline assembly example, as it was far
18990 too specific and long-winded to be appropriate for the GNAT User's
18992 Warn about use of GCC switches not documented in the GNAT User's Guide,
18993 as these may cause generated code to not conform to Ada semantics.
18994 Remove mention of -gdwarf-2 for sparc64, since this is now the default.
18995 Add documentation for -gnat95 and -gnat05 switches
18996 Remove paragraph documenting obsolete way to refer to third party
18998 Add a few references to Ada_05 that were missing.
18999 Update documentation on -gnatZ/-gnatL.
19000 Document limitation when using -m64 under Solaris.
19001 Change the "Name Casing" subsection of the pretty-printer section
19002 according to the changes in the dictionary processing.
19004 * gnat_rm.texi: Document the Ada_05 pragma.
19005 Section on record representation clauses describes the new more
19006 relaxed rules about placement of large packed bit array components.
19007 Add documentation of GNAT.UTF_32
19009 2005-03-12 Daniel Berlin <dberlin@dberlin.org>
19011 * misc.c (gnat_post_options): Turn off structural
19014 2005-03-08 Laurent Guerby <laurent@guerby.net>
19016 * system-linux-sparc.ads: Fix typo in previous commit.
19018 2005-03-07 James A. Morrison <phython@gcc.gnu.org>
19019 Laurent Guerby <laurent@guerby.net>
19022 * system-linux-sparc.ads: New.
19023 * Makefile.in: Add sparc linux entry.
19025 2005-02-27 Danny Smith <dannysmith@users.sourceforge.net>
19027 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
19028 parameters as unused.
19030 2005-02-26 Nathanael Nerode <neroden@gcc.gnu.org>
19031 Partial merge from libada-gnattools-branch:
19033 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
19034 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
19035 into code in gnattools/Makefile.in. Remove direct dependencies on
19036 stamp-tools by tools clauses.
19037 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org>
19038 * config-lang.in: Add gnattools to $lang_dirs.
19040 2005-02-13 Andrew Pinski <pinskia@physics.uc.edu>
19043 * utils.c (gnat_type_for_mode): Return null instead of ICE because
19044 we asked for an unknown mode.
19046 2005-02-12 Richard Henderson <rth@redhat.com>
19048 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
19049 validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
19051 2005-02-10 Andreas Jaeger <aj@suse.de>
19053 * init.c (__gnat_initialize): Mark parameter as unused.
19055 2005-02-09 Doug Rupp <rupp@adacore.com>
19057 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
19058 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
19060 2005-02-09 Doug Rupp <rupp@adacore.com>
19062 * gnatchop.adb (dup, dup2),
19063 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
19065 * gnatlbr.adb (mkdir),
19066 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix.
19068 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
19070 2005-02-09 Doug Rupp <rupp@adacore.com>
19072 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
19074 2005-02-09 Robert Dewar <dewar@adacore.com>
19075 Thomas Quinot <quinot@adacore.com>
19076 Javier Miranda <miranda@adacore.com>
19077 Pascal Obry <obry@adacore.com>
19078 Ed Schonberg <schonberg@adacore.com>
19079 Doug Rupp <rupp@adacore.com>
19080 Gary Dismukes <dismukes@adacore.com>
19081 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19083 * g-zstspl.ads: New file.
19085 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
19087 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
19089 Add definition of Wide_Wide_Space for AI-285
19091 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
19092 interface (to support Ada 95 and Ada 2005 units).
19093 Add Unbounded_IO files
19094 Add entries for Wide_Wide packages for AI-285
19095 Add list of containers packages to Ada 2005 unit list
19097 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
19098 support new Unbounded_IO package cleanly.
19100 * g-utf_32.ads, g-utf_32.adb: New files.
19102 * Makefile.rtl: Add entry for g-utf_32
19103 Add new files for Unbounded_IO
19104 Adjust make file for new AI-285 wide wide packages
19105 Add AI-302 containers to the run time.
19107 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
19108 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
19109 subprograms for AI-301.
19111 * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
19113 * a-stunau.ads: Minor comment correction
19115 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
19117 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
19118 (Check_RPC): Update to match changes in expanded code.
19119 Clean up unused entity.
19121 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
19122 was not taken into account.
19123 This includes proper initialization with Normalize_Scalars.
19124 (Get_Simple_Init_Val): Major rewrite for initialize scalars and
19125 normalize scalars cases (particularly the latter) to do a better job
19126 of finding invalid representations.
19128 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
19130 * s-strops.ads, s-strops.adb: Remove string normalize routines, never
19133 * exp_dist.adb: Add support for wide wide character type
19134 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
19135 private part, generate stub bodies at the end of the private part,
19136 not the visible part.
19137 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
19139 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
19140 generic wrapper to execute final processing after completing the
19141 expansion of the RPC receiver for an RACW.
19143 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
19144 packages and attributes.
19145 (Preset_Names): Addition of the new reserved words of Ada 2005,
19146 that is interface, overriding and synchronized.
19147 (Get_Pragma_Id): Give support to the use of the new reserved word
19148 "interface" as a pragma name.
19149 (Is_Pragma_Name): Give support to the use of the new reserved word
19150 "interface" as a pragma name.
19151 (Preset_Names): Add stream_size string for the Stream_Size Ada2005
19152 attribute implementation.
19154 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
19155 checks to entities that are output parameters of Asm operations.
19156 Handle the Stream_Size attribute.
19157 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
19159 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
19161 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
19162 for second parameter being 0.0.
19163 Add support for wide wide character type.
19164 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
19166 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
19167 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
19168 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
19169 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
19170 for wide wide character cases.
19172 * cstand.adb: Create entities for Wide_Wide_Character and
19175 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
19176 accordance with AI-258.
19177 Add new declarations for 16/32 bit C character types (Part of AI285)
19179 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
19180 (Obsolescent_Warning): New field
19181 (Rep_Clause): New local subprogram used to share code. Returns the rep
19182 clause for which the name is given in parameter.
19183 (Has_Stream_Size_Clause): New routine.
19184 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
19185 (Address_Clause): Implementation is now using Rep_Clause.
19186 (Alignment_Clause): Idem.
19187 (Size_Clause): Idem.
19189 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
19190 entity in non-Ada 2005 mode and generate warning.
19192 * par-prag.adb: Add handling of one argument form for pragma Ada_05.
19193 (Prag): Code cleanup. Remove old gnat pragma "overriding"
19195 * sem_prag.adb: Add handling of one argument form for pragma Ada_05
19196 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
19197 on the named unit if the pragma is not in the current compilation unit,
19198 so that elaboration calls in the current unit can set up an elaboration
19199 dependency on the named unit, as needed.
19200 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
19201 subprogram as well as for subprograms declared within a package.
19202 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
19205 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
19206 to z) to avoid some instances of duplication for Wide_Wide packages.
19208 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
19211 * scn.adb: Char_Literal_Value field is now a Uint
19213 * scng.adb: Significant rewrite to handle new Ada 2005 features
19214 allowing wide and wide wide characters in program text, e.g. for
19215 identifiers, as described in AI-285.
19216 (Set_Reserved): New procedure, makes setting up keywords cleaner.
19217 (Initialize_Scanner): Register the new reserved words of Ada 2005.
19218 (Scan): Give support to the new reserved words.
19220 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
19221 warning notifying that interface, overriding, and synchronized are
19222 new reserved words.
19223 (P_Pragma): Allow the use of the new reserved word "interface" as
19226 * gnatls.adb, gnatbind.adb,
19227 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
19228 identifiers named "interface" to "SAL_Interface".
19230 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
19231 (Structured Exception handling).
19232 (Gen_Main_C): Idem.
19235 (Gen_Main_Ada): Set the default exit code if specified.
19236 (Gen_Main_C): Likewise.
19238 (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
19239 Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
19241 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
19244 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
19245 has a collision with the new Ada 2005 "interface" reserved word.
19247 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
19248 generate a warning notifying that interface, overriding, and
19249 synchronized are new reserved words.
19251 * scans.ads (Token_Type): Addition of the tokens corresponding to the
19252 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
19253 and Tok_Synchronized.
19255 * sem_res.adb (Resolve_Actuals): Change error messages to refer to
19256 "dispatching" rather than "primitive" operations, since dispatching
19257 calls are now allowed to abstract formal subprograms (which are not
19259 Char_Literal_Value field is now a Uint
19260 (Resolve_Slice): If the prefix is an access to an unconstrained array,
19261 compute the actual subtype of the designated object to impose the proper
19263 (Resolve_Selected_Component): Do not insert an access check if the
19264 prefix is an access type: such a node is expanded into an explicit
19265 dereference, on which the access check is performed anyway. Removes
19266 expensive duplicate checks.
19267 (Resolve_Call): Use new flag Is_Obsolescent and field
19268 Obsolescent_Warning so that pragma Obsolescent works on library
19270 Add support for wide wide character type
19271 (Resolve_Allocator): Replace the error message on wrong null-exclusion
19272 value by a warning message.
19273 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
19274 as fixed-point, and one of the operands is non-static and universal, it
19275 can only be an illegal exponentiation operation, in which case there is
19276 no real value to retrieve.
19278 * exp_strm.adb: Add support for wide wide character type
19279 (Build_Elementary_Input_Call): Compute the size of the stream element by
19280 querying the rep chain to find the Stream_Attribute attribute value.
19281 (Build_Elementary_Write_Call): Ditto.
19283 * sem_aggr.adb: Char_Literal_Value field is now a Uint
19284 Add support for wide wide character type
19285 Replace the error messages on wrong null-exclusion value by warnings
19286 as described in Ada 2005.
19287 (Resolve_Extension_Aggregate): Document the fact that the error
19288 message on class-wide expressions in extensions aggregates.
19290 * sem_case.adb: Add support for wide wide character type
19292 * sem_ch13.adb: Add support for wide wide character type
19293 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
19295 * sem_ch3.adb: Add support for wide wide character type
19296 (Process_Subtype): If constraint is illegal for the type, set Ekind of
19297 now-useless Itype, to prevent cascaded errors on a compiler built
19300 * sem_ch8.adb: Add with and use of Sem_Disp.
19301 (Analyze_Subprogram_Renaming): Replace unclean uses of
19302 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
19303 of Corresponding_Spec to Empty).
19304 (Attribute_Renaming): Replace use of Corresponding_Spec with
19305 Corresponding_ Formal_Spec and simplify condition.
19306 (Use_One_Package): Check that scope of homonym of identifier is defined,
19307 before checking whether it is a wrapper package.
19308 Add support for wide wide character type
19310 * sem_eval.adb: Add support for wide wide character type.
19311 (Eval_Arithmetic_Op): Check for compile time known signed integer
19312 overflow in the non-static case.
19313 (Subtypes_Statically_Match): A formal scalar type and its base type do
19314 not statically match.
19316 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
19317 "not in" for test of N_Formal_Subprogram_Declaration (which is now a
19319 (Unit_Declaration_Node): Ditto.
19320 (Is_Variable_Prefix): For the case of an indexed component whose prefix
19321 has a packed array type, the prefix has been rewritten into a type
19322 conversion. Determine variable-ness from the converted expression.
19323 Handle wide wide character cases.
19325 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
19327 * stringt.ads, stringt.adb: Handle full UTF-32 range.
19328 Remove ["0A"] from comment, since it can look like a line terminator.
19329 Currently we don't permit this, but this is under discussion by the
19330 ARG, and it is easy enough to use a different example.
19332 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
19333 handling UTF-32 encoding for wide wide character.
19334 Implement new brackets coding ["hhhhhhhh"]
19335 Add UTF-8 encodings for full UTF-32 range
19337 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
19339 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
19340 bit range Add full UTF-32 support.
19341 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
19342 notify that constraint error will be raised at run-time
19343 because a null value is assigned to a null-excluding object.
19344 Remove some obsolete declarations and make Char_Code
19347 * a-except.adb (Rcheck_30): New subprogram. Addition of the message
19348 corresponding to CE_Null_Not_Allowed, and adjust the output of all the
19349 Rcheck subprograms.
19351 * checks.adb (Check_Null_Not_Allowed): Replace the error message on
19352 wrong null-exclusion value by a warning message.
19353 (Enable_Range_Check): Do range check if the prefix is an
19354 explicit dereference whose designated object is an unconstrained array.
19355 Current algorithm for removing duplicate checks is over-eager in this
19358 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
19359 null-exclusion value by a warning message
19361 * atree.h, atree.ads, atree.adb: Remove Char_Code field support
19362 completely. Add support for Uint2 field
19364 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
19365 exp_prag.adb: Char_Literal_Value field is now a Uint.
19367 * exp_util.adb (Insert_Actions): Replace
19368 N_Formal_Subprogram_Declaration by
19369 N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
19370 Char_Literal_Value field is now a Uint.
19372 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
19373 defined for subprogram renaming declarations. When set, the field
19374 indicates the defining entity of a corresponding formal subprogram
19375 when the renaming corresponds to a formal subprogram association in an
19377 (Set_Corresponding_Formal_Spec): New procedure to return
19378 Corresponding_Formal_Spec field.
19379 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
19380 (which is now a subtype).
19381 Char_Literal_Value field is now a Uint
19383 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
19384 pointer to the base of the dispatch table.
19385 Minor changes to comments.
19386 (Controlling_Type): New function for determining the tagged type
19387 associated with a tagged primitive subprogram.
19388 (Expand_Dispatching_Call): Add support for a controlling actual that is
19389 directly a value of type Ada.Tag rather than a tagged object.
19391 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
19392 describing the new layout.
19393 (Dispatch_Table): The expander computes the actual array size, allocates
19394 the Dispatch_Table record accordingly, and generates code that displaces
19395 the base of the record after the Typeinfo_Ptr component. The access to
19396 these components is done by means of local functions.
19397 (Offset_To_Top): New function.
19398 (Typeinfo_Ptr): New function.
19399 (Get_TSD): Modified to access the new position of the TSD.
19400 (Set_TSD): Modified to save the TSD in its new position.
19402 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
19403 case of formal abstract subprograms. Add check and message for -gnat05.
19406 * sem_ch12.adb: Add with and use for Sem_Disp.
19407 (Analyze_Associations): Minor change from "=" to "in" for use of
19408 N_Formal_Subtype_Declaration (which is now a subtype).
19409 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
19410 N_Formal_Subtype_Declaration (which is now a subtype).
19411 (Analyze_Formal_Subprogram): Add handling for
19412 N_Formal_Abstract_Subprogram, marking the formal as abstract and
19413 dispatching, setting the controlling status of the formal parameters
19414 and result, and issuing an error if there is no controlling type for
19415 the formal subprogram.
19416 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
19417 which is an unclean use of that field, we set the new field
19418 Corresponding_Formal_Spec to make the formal subprogram available to
19419 processing in Analyze_Subprogram_Declaration.
19420 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
19421 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
19422 Constrained, so that it is is does not statically match its anonymous
19425 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
19426 abstract formal subprograms in error check for functions returning
19427 abstract types. Set scope of new designator for
19428 a parameterless subprogram, so that it is available when checking the
19429 body for nested subprograms, before full analysis of said body.
19430 (Analyze_Subprogram_Body): Warn on inlining bodies with nested
19431 subprogram only if inner one comes from source.
19432 (Analyze_Function_Call): If the call is given in object notation, the
19433 analysis of the name rewrites the node and analyzes it with the proper
19434 argument list. After analyzing the name, if the call has been rewritten
19435 and the result type is set, no further analysis is needed.
19436 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
19437 mark in function specification, in a context where the formals are
19438 visible and hide outer homographs.
19440 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
19441 as the tagged type for the cases of abstract formal subprograms and
19442 renamings of those. Clean up spec comments.
19443 (Check_Dispatching_Context): Add error message to indicate "abstract
19444 procedure", covering the case of a call to a formal abstract procedure
19445 that has statically tagged operands.
19446 (Check_Dispatching_Call): Check for the case of an actual given by
19447 a tag-indeterminate function call whose type is an ancestor of the
19448 containing call's associated tagged type. This situation can occur
19449 for inherited primitives with function defaults. In this case we
19450 use the tagged type's tag directly as the controlling argument for
19452 (Expand_Call): Name change on call to Expand_Dispatch_Call.
19454 * sprint.adb (Sprint_Node_Actual): Split
19455 N_Formal_Subprogram_Declaration into two alternatives for the new
19456 cases N_Formal_Abstract_Subprogram_Declaration and
19457 N_Formal_Concrete_Subprogram_Declaration.
19458 Char_Literal_Value field is now a Uint.
19460 * trans.c: Get rid of junk Uint2 reference.
19461 Char_Literal_Value field is now a Uint.
19462 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
19463 (gigi): Correct third arg to gimplify_body.
19465 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
19466 (TYPE_LANG_FLAG_0): Check for record or union.
19468 * treepr.adb: Char_Literal_Value field is now a Uint
19470 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
19473 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
19474 Add full UTF-32 support
19475 Char_Code is now 32 bits
19477 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
19478 wide character UTF_32 line terminators.
19479 Initialize Main_Source_File to avoid error when no main
19482 * errout.adb (Finalize): Do not check Num_SRef_Pragmas
19483 (Main_Source_File) when no main source has been loaded, to avoid
19486 2005-02-09 Robert Dewar <dewar@adacore.com>
19488 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
19489 Fix name of Set routine
19491 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
19494 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
19495 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
19498 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
19499 forms of Get_Line subprograms for AI-301.
19501 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
19502 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
19503 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
19504 a-stwima.ads: Minor reformatting.
19506 2005-02-09 Doug Rupp <rupp@adacore.com>
19507 Thomas Quinot <quinot@adacore.com>
19509 * adaint.c, adaint.h
19510 [VMS] (to_ptr32): New function.
19511 (MAYBE_TO_PTR32): New macro.
19512 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
19514 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
19515 [VMS] (#define fork()): Remove since unneccessary.
19516 (__gnat_set_close_on_exec): New routine to support
19517 GNAT.OS_Lib.Set_Close_On_Exec.
19519 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
19520 the parent side as close-on-exec so that they are not inherited by the
19523 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
19524 set or clear the FD_CLOEXEC flag on a file descriptor.
19526 2005-02-09 Eric Botcazou <ebotcazou@adacore.com>
19527 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
19531 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
19532 on the field if Pragma Component_Alignment (Storage_Unit).
19533 (gnat_to_gnu_entity, case object): Do not treat a renaming that has
19534 side-effects as if it were a constant; also make SAVE_EXPR to protect
19536 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
19538 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
19539 (components_to_record): Test it.
19540 Fix improper usage of REFERENCE_CLASS_P.
19542 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
19545 * utils2.c: Minor reformatting.
19547 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
19548 handle other cases like RECORD_TYPE.
19550 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
19552 2005-02-09 Ed Schonberg <schonberg@adacore.com>
19554 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
19555 component of an array of arrays in an assignment context, and the
19556 aggregate has component associations that require sliding on
19557 assignment, force reanalysis of the aggregate to generate a temporary
19558 before the assignment.
19559 (Must_Slide): Make global to the package, for use in Gen_Assign.
19561 2005-02-09 Ed Schonberg <schonberg@adacore.com>
19563 * exp_ch4.adb (Expand_Composite_Equality): If a component is an
19564 unchecked union with no inferable discriminants, return a
19565 Raise_Program_Error node, rather than inserting it at the point the
19567 (Expand_Record_Equality, Component_Equality): Handle properly the case
19568 where some subcomponent is an unchecked union whose generated equality
19569 code raises program error.
19571 2005-02-09 Doug Rupp <rupp@adacore.com>
19573 * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
19574 [VMS] (#define exit hack): Remove.
19576 2005-02-09 Pascal Obry <obry@adacore.com>
19577 Arnaud Charlet <charlet@adacore.com>
19579 * init.c (__gnat_initialize): Add a new parameter eh which contains the
19580 address of the exception registration. The Win32 version of this
19581 routine calls __gnat_install_SEH_handler() to initialize the SEH
19582 (Structured Exception Handling) handler.
19583 (__gnat_error_handler) [Win32]: Removed. Not needed as we use
19584 SEH (Structured Exception Handling) now.
19585 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
19586 (__gnat_initialize for ppc-vxworks): Adjust comments and the
19587 preprocessor condition protecting the call to the extra eh setup
19588 subprogram, which is only available for the ppc target.
19589 (__gnat_clear_exception_count): replaced reference to
19590 variable taskIdCurrent by call to taskIdSelf(), cleaner.
19592 * seh_init.c: New file.
19594 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
19595 (GNATBIND_OBJS): Idem.
19597 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
19598 routine takes a new parameter (a pointer to the exception registration
19599 for the SEH (Structured Exception Handling) support.
19601 * raise.h: (__gnat_install_SEH_handler): New prototype.
19602 Update copyright notice.
19604 * s-tassta.adb (Task_Wrapper): Declare the exception registration
19605 record and initialize it by calling __gnat_install_SEH_handler.
19607 2005-02-09 Vincent Celier <celier@adacore.com>
19609 * make.adb (Gnatmake): Do not fail when the main project has no object
19612 2005-02-09 Doug Rupp <rupp@adacore.com>
19614 * Makefile.in [VMS] (LN,LN_S): Define as cp -p
19615 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
19616 [VMS]: Add translations for g-enblsp.adb.
19618 * s-asthan-vms.adb: Removed.
19619 * s-asthan-vms-alpha.adb: Added.
19621 2005-02-09 Pascal Obry <obry@adacore.com>
19623 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
19624 (LIBGNAT_OBJS): Add seh_init.o.
19626 2005-02-09 Arnaud Charlet <charlet@adacore.com>
19629 * Makefile.in: Link all gnat tools with -static-libgcc, since
19630 -shared-libgcc is now used by default on some systems (e.g. linux with
19632 Remove references to Makefile.prolog/generic, no longer used.
19634 2005-02-09 Vincent Celier <celier@adacore.com>
19636 * prj-makr.adb (Process_Directory): Put file name in canonical case
19637 before matching against the patterns.
19638 If gnatname has been invoked as <prefix>-gnatname
19639 then invoke the compiler as <prefix>-gcc, not just "gcc".
19641 2005-02-09 Ed Schonberg <schonberg@adacore.com>
19643 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
19644 with expansion disabled. The actual subtype is needed among other
19645 places when the selected component appears in the context of a loop
19646 bound, and denotes a packed array.
19647 (Operator_Check): Always use the first subtype in the
19648 error message, to avoid the appearance of internal base types.
19649 (Transform_Object_Operation): Copy each actual in full
19650 to the parameter associations of the constructed call, rather than
19651 using the shallow copy mechanism of New_Copy_List. This ensures that
19652 the chaining of named associations is done properly.
19653 (Complete_Object_Operation): Rewrite node, rather than
19654 replacing it, so that we can trace back to the original selected
19657 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
19658 and calls that use object notation, if the called function is not
19659 declared in a withed unit, place the elaboration constraint on the
19660 unit in the context that makes the function accessible.
19661 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
19662 imposes an elaboration constraint between two packages.
19664 2005-02-09 Ed Schonberg <schonberg@adacore.com>
19666 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
19667 views of a private type after handling its private dependents, to
19668 maintain proper stack discipline between entry and exit from the
19671 2005-02-09 Cyrille Comar <comar@adacore.com>
19673 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
19674 Minor reformatting.
19676 2005-02-09 Arnaud Charlet <charlet@adacore.com>
19678 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
19679 fields for foreign threads.
19681 2005-02-09 Doug Rupp <rupp@adacore.com>
19683 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
19684 recursion warnings when compiled with -gnatdm.
19686 2005-02-09 Robert Dewar <dewar@adacore.com>
19688 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
19689 Slight fix to documentation of -gnaty with no parameters
19691 * xr_tabls.ads: Add ??? comment for missing overall comment
19693 * xsinfo.adb: Make default file name be sinfo.h, since this is what
19694 we now use by default.
19696 * xsnames.adb: Adjust end of file test to look for five space followed
19697 by '#' instead of six spaces. The format of xsnames.adb was modified
19698 in the last update.
19700 * a-numeri.ads: Add reference to AI-388 for greek letter pi
19703 * clean.adb: Minor reformatting.
19705 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
19706 gnatname.adb: Minor reformatting
19707 Add 2005 to copyright output when utility is run
19709 * csets.adb: Eliminate obsolete comment
19711 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
19714 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
19716 2005-02-09 Sergey Rybin <rybin@adacore.com>
19718 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
19719 the difference between compact and incompact layout and add the record
19720 representation clause to the example illustrating different layouts.
19721 Add the description of '-A5' gnatpp option ("align 'AT' keywords in
19722 component clauses").
19724 2005-02-09 Florian Villoing <villoing@adacore.com>
19726 * gnat_ugn.texi: Fix typos.
19727 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
19729 Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
19730 in the generated documentation.
19732 2005-02-09 Arnaud Charlet <charlet@adacore.com>
19734 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
19736 Update linker wrapper when linking with non GNU C++.
19738 2005-02-09 Pascal Obry <obry@adacore.com>
19741 Document the procedure to debug the DllMain routine on Windows.
19742 Add note about -funwind-tables and mixed Ada and C/C++ programming in
19744 Document new BIND qualifer /RETURN_CODES=VMS.
19746 2005-02-09 Ben Brosgol <brosgol@adacore.com>
19748 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
19749 Edited gnatmetric chapter
19751 2005-02-09 Robert Dewar <dewar@adacore.com>
19754 Changes to document new wide wide character support
19756 Update documentation on Normalize_Scalars and Initialize_Scalars
19758 2005-02-09 Pascal Obry <obry@adacore.com>
19760 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
19762 2005-02-09 Jose Ruiz <ruiz@adacore.com>
19764 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
19765 from the VxWorks kernel) that is needed for getting the active
19766 priority of the different tasks.
19768 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
19769 Use a pragma Elaborate_Body in the spec file instead.
19770 Noticed by code reading.
19772 2005-02-09 Thomas Quinot <quinot@adacore.com>
19774 * exp_util.ads: Minor correction in comment.
19776 2005-02-09 Arnaud Charlet <charlet@adacore.com>
19778 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
19779 since this procedure is now too complex to be worth inlining.
19781 2005-02-09 Richard Henderson <rth@redhat.com>
19783 * utils.c (gnat_define_builtin): Remove.
19784 (gnat_install_builtins): Use build_common_builtin_nodes.
19786 2005-02-09 Arnaud Charlet <charlet@adacore.com>
19788 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
19789 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
19790 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
19791 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
19792 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
19793 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
19794 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
19795 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
19796 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
19797 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
19798 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
19799 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
19800 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
19801 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
19802 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
19803 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
19804 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
19805 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
19806 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
19807 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
19808 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
19809 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
19810 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
19811 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
19812 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
19813 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
19814 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
19815 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
19816 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
19817 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
19818 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
19819 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
19820 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
19821 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
19824 2005-01-27 Laurent GUERBY <laurent@guerby.net>
19826 * Makefile.in: Fix a-intnam.ads from previous commit,
19827 add 2005 to copyright.
19828 * a-intman-rtems.ads: Renamed to...
19829 * a-intnam-rtems.ads:
19831 2005-01-27 Laurent GUERBY <laurent@guerby.net>
19833 * Makefile.in: Rename GNAT RTEMS specific files.
19834 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
19835 5rosinte.ads, 5rparame.adb: Replaced by files below.
19836 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
19837 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
19839 2005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com>
19840 Laurent GUERBY <laurent@guerby.net>
19843 * 5rosinte.ads: Add No_Key constant.
19844 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
19845 * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
19847 2005-01-26 Laurent GUERBY <laurent@guerby.net>
19850 * i-cobol.adb (Valid_Numeric): Handle zero length case.
19852 2005-01-20 Richard Henderson <rth@redhat.com>
19854 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
19855 a-intnam-linux.ads and system-linux-alpha.ads.
19856 * a-intnam-linux-alpha.ads: Remove file.
19857 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
19858 * system-linux-alpha.ads: New file.
19860 2005-01-18 Jakub Jelinek <jakub@redhat.com>
19863 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
19864 set to the new string.
19866 2005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
19868 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
19871 2005-01-18 Richard Henderson <rth@redhat.com>
19873 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
19874 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
19876 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
19878 2005-01-14 Andrew Pinski <pinskia@physics.uc.edu>
19880 * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
19881 (GCC_ZCX_Support): Likewise.
19883 2005-01-11 Bastian Blank <waldi@debian.org>
19885 * system-linux-s390.ads: Define Preallocated_Stacks.
19886 * system-linux-s390x.ads: Likewise.
19888 2005-01-04 Arnaud Charlet <charlet@adacore.com>
19890 * gnat_ugn.texi: Fix texi errors with null variables.
19892 2005-01-03 Thomas Quinot <quinot@adacore.com>
19894 * gen-soccon.c: New utility program to generate g-soccon.ads
19897 * socket.c, gsocket.h: Split inclusion of system header files into a
19898 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
19900 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
19901 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
19902 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
19903 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
19904 should not be edited by hand anymore, but should be regenerated using
19907 2005-01-03 Robert Dewar <dewar@adacore.com>
19908 Ed Schonberg <schonberg@adacore.com>
19909 Vincent Celier <celier@adacore.com>
19911 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
19912 on/off, since this is an obsolescent feature, for which we now generate
19915 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
19916 warning mode is set and obsolescent usage of this attribute occurs.
19917 (Resolve_Access, case 'Access): Note that GNAT uses the context type to
19918 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
19919 predates, and partly motivates, the adoption of the AI.
19920 Implement new Ada 2005 attribute Mod
19922 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
19925 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
19927 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
19928 pragma restrictions.
19929 New entry for Ada 2005 attribute Mod.
19932 Add recognition of new pragma Restrictions No_Dependence
19933 Recognize restriction No_Obsolescent_Features at parse time
19935 * bcheck.adb: Add circuitry for checking for consistency of
19936 No_Dependence restrictions.
19938 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
19941 * restrict.ads, restrict.adb: Add subprograms to deal with
19942 No_Dependence restrictions.
19944 * rtsfind.adb: Check that implicit with's do not violate No_Dependence
19947 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
19948 sem_attr.adb: Add check for new restriction No_Obsolescent_Features
19950 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
19951 dummy parameter to scng instantiation.
19952 Needed for new restriction No_Obsolescent_Features
19954 * scn.adb: (Obsolescent_Check): New procedure
19955 Needed for new restriction No_Obsolescent_Features
19957 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
19958 specified by AI-285, needed for implementation of AI-388 (adding greek
19959 pi to Ada.Numerics).
19960 Add new generic formal to scng, needed for new restriction
19961 No_Obsolescent_Features.
19963 * s-rident.ads: Add new restriction No_Obsolescent_Features.
19965 * ali.ads, ali.adb: Adjustments for reading new No_Dependence
19966 restrictions lines.
19967 (Scan_ALI): When finding an unexpected character on an R line, raise
19968 exception Bad_R_Line, instead of calling Fatal_Error, so that, when
19969 Ignore_Errors is True, default restrictions are set and scanning of the
19970 ALI file continues with the next line. Also, when Bad_R_Line is raised
19971 and Ignore_Errors is True, skip to the end of le line.
19973 * sem_ch10.adb: Check that explicit with's do not violate
19974 No_Dependence restrictions.
19975 (Install_Withed_Unit): Add code to implement AI-377 and diagnose
19976 illegal context clauses containing child units of instance.
19978 * sem_prag.adb: Processing and checking for new No_Dependence
19980 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
19981 analyze and check the External argument.
19983 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
19985 2005-01-03 Robert Dewar <dewar@adacore.com>
19987 * atree.adb: Add a fifth component to entities
19988 This allows us to add 32 flags and four new fields
19990 * atree.ads: Add a fifth component to entities
19991 This allows us to add 32 flags and four new fields
19993 * einfo.ads, einfo.adb: Document new fields and new flags now available
19994 Add routines for printing new fields
19996 * treepr.adb: Call routines to print out additional fields if present
19998 2005-01-03 Arnaud Charlet <charlet@adacore.com>
20000 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
20001 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
20003 * Makefile.in: Add support to build shared Ada libraries on solaris x86
20004 Remove gpr2make, replaced by gprmake.
20005 Remove references to gnatmem and libaddr2line.
20006 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
20007 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
20008 Add support for specialized version of Ada.Numerics.Aux for Darwin: use
20009 a-numaux-darwin.ads and a-numaux-darwin.adb
20010 Enable mlib-tgt-lynxos.adb on lynxos.
20012 * Make-lang.in: Remove rules for gpr2make.
20013 When generating sdefault.adb, do not call Relocate_Path
20014 on S3 for function Target_Name, as it is not a path.
20015 Remove references to gnatmem and libaddr2line.
20017 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
20020 2005-01-03 Samuel Tardieu <tardieu@adacore.com>
20022 * checks.adb (Apply_Alignment_Check): Generate a warning if an object
20023 address is incompatible with its base type alignment constraints when
20024 this can be decided statically.
20026 2005-01-03 Olivier Hainque <hainque@adacore.com>
20028 * decl.c (compatible_signatures_p): New function. The intended purpose
20029 is to check if two function signatures for a call-site and a callee are
20030 compatible enough for the call to be valid. The underlying purpose is
20031 to check if a call to a mapped builtin is using the right interface.
20032 The current code actually does not check antyhing - this a placeholder
20033 for future refinements.
20034 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
20035 builtin calls for convention Intrinsic.
20037 * gigi.h (builtin_decl_for): Declare (new function).
20039 * utils.c (gnat_install_builtins): Install the target specific builtins.
20040 (builtin_decl_for): New function, provide a dummy body for now.
20042 2005-01-03 Geert Bosch <bosch@adacore.com>
20044 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
20045 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
20046 (Pred): Implement in terms of Succ.
20048 * trans.c (convert_with_check): Reimplement conversion of float to
20051 2005-01-03 Ed Schonberg <schonberg@adacore.com>
20052 Vincent Celier <celier@adacore.com>
20054 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
20055 bounds can be negative, and must be declared Int, not Nat.
20057 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
20058 array is checked after using the index in the array.
20060 * makegpr.adb (Add_Switches): Check if there is a package for the
20061 processor. If there is no package, do not look for switches.
20063 2005-01-03 Ed Schonberg <schonberg@adacore.com>
20065 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
20066 generation of predefined stream operations (specs and bodies) should
20067 proceed. Under various restrictions these subprograms must not be
20070 2005-01-03 Thomas Quinot <quinot@adacore.com>
20073 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
20074 amount of PCS-specific code in RACW stubs generation.
20075 (Copy_Specification): Set Etype on copied formal parameter entities, as
20076 this information is needed for PolyORB stubs generation.
20077 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
20078 variable Dynamic_Async.
20079 (Build_Subprogram_Receiving_Stubs): Make PCS-specific
20080 (Build_RPC_Receiver_Specification): Make generic again, as recent
20081 changes have allowed RPC receivers to have the same profile for both
20082 variants of the PCS.
20083 Reorganise RPC receiver generation to reduce differences between the
20084 structure of GARLIC and PolyORB RPC receivers.
20085 (Add_Receiving_Stubs_To_Declarations): Make this subprogram
20087 Simplify elaboration code for RCI packages.
20089 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
20090 generation to reduce differences between the structure of GARLIC and
20091 PolyORB RPC receivers.
20093 * s-stratt.adb: Fix typo in comment.
20095 2005-01-03 Thomas Quinot <quinot@adacore.com>
20097 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
20098 copied from Make_Init_Call).
20100 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
20101 reads and assignments on a temporary variable declared with appropriate
20104 2005-01-03 Robert Dewar <dewar@adacore.com>
20106 * i-c.adb (To_C): Raise CE if string is null and Append_Null
20108 2005-01-03 Robert Dewar <dewar@adacore.com>
20110 * i-cstrin.adb (Update): Do not append a null in form called with a
20111 String. This avoids unintended behavior.
20113 2005-01-03 Arnaud Charlet <charlet@adacore.com>
20116 * init.c: Fix warnings on Free BSD section.
20118 2005-01-03 Arnaud Charlet <charlet@adacore.com>
20121 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
20124 2005-01-03 Vincent Celier <celier@adacore.com>
20126 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
20127 libraries when Unique_Compile is True (-u switch).
20130 2005-01-03 Robert Dewar <dewar@adacore.com>
20132 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
20133 upper case letter or underscore after W, as allowed by spec.
20135 2005-01-03 Arnaud Charlet <charlet@adacore.com>
20137 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
20138 darwin port by using proper type definitions from header files.
20139 Use SIGTERM instead of SIGABRT for SIGADAABORT.
20141 2005-01-03 Robert Dewar <dewar@adacore.com>
20143 * par.adb: Enhance error message handling for configuration file
20146 2005-01-03 Robert Dewar <dewar@adacore.com>
20148 * s-arit64.adb (Double_Divide): Put back changes that got accidentally
20149 removed during the previous update (test properly for case of dividing
20150 largest negative number by -1, which generates overflow).
20152 2005-01-03 Ed Schonberg <schonberg@adacore.com>
20153 Sergey Rybin <rybin@adacore.com>
20155 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
20156 to use as the defining identifier for a formal package.
20157 (Remove_Parent): If the instance takes place within (an instance of)
20158 a sibling, preserve private declarations of common parent.
20160 2005-01-03 Ed Schonberg <schonberg@adacore.com>
20162 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
20163 to determine whether one of the operands is a fixed-point type for
20164 which a user-defined multiplication or division operation might be
20167 * sem_res.adb (Valid_Conversion): The legality rules for conversions
20168 of access types are symmetric in Ada 2005: either designated type can
20171 2005-01-03 Vincent Celier <celier@adacore.com>
20173 * s-fileio.adb (Temp_File_Record): Change length of string component
20174 Name from L_tmpnam + 1 to max_path_len + 1.
20176 2005-01-03 Arnaud Charlet <charlet@adacore.com>
20178 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
20179 Self_Id.Deferral_Level = 0.
20180 (Do_Pending_Action): Move this function to the spec.
20182 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
20183 Do_Pending_Action explicitely when needed, in case we're using
20184 No_Abort restrictions.
20186 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
20187 deferral level since it will not get changed by the generated code.
20188 Keeping a default value of 1 would prevent some operations (e.g.
20189 select or delay) to proceed successfully.
20191 2005-01-03 Ben Brosgol <brosgol@adacore.com>
20192 Robert Dewar <dewar@adacore.com>
20193 Cyrille Comar <comar@adacore.com>
20195 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
20196 porting guide chapter (vms version).
20197 Revised doc title (removed "for native platforms") and subtitle.
20198 Add discussion on warning flag for obsolescent features. First we
20199 note that it applies to obsolete GNAT features, which was previously
20200 omitted. Second we contrast the behavior with that of the new
20201 Ada 2005 AI-368 restriction No_Obsolescent_Features.
20202 Preliminary rewriting of GNAT & libraries chapter in order to take
20203 into account default project locations & new project manager
20206 2005-01-03 Robert Dewar <dewar@adacore.com>
20208 * cstand.adb (Create_Operators): Clean up format and documentation of
20209 unary and binary operator result tables. No change in code, just
20210 reformatting and addition of comments.
20212 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
20213 sem_ch2.adb: Minor reformatting
20215 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
20216 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
20217 comments for Tree_Read and Tree_Write.
20219 2005-01-03 Pascal Obry <obry@adacore.com>
20221 * exp_attr.ads: Minor reformatting.
20223 2005-01-03 Romain Berrendonner <berrendo@adacore.com>
20225 * comperr.adb (Compiler_Abort): Add specialized message for GAP
20228 2005-01-03 Ed Schonberg <schonberg@adacore.com>
20230 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
20231 whether the ancestor type is private, as may be the case with nested
20234 2004-12-30 Sohail Somani <sohail@sohailsomani.com>
20237 * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
20239 2004-12-23 Eric Botcazou <ebotcazou@libertysurf.fr>
20241 * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
20242 * utils2.c (build_unary_op): Likewise.
20244 2004-12-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20246 * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
20248 2004-12-19 Richard Henderson <rth@redhat.com>
20250 * trans.c (gigi): Update gimplify_body call.
20252 2004-12-09 Nathan Sidwell <nathan@codesourcery.com>
20254 * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
20256 2004-12-07 Ed Falis <falis@adacore.com>
20258 * s-intman-vxworks.adb (Notify_Exception): removed useless check for
20259 current task being suspended.
20261 * init.c (__gnat_clear_exception): added to reset VxWorks exception
20263 (__gnat_map_signal): removed test for current task being suspended.
20265 2004-12-07 Gary Dismukes <dismukes@adacore.com>
20267 * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
20268 from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
20269 targets (such as AAMP).
20271 2004-12-07 Ed Schonberg <schonberg@adacore.com>
20273 * atree.adb (Visit_Itype): Create a new name for the generated itype,
20274 because the back-end may otherwise treat it as a redefinition of the
20277 2004-12-07 Eric Botcazou <ebotcazou@adacore.com>
20279 * back_end.adb (Scan_Back_End_Switches): Accept --param.
20281 * lang-specs.h: Accept --param.
20283 2004-12-07 Vincent Celier <celier@adacore.com>
20285 * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
20286 package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
20287 Current_Body_Suffix => Ada_Body_Suffix).
20288 Take into account Externally_Built attribute.
20290 * clean.adb (In_Extension_Chain): Always return False when one of the
20291 parameter is No_Project.
20292 (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
20293 Ada_Language_Index).
20294 (Gnatclean): Adapt to change in package Prj.Pars (no parameter
20295 Process_Languages for procedure Parse).
20297 * gnatcmd.adb (Carg_Switches): New table.
20298 (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
20299 Adapt to name changes in package Prj (Current_Spec_Suffix =>
20300 Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
20302 * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
20303 Header_Num and function Hash are now declared in package Prj,
20306 * prj.adb (Suffix_Of): New function.
20307 (Set (Suffix)): New procedure.
20308 (Hash): One function moved from Prj.Com
20309 (Is_Present, Language_Processing_Data_Of): New functions
20310 (Set): Two new procedures
20311 (Add_Language_Name, Display_Language_Name): New procedures
20313 * prj.ads: (Suffix_Of): New function
20314 (Set (Suffix)): New procedure
20315 Add several types and tables for multi-language support.
20316 (Header_Num): Type moved from Prj.Com
20317 (Hash): Two functions moved from Prj.Com
20318 (Is_Present, Language_Processing_Data_Of): New functions
20319 (Set): Two new procedures
20320 (Add_Language_Name, Display_Language_Name): New procedures
20321 (Naming): Component name changes:
20322 Current_Spec_Suffix => Ada_Spec_Suffix,
20323 Current_Body_Suffix => Ada_Body_Suffix. Add new components:
20324 Impl_Suffixes, Supp_Suffixes.
20325 (Project_Data): New components: Externally_Built, Supp_Languages,
20326 First_Language_Processing, Supp_Language_Processing, Default_Linker,
20327 Default_Linker_Path.
20329 * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
20330 new package Language_Processing with its attributes (Compiler_Driver,
20331 Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
20332 Binder_Driver, Default_Linker).
20334 * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
20335 (Header_Num): Type moved to package Prj
20337 * prj-env.adb: Adapt to name changes in package Prj
20338 (Current_Spec_Suffix => Ada_Spec_Suffix,
20339 Current_Body_Suffix => Ada_Body_Suffix).
20341 * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
20342 default to the project path, except the "-" is one of the directories
20343 in env var ADA_PROJECT_PATH.
20344 (Current_Project_Path): Global variable, replacing Project_Path
20345 that was in the body of Prj.Part.
20346 (Project_Path): New function
20347 (Set_Project_Path): New procedure
20348 Initialize Current_Project_Path during elaboration of the package
20349 Remove dependency on Prj.Com, no longer needed
20351 * prj-ext.ads (Project_Path): New function
20352 (Set_Project_Path): New procedure
20354 * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
20355 suffix is defined for language <lang>.
20356 (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
20357 accessing directly the components of Naming.
20358 (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
20359 Reorganise of this package.
20360 Break procedure Check in several procedures.
20362 * prj-nmsc.ads: Replace all procedures (Ada_Check,
20363 Other_Languages_Check and Language_Independent_Check) with a single
20366 * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
20367 Process_Languages, no longer needed.
20369 * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
20370 Current_Project_Path.
20371 Remove elaboration code, moved to the body of Prj.Ext
20372 Use new function Prj.Ext.Project_Path instead of old variable
20374 (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
20375 When comparing with project paths on the stack, first put the resolved
20376 path in canonical case.
20377 (Parse_Single_Project): Set the path name of the project file in the
20378 tree to the normalized path.
20380 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
20381 parameter Process_Languages, no longer needed.
20382 (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
20383 Other_Languages_Check.
20385 * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
20386 to store the resolved canonical path of the project file.
20387 Remove dependency to Prj.Com, no longer needed
20389 * prj-util.adb: Adapt to name changes in package Prj
20390 (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
20393 * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
20394 Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
20395 Externally_Built, Include_Option, Language_Processing.
20397 * makegpr.adb: Numerous changes due to changes in packages
20400 * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
20401 default to the project path, except whe "-" is one of the directories
20402 in env var ADA_PROJECT_PATH.
20403 (Gnatls): In verbose mode, add the new section "Project Search Path:"
20405 2004-12-07 Robert Dewar <dewar@adacore.com>
20407 * debug.adb: Document that -gnatdA automatically sets -gnatR3m
20409 * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
20412 * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
20413 flag. No longer needed now that we handle this in gnat1drv.adb.
20415 * repinfo.ads: Minor reformatting
20417 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20418 Olivier Hainque <hainque@adacore.com>
20419 Eric Botcazou <ebotcazou@adacore.com>
20421 * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
20422 TYPE_SIZE_UNIT of result type if SIZE is not specified.
20423 (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
20424 of a bitfield, which we know is useless and causes trouble because of
20425 alignment implications.
20427 * utils.c (create_var_decl): Set DECL_COMMON again on targets without
20429 (process_attributes): Clear DECL_COMMON again when a section attribute
20431 (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
20432 SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
20433 (create_field_decl): Special case ADDRESSABLE negative to mean
20434 "no bitfield creation", to be used by make_aligning_type. Don't
20435 restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
20436 fields claimed addressable still have to be bitfields. Use
20437 value_factor_p instead of a raw binop construction to check for the
20438 position's alignment.
20440 2004-12-07 Geert Bosch <bosch@adacore.com>
20442 * eval_fat.adb: Revert previous change.
20444 2004-12-07 Thomas Quinot <quinot@adacore.com>
20445 Ed Schonberg <schonberg@adacore.com>
20447 * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
20448 with an implicit dereference as its prefix, use
20449 Insert_Explicit_Dereference instead of merely rewriting the prefix into
20450 an explicit dereference. This ensures that a reference to the original
20451 prefix is generated, if appropriate.
20453 * sem_util.adb (Insert_Explicit_Dereference): When an implicit
20454 dereference is rewritten to an explicit one, generate a reference to
20455 the entity denoted by its prefix using the original prefix node, so
20456 the dereference can be properly recorded as a read of the denoted
20457 access value, if appropriate.
20459 * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
20460 emitting 'assigned but never read' warning on a variable on the basis
20461 that it has an access type.
20462 (Check_References): Emit unreferenced warning when the scope is a
20465 2004-12-07 Robert Dewar <dewar@adacore.com>
20466 Ed Schonberg <schonberg@adacore.com>
20468 * exp_ch6.adb (Expand_Call): Add comment on handling of back end
20471 * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
20472 leaving call unchanged.
20473 This deals with the case where the pragma Import specified
20474 an external name, to be handled by the back end.
20476 * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
20477 subprogram which is Imported with convention Intrinsic if an
20478 External_Name argument is specified.
20479 (Process_Import_Or_Interface): Properly diagnose link name argument.
20480 (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
20481 with Sem_Ch6.Cannot_Inline.
20482 (Process_Inline): Provide separate warning for inapplicable inline
20484 (Cannot_Inline): Reject subprograms that have an at_end handler, so that
20485 treatment is uniform on different targets.
20487 2004-12-07 Ed Schonberg <schonberg@adacore.com>
20489 * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
20490 construct is rewritten, preserve end label to permit source navigation.
20492 2004-12-07 Thomas Quinot <quinot@adacore.com>
20494 * exp_dist.adb (Specific_Build_General_Calling_Stubs,
20495 Specific_Build_Stub_Target): New subprograms.
20496 (Build_Subprogram_Calling_Stubs): Make this procedure independent from
20497 the PCS implementation used, using the above PCS-customized subprograms.
20498 Minor reformatting.
20499 (PolyORB_Support.Helpers): New subunit containing supporting subprograms
20500 for generation of DSA code targeted to the PolyORB PCS.
20501 (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
20502 implementation of the partition communication subsystem in ancillary
20504 (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
20505 PolyORB_Support.Build_Stub_Type): New subrograms containing the
20506 PCS-specific part of Add_Stub_Type.
20507 (Insert_Partition_Check): Use runtime library function to perform
20510 * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
20511 (RE_Same_Partition): New entity, from s-parint.
20513 * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
20515 2004-12-07 Gary Dismukes <dismukes@adacore.com>
20517 * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
20518 Output the copyright message on a separate line from the version
20521 2004-12-07 Joel Brobecker <brobecker@adacore.com>
20523 * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
20524 compile-time warning.
20526 2004-12-07 Robert Dewar <dewar@adacore.com>
20528 * g-regpat.adb: (Match): Change a misuse of or to or else
20530 2004-12-07 Ed Schonberg <schonberg@adacore.com>
20533 (Generate_Reference): Handle properly a reference to an entry formal,
20534 when an accept statement has a pragma Unreferenced for it.
20536 * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
20537 and the Has_Pragma_Unreferenced flag for each formal before analyzing
20538 the body, to ensure that warnings are properly emitted for each accept
20539 statement of a given task entry.
20541 2004-12-07 Vasiliy Fofanov <fofanov@adacore.com>
20543 * Makefile.in: Add support for foreign threads on VMS.
20545 2004-12-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
20547 * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
20549 (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
20551 * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
20553 * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
20555 (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
20557 2004-12-07 Robert Dewar <dewar@adacore.com>
20559 * nlists.adb (Prepend_Debug): Remove parameters and nest within
20561 (Remove_Next_Debug): Same fix
20563 * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
20564 maintain back pointers now, though we did not used to, and comments
20566 (Prepend): Remove pragma Inline.
20567 (Remove_Next): Same cleanup
20569 2004-12-07 Thomas Quinot <quinot@adacore.com>
20571 * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
20572 used to record an implicit dereference as a read operation on its
20573 prefix when operating under -gnatc. Necessary to avoid spurious
20574 'variable assigned but never read' warnings in that mode.
20575 (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
20576 is a non-overloaded implicit dereference, call the above subprogram to
20577 ensure proper recording of references.
20579 2004-12-07 Gary Dismukes <dismukes@adacore.com>
20581 * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
20582 to be resolved later as part of Analyze_Iteration_Scheme's call to
20585 2004-12-07 Ed Schonberg <schonberg@adacore.com>
20587 * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
20588 prefix is not a scalar type, place error message on prefix, not on
20591 2004-12-07 Bernard Banner <banner@adacore.com>
20593 * vxaddr2line.adb: Add support for x86 vxworks
20595 2004-12-07 Thomas Quinot <quinot@adacore.com>
20597 * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
20598 documentation of the behaviour of these functions when passed an IP
20599 address that has no record in the system hosts database and no reverse
20602 * cstand.adb, a-tags.ads: Fix typos in comment.
20604 2004-12-07 Robert Dewar <dewar@adacore.com>
20606 * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
20607 exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
20608 sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
20609 s-poosiz.ads: Minor reformatting
20611 * make.adb: Minor reformatting
20612 Add some ??? comments asking for more comments
20614 * s-poosiz.adb: Minor reformatting
20615 Add comments on alignment requirement
20617 * sinfo.ads: Remove obsolete comment and fix typo.
20619 2004-12-07 Vincent Celier <celier@adacore.com>
20620 Sergey Rybin <rybin@adacore.com>
20622 * gnat_ugn.texi: Update the section "The GNAT Driver and Project
20623 Files" with the new tool and package names.
20624 Reformatting to suppress most of the warnings for line too long
20625 Document the new section "Project Search Path:" in the output of
20627 Add gnatmetric section
20629 2004-12-07 Vincent Celier <celier@adacore.com>
20631 * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
20632 -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
20633 and -eit to -ept. Added qualifier
20634 /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
20636 2004-11-27 Andreas Schwab <schwab@suse.de>
20638 * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
20640 2004-11-25 Arnaud Charlet <charlet@adacore.com>
20642 * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
20643 internal implementation unit GNAT.Sockets.Thin,
20644 as their usage for sockets is non-portable (using the read and write
20645 functions from the system runtime library is fine on UNIX but won't
20646 work under Windows).
20648 * mingw32.h: Update copyright notice.
20650 2004-11-25 Arnaud Charlet <charlet@adacore.com>
20652 * ada-tree.h: Minor reformatting of previous change to avoid lines
20653 longer than 79 characters.
20655 2004-11-25 Olivier Hainque <hainque@adacore.com>
20657 * tb-gcc.c: GCC infrastructure based implementation of
20660 2004-11-24 Steven Bosscher <stevenb@suse.de>
20662 * misc.c (gnat_post_options): Don't clear
20663 flag_inline_functions.
20665 2004-11-22 Andrew Pinski <pinskia@physics.uc.edu>
20668 * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
20671 2004-11-21 Andreas Jaeger <aj@suse.de>
20673 * stylesw.adb: Change Style_Check_Subprogram_Order to
20674 Style_Check_Order_Subprograms.
20676 2004-11-18 Arnaud Charlet <charlet@adacore.com>
20678 * adaint.h, adaint.c
20679 (__gnat_portable_spawn): Fix cast of spawnvp third parameter
20681 Add also a cast to kill another warning.
20682 (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
20683 parameter with the priority class of the parent process instead of
20684 always using the NORMAL_PRIORITY_CLASS.
20685 (__gnat_dup): New function.
20686 (__gnat_dup2): New function.
20687 (__gnat_is_symbolic_link): Enable the effective body of this
20688 function when __APPLE__ is defined.
20690 * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
20693 2004-11-18 Olivier Hainque <hainque@adacore.com>
20695 * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
20696 address of which may be used to represent "others" and "all others"
20697 choices in exception tables, instead of the current harcoded
20698 (void *)0 and (void *)1.
20699 (Setup_Exception): Do nothing in the GNAT SJLJ case.
20701 * gigi.h (others_decl, all_others_decl): New decls representing the
20702 new Others_Value and All_Others_Value objects.
20703 (struct attrib): Rename "arg" component as "args", since GCC expects a
20704 list of arguments in there.
20706 * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
20707 corresponding objects exported by a-exexpr, instead of hardcoded dummy
20710 * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
20711 others_decl and all_others_decl instead of hardcoded dummy addresses
20712 to represent "others" and "all others" choices, which is cleaner and
20713 more flexible with respect to the possible eh pointer encoding policies.
20715 * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
20716 (process_attributes): Account for the naming change of the "args"
20717 attribute list entry component.
20719 * decl.c (build_attr_list): Rename into prepend_attributes to allow
20720 cumulating attributes for different entities into a single list.
20721 (gnat_to_gnu_entity): Use prepend_attributes to build the list of
20722 attributes for the current entity and propagate first subtype
20723 attributes to other subtypes.
20724 <E_Procedure>: Attribute arguments are attr->args and not
20725 attr->arg any more.
20726 (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
20727 argument provided, as this is what GCC expects. Use NULL_TREE instead
20730 2004-11-18 Robert Dewar <dewar@adacore.com>
20732 * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
20733 Minor reformatting througout (including new function specs)
20734 Add ??? comments asking for clarification.
20736 2004-11-18 Thomas Quinot <quinot@adacore.com>
20738 * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
20739 incomplete duplicate implementation of this subprogram from butil.
20741 2004-11-18 Thomas Quinot <quinot@adacore.com>
20743 * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
20744 procedures factors the common processing for building an RPC receiver
20745 for an RCI package or an RACW type.
20746 Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
20747 Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
20748 (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
20750 (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
20752 (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
20754 (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
20755 distribution subprogram identifiers that are either subprogram numbers
20757 (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
20758 string distribution identifiers assigned to a given subprogram.
20759 (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
20760 (Add_RAS_Dereference_TSS): Add comments.
20761 (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
20762 is not referenced yet because it will be used by the PolyORB DSA
20764 (Insert_Partition_Check): Remove fossile code.
20765 (First_RCI_Subprogram_Id): Document this constant.
20766 (Add_RAS_Access_TSS): Correct the setting of the Etype of the
20768 (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
20769 replaced with calls to Get_Library_Unit_Name_String. Previously there
20770 were several instances of the same code in different locations in the
20771 compiler; this checkin completes the replacement of all of these
20772 instances with calls to a common subprogram.
20773 Minor reformatting.
20775 * sem_dist.adb: Remove comment noting that RPC receiver generation
20776 should be disabled for RACWs that implement RASs.
20777 (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
20779 * sem_util.ads, sem_util.adb (Has_Stream): New function
20780 (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
20781 qualified name of a library unit into the name buffer.
20782 (Note_Possible_Modification): Generate a reference only
20783 if the context comes from source.
20785 * snames.ads (PCS_Names): New subtype corresponding to names of
20786 supported implementations of the Partition Communication Subsystem
20787 (PCS) (i.e. the runtime library support modules for the distributed
20790 2004-11-18 Robert Dewar <dewar@adacore.com>
20791 Ed Schonberg <schonberg@adacore.com>
20793 * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
20794 (Has_Rep_Pragma): New function
20795 (Has_Attribute_Definition_Clause): New function
20796 (Record_Rep_Pragma): Moved here from sem_ch13.adb
20797 (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
20799 * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
20801 * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
20802 (Expand_Pragma_Psect_Object): New procedure
20803 These procedures contain the revised and cleaned up processing for
20804 these two pragmas. This processing was formerly in Sem_Prag, but
20805 is more appropriately moved here. The cleanup involves making sure
20806 that the pragmas are properly attached to the tree, and that no
20807 nodes are improperly shared.
20809 * sem_prag.adb: Move expansion of Common_Object and Psect_Object
20810 pragmas to Exp_Prag, which is more appropriate.
20811 Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
20812 check for duplicates Remove use of Is_Psected flag, no longer needed.
20813 Use new Make_String_Literal function with string.
20815 * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
20816 that are functions return universal values, that have to be converted
20817 to the context type.
20818 Use new Make_String_Literal function with string.
20819 (Get_Stream_Convert_Pragma): New function, replaces the use of
20820 Get_Rep_Pragma, which had to be kludged to work in this case.
20822 * freeze.adb: Use new Has_Rep_Pragma function
20824 * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
20825 function with string.
20826 Use new Has_Rep_Pragma function.
20828 * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
20831 2004-11-18 Robert Dewar <dewar@adacore.com>
20833 * errout.ads, errout.adb: (First_Sloc): New function
20835 * par-ch5.adb (P_Condition): Check for redundant parens is now a style
20836 check (-gnatyx) instead of being included as a redundant construct
20839 * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
20840 Style_Check_Order_Subprograms.
20842 * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
20843 stylesw.adb: Add Style_Check_Xtra_Parens
20845 * usage.adb: Add line for -gnatyx (check extra parens)
20847 * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
20849 2004-11-18 Ed Schonberg <schonberg@adacore.com>
20850 Robert Dewar <dewar@adacore.com>
20852 * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
20853 discriminant of a constrained subtype, analyze the copy of the
20854 corresponding constraint, because in some cases it may be only
20855 partially analyzed.
20856 Removes long-lived ??? comments.
20858 * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
20859 handled controlled or secondary-stack expressions within the
20860 iteration_scheme of a loop.
20862 * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
20863 bounds that may contain functions calls, to prevent memory leaks when
20864 the bound contains a call to a function that uses the secondary stack.
20865 (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
20866 generate temporaries for loop bounds that might contain function calls
20867 that require secondary stack and/or finalization actions.
20869 * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
20870 selected component and the selector is overloadable (not just a
20871 function) treat as function call, Analyze_Call will disambiguate if
20873 (Analyze_Selected_Component): Do not generate an actual subtype for the
20874 selected component if expansion is disabled. The actual subtype is only
20875 needed for constraint checks.
20876 (Analyze_Allocator): If restriction No_Streams is set, then do
20877 not permit objects to be declared of a stream type, or of a
20878 composite type containing a stream.
20880 * restrict.ads: Remove the a-stream entry from Unit_Array, since
20881 No_Streams no longer prohibits with'ing this package.
20883 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
20884 discriminants, but the parent base has unknown discriminants, there is
20885 no discriminant constraint to inherit. Such a discrepancy can arise
20886 when the actual for a formal type with unknown discriminants is a
20887 similar private type whose full view has discriminants.
20888 (Analyze_Object_Declaration): If restriction No_Streams is set, then
20889 do not permit objects to be declared of a stream type, or of a
20890 composite type containing a stream.
20892 2004-11-18 Ed Schonberg <schonberg@adacore.com>
20894 * exp_dbug.ads: Update documentation to reflect simpler encoding for
20895 protected operations.
20897 * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
20898 generated name, it complicates decoding in gdb and hinders debugging
20899 of protected operations.
20900 (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
20901 flag for the protected entry barrier function.
20902 (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
20903 flag for the protected entry function.
20905 2004-11-18 Nicolas Setton <setton@adacore.com>
20907 * expect.c: Define __unix__ when __APPLE__ is defined.
20909 * Makefile.in: Inform the value of the variable GMEM_LIB in the
20910 Darwin-specific section.
20912 * lang-specs.h: Change the placement of the %1 marker.
20913 Works around the fact that gcc adds -fPIC by default under Darwin.
20915 2004-11-18 Ed Schonberg <schonberg@adacore.com>
20917 * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
20918 type of the object with the packed array type, set the Analyzed flag
20919 on the object if it is an entity or simple indexed component, to avoid
20920 spurious type errors.
20922 2004-11-18 Gary Dismukes <dismukes@adacore.com>
20924 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
20925 gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
20926 separate line from the version message.
20928 2004-11-18 Ed Falis <falis@adacore.com>
20930 * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
20932 (init_float): Eliminate initialization of floating point status for
20933 AE653. The instructions have no effect for vThreads.
20935 2004-11-18 Vincent Celier <celier@adacore.com>
20937 * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
20938 gnatbind is invoked with -shared.
20940 2004-11-18 Jose Ruiz <ruiz@adacore.com>
20942 * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
20943 for Detect_Blocking which is redundant with the check done within the
20944 procedure Protected_Single_Entry_Call.
20945 (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
20946 Detect_Blocking which is redundant with the check done within the
20947 procedure Protected_Single_Entry_Call.
20949 2004-11-18 Vincent Celier <celier@adacore.com>
20951 * makegpr.adb (Compile): Put the compiling switches (in package
20952 Compiler and on the command line) immediately after "-c", instead of
20953 at the end of the command line invocation of the compiler, when
20954 compiling a non-Ada file.
20955 (Build_Global_Archive): When there is no need to rebuild the archive,
20956 set Global_Archive_Exists, so that the archive is passed to the linker
20959 2004-11-18 Robert Dewar <dewar@adacore.com>
20960 Sergey Rybin <rybin@adacore.com>
20963 Remove extra paren check from list of checks for redundant constructs
20964 Add documentation of new -gnatyx style check (check extra parens)
20965 Remove paragraph about gnatelim debug options.
20967 * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
20968 objects rather than forbidding dependencies on the package Ada.Streams.
20970 * sinfo.ads: Add ??? note that we should document pragmas passed to
20973 * g-expect.ads: Fix a few typos in the comments.
20975 2004-11-09 Joseph S. Myers <joseph@codesourcery.com>
20977 * misc.c (gnat_handle_option): Use %< and %> for quoting in
20980 2004-11-08 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
20982 * a-numaux-x86.adb (Tan): Fix fdivp syntax.
20984 2004-11-07 Andreas Schwab <schwab@suse.de>
20986 * Makefile.in (install-gnatlib): Remove spurious hyphen.
20988 2004-11-02 Andrew Pinski <pinskia@physics.uc.edu>
20991 * Makefile.in (darwin): Set soext to .dylib.
20993 2004-10-26 Vincent Celier <celier@gnat.com>
20994 Thomas Quinot <quinot@act-europe.fr>
20996 * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
20997 (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
20998 there is no use of GNAT.Sockets.Constants.
20999 Remove remaining pragma Import for C_Write
21000 Remove C_Read and C_Write from internal implementation unit
21001 GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
21002 the read and write functions from the system runtime library is fine
21003 on UNIX but won't work under Windows).
21005 * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
21006 (Check_Selector): Use C_Recv instead of C_Read.
21007 Selectors are the GNAT.Sockets abstraction to perform a select()
21008 call on a set of descriptors. To allow abortion of an ongoing
21009 select operation, some data is written to a dedicated socket that
21010 is always monitored.
21011 Under Windows, the write and read library functions cannot operate
21012 on sockets, so we need to use send and recv instead, which is portable
21013 across all supported platforms.
21015 * g-socthi.ads: Remove C_Read and C_Write from internal implementation
21016 unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
21017 (using the read and write functions from the system runtime library is
21018 fine on UNIX but won't work under Windows).
21020 2004-10-26 Nicolas Setton <setton@act-europe.fr>
21022 * mlib-tgt-darwin.adb: New file.
21024 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
21025 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
21026 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
21027 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
21030 * Makefile.in: Add support for building shared libraries under Darwin.
21031 (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
21032 the low level EH init subprogram to be called from __gnat_initialize.
21034 * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
21035 indicates which options to pass to the archive indexer.
21037 * mlib-utl.adb: Add support for calling ranlib with additional
21038 options. This is needed for instance under Mac OS X.
21039 (Ranlib_Options): New global variable, used to store the potential
21040 options to pass to ranlib.
21041 (Ar): Use Ranlib_Options when spawning ranlib.
21042 (Initialize): Set the value of ranlib option.
21044 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
21046 * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
21047 instead of 8K, to reflect the real potential needs for stack-checking
21050 2004-10-26 Pascal Obry <obry@gnat.com>
21052 * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
21054 * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
21055 Windows only the initial thread stack size can be set so it is good to
21056 start we a low stack size.
21057 The OS will adjust the size as needed.
21059 2004-10-26 Olivier Hainque <hainque@act-europe.fr>
21060 Nicolas Setton <setton@act-europe.fr>
21062 * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
21063 "__unix__" instead of "unix".
21064 The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
21065 sections were just mistakenly ignored. The former is
21066 implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
21067 Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
21068 of hpux. This prevents an unwanted definition of the symbol
21069 convert_addresses in adaint.o.
21071 2004-10-26 Gary Dismukes <dismukes@gnat.com>
21073 * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
21074 compatibility with type Unwind_Word on 16-bit targets such as AAMP.
21076 2004-10-26 Cyrille Comar <comar@act-europe.fr>
21078 * a-filico.ads, a-filico.adb: fix incorrect header.
21080 2004-10-26 Javier Miranda <miranda@gnat.com>
21082 * a-ststio.ads: Fix typo in identifier
21084 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
21086 * sem_ch4.adb: Minor reformatting.
21088 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21090 * checks.adb (Expr_Known_Valid): If floating-point validity checks are
21091 enabled, check the result of unary and binary operations when the
21092 expression is the right-hand side of an assignment.
21094 2004-10-26 Vincent Celier <celier@gnat.com>
21096 * clean.adb (Delete): Do not output warnings when in quiet output and
21097 not in verbose mode.
21098 (Force_Deletions): New Boolean flag, defaulted to False
21099 (Delete): Only delete a file if it is writable, and when
21100 Force_Deletions is True.
21101 (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
21102 (Usage): Line for new switch -f
21103 (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
21106 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
21108 * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
21109 JM type only if its size matches that of the wrapper. When a size is
21110 prescribed and the field is not aliased, remove the wrapper of a JM
21111 type only if the size is not greater than that of the packed array.
21112 (gnat_to_gnu_entity): Change the extension of packed array wrappers
21115 2004-10-26 Geert Bosch <bosch@gnat.com>
21117 * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
21118 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
21119 (Pred): Implement in terms of Succ.
21121 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21123 * exp_aggr.adb (Safe_Component): An aggregate component that is an
21124 unchecked conversion is safe for in-place use if the expression of the
21125 conversion is safe.
21126 (Expand_Array_Aggregate): An aggregate that initializes an allocator may
21127 be expandable in place even if the aggregate does not come from source.
21128 (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
21129 designated object of an allocator in place, rather than building it
21130 first on the stack. The previous scheme forces a full copy of the array,
21131 and may be altogether unsusable if the size of the array is too large
21132 for stack allocation.
21134 2004-10-26 Robert Dewar <dewar@gnat.com>
21136 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
21137 compares if the component is atomic.
21139 * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
21140 array assignment if the component type is atomic.
21142 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21143 Eric Botcazou <ebotcazou@act-europe.fr>
21145 * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
21146 is aliased and is a by_reference type, do not pass by copy.
21147 (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
21148 detect whether the call is in the right side of an assignment or
21149 the expression of an object declaration. Recurse on component
21150 association within aggregates.
21151 Call it in the condition that determines whether the temporary is
21152 necessary for correct stack-checking.
21154 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
21156 * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
21157 RACW_Type, used in the PolyORB version.
21158 Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
21159 version and the GARLIC version.
21161 * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
21162 Rename RCI_Info to RCI_Locator for better consistency between the
21163 GARLIC and PolyORB versions of the distributed systems annex.
21164 (DSA_Implementation_Name): This enumeration lists the possible
21165 implementations of the Partition Communication Subsystem for the
21166 Distributed Systems Annex (DSA). The three available implementations
21167 are the dummy stub implementation (No_DSA), and two versions based on
21168 two different distribution runtime libraries: GARLIC and PolyORB. Both
21169 the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
21171 Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
21174 * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
21175 between the GARLIC and PolyORB versions of the distributed systems
21177 Remove RE_Unbounded_Reclaim_Pool since it is unused.
21179 2004-10-26 Gary Dismukes <dismukes@gnat.com>
21181 * gnat1drv.adb: Suppress calling the back end when
21182 Frontend_Layout_On_Target is true.
21184 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
21186 * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
21187 Set_Read_Only): New subprograms.
21188 These new routines allow the user to set or unset the Owner execute
21189 and Owner write permission flags on a file.
21191 * makegpr.adb, mlib.adb, mlib-prj.adb: Use
21192 GNAT.OS_Lib.Set_Executable instead of rolling our own.
21194 2004-10-26 Matthew Gingell <gingell@gnat.com>
21196 * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
21198 2004-10-26 Pascal Obry <obry@gnat.com>
21200 * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
21201 memory before the faulting page we properly test the process read
21202 access for this address using appropriate Win32 routine.
21203 (HPUX sections): guard with "__hpux__" instead of "hpux".
21205 2004-10-26 Robert Dewar <dewar@gnat.com>
21207 * lib-xref.adb (Generate_Reference): Don't complain about reference to
21208 entry parameter if pragma Unreferenced set, since we do not properly
21209 handle the case of multiple parameters.
21211 2004-10-26 Vincent Celier <celier@gnat.com>
21213 * prj-env.adb: (Contains_ALI_Files): New Boolean function
21214 (Ada_Objects_Path.Add): For a library project, add to the object path
21215 the library directory only if there is no object directory or if the
21216 library directory contains ALI files.
21217 (Set_Ada_Paths.Add.Recursive_Add): Ditto
21219 2004-10-26 Vincent Celier <celier@gnat.com>
21221 * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
21222 extension of library projects.
21224 * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
21225 path defaults to ".:<prefix>/lib/gnat".
21226 (Parse): For an extending all project, allow direct import of a project
21227 that is virtually extended.
21229 * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
21230 the specified name is directly imported, return its ID. Otherwise, if
21231 an extension of this project is imported, return the ID of the
21234 2004-10-26 Robert Dewar <dewar@gnat.com>
21236 * s-arit64.adb: (Le3): New function, used by Scaled_Divide
21237 (Sub3): New procedure, used by Scaled_Divide
21238 (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
21239 correct more than one instance of failure to propagate carries
21241 (Double_Divide): Handle overflow case of largest negative number
21242 divided by minus one.
21244 * s-arit64.ads (Double_Divide): Document that overflow can occur in
21245 the case of a quotient value out of range.
21248 2004-10-26 Robert Dewar <dewar@gnat.com>
21250 * s-bitops.adb (Bit_Eq): Remove redundant check.
21252 * s-bitops.ads: Minor comment updates
21253 Change some occurrences of Address to System.Address
21255 * s-carsi8.ads: Fix minor cut-and-paste error in comments
21257 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21259 * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
21260 accessibility check to prefix that is a protected operation.
21262 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21264 * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
21265 empty, post message on stub.
21267 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21268 Javier Miranda <miranda@gnat.com>
21270 * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
21271 current instance appears within a unit that is directly in the context
21273 Used to determine whether the body of the instance should be analyzed
21274 immediately after its spec, to make its subprogram bodies available
21275 for front-end inlining.
21276 (Analyze_Formal_Array_Type): Cleanup condition that checks that range
21277 constraint is not allowed on the component type (AARM 12.5.3(3))
21279 2004-10-26 Cyrille Comar <comar@act-europe.fr>
21281 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
21282 'Storage_Pool): enhance, document & limit detection of non-sharable
21285 * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
21287 * s-pooglo.ads: Add more documentation now that this pool is properly
21290 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21292 * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
21293 or protected type with discriminants, do not constrain the
21294 corresponding record type if the subtype declaration has no
21295 discriminant constraints. This can be the case in source code, or in
21296 the subtype declaration created to rename an actual type within an
21299 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21301 * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
21302 different kind of stub (possibly wrong name for file), do not check
21304 (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
21305 includes call to some function that returns an unconstrained type, do
21308 2004-10-26 Ed Schonberg <schonberg@gnat.com>
21310 * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
21311 appear in the code for the main unit. Dependencies among units in the
21312 context of the main unit are established when those other units are
21313 compiled. Otherwise spurious elaboration constraints can generate
21314 incorrect elaboration circularities.
21316 2004-10-26 Thomas Quinot <quinot@act-europe.fr>
21317 Ed Schonberg <schonberg@gnat.com>
21319 * sem_util.adb (Is_Aliased_View): Defend against the case where this
21320 subprogram is called with a parameter that is not an object name. This
21321 situation arises for some cases of illegal code, which is diagnosed
21322 later, and in this case it is wrong to call Is_Aliased, as that might
21323 cause a compiler crash.
21324 (Explain_Limited_Type): Refine previous fix to include
21325 inherited components of derived types, to provide complete information.
21327 * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
21328 is the prival for a protected object.
21329 It is necessary to mark this entity as a variable, in addition to
21330 flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
21331 modified to avoid checking the Aliased flag on entities that are not
21332 objects. (Checking that flag for non-objects is erroneous and could
21333 lead to a compiler crash).
21335 2004-10-26 Robert Dewar <dewar@gnat.com>
21337 * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
21338 X_Frac = 0.5, then we know that the number X must be positive.
21339 (Succ): Remove the same redundant test, and also fix the primary test
21340 to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
21342 (Decompose): Add fuller comments to spec
21344 2004-10-26 Pascal Obry <obry@gnat.com>
21346 * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
21347 validity (process must have read access). Set to 0 in all other cases.
21348 (STOP_FRAME): Now check for ptr validity to avoid a segmentation
21349 violation on Win32.
21350 (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
21351 segmentation violation.
21353 2004-10-26 Eric Botcazou <ebotcazou@act-europe.fr>
21355 * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
21356 whose type is a constructed subtype of an aliased object with an
21357 unconstrained nominal subtype, convert the actual to the constructed
21358 subtype before taking its address.
21360 2004-10-26 Vincent Celier <celier@gnat.com>
21362 * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
21363 (Is_Path_Name_Case_Sensitive): New function
21365 * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
21366 (Base_Name, Simple_Name, Current_Directory, Compose,
21367 Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
21370 2004-10-26 Cyrille Comar <comar@act-europe.fr>
21371 Vasiliy Fofanov <fofanov@act-europe.fr>
21372 Vincent Celier <celier@gnat.com>
21374 * gnat_ugn.texi: Generalize "finding memory problems" section into a
21375 "memory management issues" section and document some of the useful
21376 memory pools provided as part of the GNAT library.
21377 Remove "virtual" from declaration of A::method2 in
21378 the simple example of Ada/C++ mixed system.
21379 Library Projects may be virtually extended: their virtual extensions
21380 are not Library Projects.
21381 Added section on extending project hierarchies.
21383 2004-10-19 Aaron W. LaFramboise <aaronavay62@aaronwl.com>
21385 * adaint.c (__gnat_get_libraries_from_registry): Cast value
21387 (__gnat_portable_spawn): Remove const.
21389 * mingw32.h (MAXPATHLEN): Check for previous definition.
21391 2004-10-17 Matthias Klose <doko@debian.org>
21393 * gnatvsn.ads: Set gnat library version to 4.0.
21395 2004-10-05 Vincent Celier <celier@gnat.com>
21397 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
21399 2004-10-04 Laurent GUERBY <laurent@guerby.net>
21402 * Makefile.in: Define and use RANLIB_FLAGS.
21404 2004-10-04 Pascal Obry <obry@gnat.com>
21406 * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
21407 other x86 platforms).
21409 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
21411 * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
21412 in general and triggers stack alignment adjustment for thread entry
21413 points on targets where this is necessary.
21415 2004-10-04 Bernard Banner <banner@gnat.com>
21418 * Makefile.in: Add section for powerpc linux
21419 Add variant i-vxwork-x86.ads
21421 * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
21423 2004-10-04 Olivier Hainque <hainque@act-europe.fr>
21425 * init.c (__gnat_initialize): Call an Ada subprogram to perform the
21426 table registration calls when need be. Ensures no reference to the crt
21427 ctors symbol are issued in the SJLJ case, which avoids possible
21428 undefined symbol errors in the case of modules to be statically linked
21431 2004-10-04 Javier Miranda <miranda@gnat.com>
21433 * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
21434 in-line the code corresponding to subprogram Analyze_Actuals. In
21435 addition, analyze the actuals only in case of subprogram call.
21437 2004-10-04 Ed Falis <falis@gnat.com>
21439 * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
21441 2004-10-04 Sergey Rybin <rybin@act-europe.fr>
21443 * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
21444 in the documentation.
21446 2004-10-04 Robert Dewar <dewar@gnat.com>
21448 * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
21450 (Analyze_Block_Statement): Add circuitry to detect following dead code
21451 (Check_Unreachable_Code): Handle case of block exit
21453 2004-10-04 Robert Dewar <dewar@gnat.com>
21455 * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
21456 (XMatchD): Avoid warning for Logic_Error call
21458 2004-10-04 Robert Dewar <dewar@gnat.com>
21460 * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
21461 consider expressions buried within a procedure actual to be an actual.
21462 This caused some blowups with uses of packed slices within a procedure
21465 2004-10-04 Robert Dewar <dewar@gnat.com>
21467 * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
21468 longer need to be initialized to zero.
21469 (Get_Simple_Init_Val): Modular packed arrays no longer need to be
21470 initialized to zero.
21472 * checks.adb (Expr_Known_Valid): Packed arrays are now always
21473 considered valid, even if the representation is modular. That's correct
21474 now that we no longer initialize packed modular arrays to zero.
21476 * exp_dbug.ads: Clarify documentation on handling of PAD and JM
21477 suffixes. These are now documented as the only cases in which the
21478 debugger ignores outer records.
21479 Previously, the spec allowed arbitrary suffixes for this purpose.
21480 Change name of LJM to JM for packed array pad records
21481 Create separate section on packed array handling, and add a whole new
21482 set of comments to this section describing the situation with packed
21483 modular types and justification requirements depending on endianness.
21485 2004-10-04 Robert Dewar <dewar@gnat.com>
21487 * a-except.adb: Add a comment for last change
21489 * einfo.ads: Minor spelling correction in comment
21491 * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
21493 * sem_ch11.adb: Fix a case of using | instead of \ for continuation
21496 * sem_util.ads: Minor comment update
21498 2004-10-04 Ed Schonberg <schonberg@gnat.com>
21500 * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
21501 Inline_Always when in Configurable_Run_Time mode.
21503 * sem_prag.adb (Process_Convention): If entity is an inherited
21504 subprogram, apply convention to parent subprogram if in same scope.
21505 (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
21506 when in Configurable_Run_Time mode.
21508 2004-10-04 Ed Schonberg <schonberg@gnat.com>
21510 * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
21511 class_wide type after component list has been inherited.
21513 2004-10-04 Ed Schonberg <schonberg@gnat.com>
21515 * sem_ch12.adb (Check_Generic_Actuals): New predicate
21516 Denotes_Previous_Actual, to handle properly the case of a private
21517 actual that is also the component type of a subsequent array actual.
21518 The visibility status of the first actual is not affected when the
21519 second is installed.
21520 (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
21521 make fully recursive the treatment of formals of packages declared
21523 (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
21524 the above on exit from an instantiation.
21525 (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
21526 current instantiation which is now complete.
21527 (Analyze_Package_Instantiation): No instantiated body is needed if the
21528 main unit is generic. Efficient, and avoid anomalies when a instance
21529 appears in a package accessed through rtsfind.
21531 2004-10-04 Ed Schonberg <schonberg@gnat.com>
21533 * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
21534 do not generate a declaration for a temporary if the call is part of a
21535 library-level instantiation.
21537 2004-10-04 Ed Schonberg <schonberg@gnat.com>
21539 * sem_util.adb (Explain_Limited_Type): Ignore internal components when
21540 searching for a limited component to flag.
21542 * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
21543 expansion of Input, to account for the fact that the implicit call
21544 generated by the attribute reference must freeze the user-defined
21545 stream subprogram. This is only relevant to 'Input, because it can
21546 appear in an object declaration, prior to the body of the subprogram.
21548 * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
21549 expansion can proceed and further errors uncovered.
21550 (Minor clean up): Fix cases of using | instead of \ for continuation
21553 2004-10-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21555 * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
21557 * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
21558 (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
21559 Use gcc_assert and gcc_unreachable.
21561 * decl.c (gnat_to_gnu_entity, case object): Check and process a
21562 specified alignment before validating size.
21563 (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
21564 stripped-down declaration for the type of the inner field when making
21567 * utils.c (finish_record_type): Do not compute the size in units
21568 incrementally. Instead compute it once for the rep clause case.
21569 Use gcc_assert and gcc_unreachable.
21571 2004-10-04 Vincent Celier <celier@gnat.com>
21573 * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
21575 (Is_Valid_Path_Name): Take '/' as a directory separator.
21577 2004-10-04 Vincent Celier <celier@gnat.com>
21579 * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
21580 (Extended_Project) only if Extended_Project is defined, to avoid
21582 (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
21584 (Parse_Single_Project): Ditto.
21586 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
21587 Add_To_Project_Path for virtual projects.
21589 2004-10-04 Vincent Celier <celier@gnat.com>
21591 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
21592 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
21593 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
21594 mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
21595 parameter Options_2.
21597 * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
21598 Build_Dynamic_Library with an empty Options_2.
21600 * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
21603 * makegpr.adb (Get_Imported_Directories.add): Remove trailing
21604 directory separator, if any.
21605 (Gprmake): Do not allow mains on the command line for library projects.
21606 Do not attempt to link when the project is a library project.
21607 (Library_Opts): New table to store Library_Options.
21608 (Build_Library): If Library_Options is specified, pass these options
21609 when building a shared library.
21611 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
21613 * s-tposen.adb (Service_Entry): The object must be always unlocked at
21614 the end of this procedure now that the unlock operation was inserted
21617 2004-10-04 Jose Ruiz <ruiz@act-europe.fr>
21619 * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
21620 corresponding to the Preallocated_Stacks flags in System.
21621 (Get_Target_Parameters): Including the processing for
21622 Preallocated_Stacks.
21624 * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
21625 system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
21626 system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
21627 system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
21628 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
21629 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
21630 system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
21631 system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
21632 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
21633 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
21634 system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
21635 used to signal whether the compiler creates the required stacks and
21636 descriptors for the different tasks (when True) or it is done by the
21637 underlying operating system at run time (when False).
21638 It is initially set to False in all targets.
21640 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
21641 if it is supported by the target.
21642 (Make_Task_Create_Call): Pass the stack address if it has been
21643 previously created. Otherwise pass a Null_Address.
21645 * snames.adb: Add _stack.
21647 * snames.ads: Add Name_uStack. Required to allow the expander to
21648 statically allocated task stacks.
21650 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
21651 Stack_Address argument.
21652 Check that its value is equal to Null_Address because this target does
21653 not support the static stack allocation.
21655 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
21657 * usage.adb: Change "pragma inline" to "pragma Inline" in information
21660 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
21662 * exp_dist.adb: Split declaration of asynchronous flag out of
21663 Add_RACW_Read_Attribute.
21664 Minor reformatting for better alignment with PolyORB version.
21665 Store the entity for the asynchronous flag of an RACW, rather than the
21666 expression, in the asynchronous flags table. This will allow this flag
21667 to be used in other subprograms beside Add_RACW_Read_Attribute.
21669 2004-10-04 Thomas Quinot <quinot@act-europe.fr>
21671 * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
21672 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
21673 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
21674 g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
21675 g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads: Add new
21676 sockets constant MSG_NOSIGNAL (Linux-specific).
21677 Add new sockets constant MSG_Forced_Flags, list of flags to be set on
21678 all Send operations.
21679 For Linux, set MSG_NOSIGNAL on all send operations to prevent them
21680 from trigerring SIGPIPE.
21681 Rename components to avoid clash with Ada 2005 possible reserved
21683 (Check_Selector): When the select system call returns with an error
21684 condition, propagate Socket_Error to the caller.
21686 2004-10-01 Jan Hubicka <jh@suse.cz>
21688 * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
21690 2004-09-23 Robert Dewar <dewar@gnat.com>
21693 * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
21694 instead do this at freeze time (we won't do it if there is an address
21696 Change "pragma inline" to "pragma Inline" in information and error
21698 Minor reformatting.
21700 * freeze.adb (Check_Address_Clause): Remove previous change, not the
21701 right way of doing things after all.
21702 (Freeze_Entity): For object, set Is_Public for imported entities
21703 unless there is an address clause present.
21705 2004-09-21 Olivier Hainque <hainque@act-europe.fr>
21707 * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
21708 dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
21709 ensures proper handling of types with rep clauses, which might have
21710 their TYPE_SIZE set already.
21712 2004-09-21 Robert Dewar <dewar@gnat.com>
21714 * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
21715 packed array types in both little- and big-endian cases. This change
21716 ensures that we no longer count on the unused bits being initialized
21717 for such types (and in particular ensures that equality testing will
21718 only read the relevant bits).
21719 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21720 These changes mean that we no longer need to initialize small packed
21722 (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
21723 optimization to an LJM field as to its parent field.
21725 * ada-tree.h, trans.c, utils.c, utils2.c:
21726 Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
21728 2004-09-20 Jan Hubicka <jh@suse.cz>
21730 * utils.c (gnat_finalize): Remove.
21731 (end_subprog_body): Directly call cgraph_finalize_function;
21732 do not lower the nested functions.
21734 2004-09-20 Robert Dewar <dewar@gnat.com>
21737 * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
21738 if an address clause is present, since that means that the Import
21741 2004-09-20 Arnaud Charlet <charlet@act-europe.fr>
21743 * 5tsystem.ads: Removed, no longer used.
21745 2004-09-17 Jeffrey D. Oldham <oldham@codesourcery.com>
21746 Zack Weinberg <zack@codesourcery.com>
21748 * ada-tree.def: Use tree_code_class enumeration constants
21749 instead of code letters.
21750 * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
21751 Update for new tree-class enumeration constants.
21753 2004-09-17 Vincent Celier <celier@gnat.com>
21755 * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
21756 capabilities of the general project manager.
21758 2004-09-09 Vincent Celier <celier@gnat.com>
21760 * a-direct.ads: Add pragma Ada_05
21761 (Directory_Entry_Type): Give default value to component Kind to avoid
21762 not initialized warnings.
21764 * a-direct.adb (Current_Directory): Remove directory separator at the
21766 (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
21767 an existing directory.
21768 (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
21769 (Size (String)): Function C_Size returns Long_Integer, not File_Size.
21770 Convert the result to File_Size.
21772 * prj.ads: (Project_Error): New exception
21774 * prj-attr.adb: Except in procedure Initialize, Fail comes from
21775 Prj.Com, not from Osint.
21776 (Attrs, Package_Attributes): Tables moved to private part of spec
21777 (Add_Attribute, Add_Unknown_Package): Moved to new child package
21779 (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
21780 Prj.Project_Error after call to Fail.
21781 (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
21782 Fail. Check that package name is not already in use.
21784 * prj-attr.ads: Comment updates to indicate that all subprograms may be
21785 used by tools, not only by the project manager, and to indicate that
21786 exception Prj.Prj_Error may be raised in case of problem.
21787 (Add_Unknown_Package, Add_Attribute): Moved to new child package
21789 (Attrs, Package_Attributes): Table instantiations moved from the body to
21790 the private part to be accessible from Prj.Attr.PM body.
21792 * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
21793 from new package Prj.Attr.PM.
21794 (Parse_Attribute_Declaration): Call Add_Attribute from new package
21797 * Makefile.in: Add prj-attr-pm.o to gnatmake object list
21799 * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
21800 instead of Elaboration_Checks).
21802 * a-calend.adb: Minor reformatting
21804 2004-09-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
21806 * gigi.h (maybe_pad_type): New declaration.
21807 (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
21809 * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
21811 * cuintp.c: Convert to use buildN.
21813 * decl.c (maybe_pad_type): No longer static.
21814 (gnat_to_gnu_entity, case E_Function): Handle case of returning by
21816 Convert to use buildN.
21818 * trans.c (call_to_gnu): Add arg GNU_TARGET; support
21819 TYPE_RETURNS_BY_TARGET_PTR_P. All callers changed.
21820 (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
21822 (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
21823 (gnat_gimplify_expr, case ADDR_EXPR): New case.
21824 Convert to use buildN.
21826 * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
21827 TREE_READONLY for const.
21828 Convert to use buildN.
21830 * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
21831 (create_var_decl): Refine when TREE_STATIC is set.
21832 Convert to use buildN.
21834 2004-09-09 Gary Dismukes <dismukes@gnat.com>
21836 * gnat_ugn.texi: Delete text relating to checking of ali and object
21839 * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
21842 2004-09-09 Jose Ruiz <ruiz@act-europe.fr>
21844 * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
21845 pragmas recognized by GNAT.
21847 * gnat_rm.texi: Document pragma Detect_Blocking.
21849 * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
21850 raise Program_Error if called from a protected operation.
21852 * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
21853 the protected action nesting level.
21854 (Lock_Read_Only): When pragma Detect_Blocking is active increase the
21855 protected action nesting level.
21856 (Unlock): When pragma Detect_Blocking is active decrease the protected
21857 action nesting level.
21859 * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
21860 Protected_Action_Nesting.
21862 * s-taskin.ads: Adding the field Protected_Action_Nesting to the
21863 Common_ATCB record. It contains the dynamic level of protected action
21864 nesting for each task. It is needed for checking whether potentially
21865 blocking operations are called from protected operations.
21866 (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
21867 Detect_Blocking is active or not in the partition.
21869 * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
21870 raise Program_Error if called from a protected operation.
21871 (Task_Entry_Call): When pragma Detect_Blocking is active, raise
21872 Program_Error if called from a protected operation.
21873 (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
21874 Program_Error if called from a protected operation.
21876 * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
21877 raise Program_Error if called from a protected operation.
21879 * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
21880 raise Program_Error if called from a protected operation, and increase
21881 the protected action nesting level.
21882 (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
21883 Program_Error if called from a protected operation, and increase the
21884 protected action nesting level.
21885 (Unlock_Entries): When pragma Detect_Blocking is active decrease the
21886 protected action nesting level.
21888 * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
21889 raise Program_Error if called from a protected operation, and increase
21890 the protected action nesting level.
21891 (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
21892 Program_Error if called from a protected operation, and increase the
21893 protected action nesting level.
21894 (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
21895 raise Program_Error if called from a protected operation.
21896 (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
21897 active, raise Program_Error if called from a protected operation.
21898 (Unlock_Entry): When pragma Detect_Blocking is active decrease the
21899 protected action nesting level.
21901 * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
21902 insertion of the statement raising Program_Error. The run time
21903 contains the required machinery for handling that.
21905 * sem_util.ads: Change comment associated to procedure
21906 Check_Potentially_Blocking_Operation.
21907 This procedure does not insert a call for raising the exception because
21908 that is currently done by the run time.
21910 * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
21912 * init.c: Add the global variable __gl_detect_blocking that indicates
21913 whether pragma Detect_Blocking is active (1) or not (0). Needed for
21914 making the pragma available at run time.
21915 (__gnat_set_globals): Pass and update the detect_blocking parameter.
21917 * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
21918 pragma Detect_Blocking is active.
21920 * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
21922 * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
21923 DB is found in the ali file. Any unit compiled with pragma
21924 Detect_Blocking active forces its effect in the whole partition.
21926 * a-retide.adb (Delay_Until): Raise Program_Error if pragma
21927 Detect_Blocking is active and delay is called from a protected
21930 * bindgen.adb (Gen_Adainit_Ada): When generating the call to
21931 __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
21932 Detect_Blocking is active (0 otherwise).
21933 (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
21934 as Detect_Blocking parameter if pragma Detect_Blocking is active (0
21937 2004-09-09 Thomas Quinot <quinot@act-europe.fr>
21939 * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
21940 GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
21943 * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
21944 (Register_Receiving_Stub): Add Subp_Info formal parameter.
21945 Update API in placeholder implemetation of s-parint to reflect changes
21946 in distribution runtime library.
21948 * sem_ch3.adb (Expand_Derived_Record): Rename to
21949 Expand_Record_Extension.
21951 * sem_disp.adb (Check_Controlling_Formals): Improve error message for
21952 primitive operations of potentially distributed object types that have
21953 non-controlling anonymous access formals.
21955 * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
21957 New implementation of expansion for remote access-to-subprogram types,
21958 based on the RACW infrastructure.
21959 This version of sem_dist is compatible with PolyORB/DSA as well as
21962 * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
21963 Asynchrronous that applies to a remote access-to-subprogram type, mark
21964 the underlying RACW type as asynchronous.
21966 * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
21967 __gnat_using_gnu_linker to 1.
21969 * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
21970 g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
21971 GNAT.Perfect_Hash_Generators, and remove the empty
21972 GNAT.Perfect_Hash package.
21974 * atree.adb: Minor reformatting
21976 * exp_ch3.adb (Expand_Derived_Record): Rename to
21977 Expand_Record_Extension.
21978 (Build_Record_Init_Proc.Build_Assignment): The default expression in
21979 a component declaration must remain attached at that point in the
21980 tree so New_Copy_Tree copies it if the enclosing record type is derived.
21981 It is therefore necessary to take a copy of the expression when building
21982 the corresponding assignment statement in the init proc.
21983 As a side effect, in the case of a derived record type, we now see the
21984 original expression, without any rewriting that could have occurred
21985 during expansion of the ancestor type's init proc, and we do not need
21986 to go back to Original_Node.
21988 * exp_ch3.ads (Expand_Derived_Record): Rename to
21989 Expand_Record_Extension.
21991 * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
21992 Returns the RACW type used to implement a remote access-to-subprogram
21994 (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
21995 New subprograms. Used to create a proxy tagged object for a remote
21996 subprogram. The proxy object is used as the designated object
21997 for RAS values on the same partition (unless All_Calls_Remote applies).
21998 (Build_Get_Unique_RP_Call): New subprogram. Build a call to
21999 System.Partition_Interface.Get_Unique_Remote_Pointer.
22000 (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
22001 Renamed from Add_RAS_*_Attribute.
22002 (Add_Receiving_Stubs_To_Declarations): Generate a table of local
22004 New implementation of expansion for remote access-to-subprogram types,
22005 based on the RACW infrastructure.
22007 * exp_dist.ads (Copy_Specification): Update comment to note that this
22008 function can copy the specification from either a subprogram
22009 specification or an access-to-subprogram type definition.
22011 2004-09-09 Ed Schonberg <schonberg@gnat.com>
22013 * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
22014 in an instance, between an explicit subprogram an one inherited from a
22015 type derived from an actual.
22017 * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
22018 add a polling call if the subprogram is to be inlined by the back-end,
22019 to avoid repeated calls with multiple inlinings.
22021 * checks.adb (Apply_Alignment_Check): If the expression in the address
22022 clause is a call whose name is not a static entity (e.g. a dispatching
22023 call), treat as dynamic.
22025 2004-09-09 Robert Dewar <dewar@gnat.com>
22027 * g-trasym.ads: Minor reformatting
22029 * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
22030 packed arrays, since unused bits are expected to be zero for a
22033 2004-09-09 Eric Botcazou <ebotcazou@act-europe.fr>
22035 * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
22038 2004-09-09 Pascal Obry <obry@gnat.com>
22040 * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
22041 enable map file generation. Add the right option to generate the map
22042 file if Map_File is set to True.
22044 * gnatdll.adb (Gen_Map_File): New variable.
22045 (Syntax): Add info about new -m (Map_File) option.
22046 (Parse_Command_Line): Add support for -m option.
22047 (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
22048 Minor reformatting.
22050 2004-09-09 Laurent Pautet <pautet@act-europe.fr>
22052 * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
22053 new gnatdist implementation.
22054 Define a subpackage isolating the output routines specific to this
22057 2004-09-09 Joel Brobecker <brobecker@gnat.com>
22059 * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
22061 * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
22063 2004-09-09 Cyrille Comar <comar@act-europe.fr>
22065 * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
22068 * opt.ads: Add Ada_Version_Runtime constant used to decide which
22069 version of the language is used to compile the run time.
22071 2004-09-09 Arnaud Charlet <charlet@act-europe.fr>
22073 * sem_util.adb (Requires_Transient_Scope): Re-enable handling
22074 of variable length temporaries for function return now that the
22075 back-end and gigi support it.
22077 2004-09-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22079 * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
22081 * trans.c (struct stmt_group): Delete field GLOBAL.
22082 (gnat_init_stmt_group): Do not initialize it.
22083 (call_to_gnu): Use save_expr, not protect_multiple_eval.
22084 (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
22085 (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
22086 (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
22087 (start_stmt_group): Likewise.
22088 (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
22090 * utils2.c (ggc.h): Include.
22091 (build_call_raise): Call build_int_cst, not build_int_2.
22093 * utils.c (gnat_init_decl_processing): Fix arg to
22094 build_common_tree_nodes.
22095 (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
22096 (gnat_define_builtin): Set built_in_decls.
22097 (init_gigi_decls): Call build_int_cst, not build_int_2.
22099 * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
22100 (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
22101 (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
22102 (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
22103 SET_TYPE_MODULE): Use them.
22104 (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
22105 (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
22106 (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
22107 SET_TYPE_ADA_SIZE): Likewise.
22108 (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
22109 (DECL_CONST_CORRESPONDING_VAR,
22110 SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
22111 (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
22112 (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
22113 (TYPE_RM_SIZE_NUM): New macro.
22114 (TYPE_RM_SIZE): Modified to use above.
22116 * cuintp.c: (build_cst_from_int): New function.
22117 (UI_To_gnu): Use it.
22119 * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
22120 (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
22121 (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
22122 MIN_EXPR for the size, copy it into new.
22124 2004-09-01 Robert Dewar <dewar@gnat.com>
22126 * exp_ch6.adb (Expand_Call): Properly handle validity checks for
22127 packed indexed component where array is an IN OUT formal. This
22128 generated garbage code previously.
22130 * gnat_ugn.texi: Document -fverbose-asm
22132 * gnat-style.texi: Minor updates (note that boolean constants and
22133 variables are joined with AND/OR rather than short circuit forms).
22135 2004-09-01 Ed Schonberg <schonberg@gnat.com>
22137 * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
22138 it is an upward conversion of an untagged type with no representation
22141 2004-09-01 Thomas Quinot <quinot@act-europe.fr>
22143 * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
22144 System.Partition_Interface.
22146 * checks.adb (Apply_Access_Checks): Do not generate checks when
22147 expander is not active (but check for unset reference to prefix of
22150 * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
22151 pragma Debug as an if statement with a constant condition, for
22152 consistent treatment of entity references contained within the
22153 enclosed procedure call.
22155 2004-09-01 Vincent Celier <celier@gnat.com>
22157 * bindgen.adb: (Set_EA_Last): New procedure
22158 (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
22160 (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
22161 (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
22162 linked without errors.
22163 (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
22165 (Gen_Exception_Table_C): Correct same bugs
22167 * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
22169 * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
22170 on Windows, make sure that the drive letter is in upper case.
22172 * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
22173 Windows, when the drive letter is added and Case_Sensitive is True, the
22174 drive letter is forced to upper case.
22176 * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
22177 to Options_2 for the call to MLib.Utl.Gcc.
22179 * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
22180 directory separator when defining BASE_DIR.
22182 2004-09-01 Pascal Obry <obry@gnat.com>
22184 * gprcmd.adb (Extend): Do not output trailing directory separator. This
22185 is not needed and it confuses Windows GNU/make which does not report
22186 directory terminated by a slash as a directory.
22187 (gprcmd): Idem for "pwd" internal command.
22189 * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
22190 target names rewrite to fix regressions with recent version of
22191 GNU/make. Starting with GNU/make 3.80 the pipe character was not
22192 handled properly anymore.
22194 2004-09-01 Andreas Schwab <schwab@suse.de>
22196 * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
22197 * raise.c [!IN_RTS]: Undef abort.
22199 2004-08-27 Nathan Sidwell <nathan@codesourcery.com>
22201 * utils2.c (build_allocator): Use ssize_int.
22203 * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
22205 2004-08-27 Andreas Schwab <schwab@suse.de>
22207 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
22209 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
22210 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22212 * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
22214 2004-08-25 Nathan Sidwell <nathan@codesourcery.com>
22216 * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
22217 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22218 * utils.c (init_gigi_decls): Likewise.
22219 * utils2.c (build_call_raise, build_allocator): Likewise.
22221 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
22223 * utils.c (gnat_init_decl_processing): Adjust
22224 build_common_tree_nodes call.
22226 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
22228 * utils2.c (build_allocator): Use build_int_cst for negative
22231 2004-08-18 Richard Henderson <rth@redhat.com>
22233 * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
22235 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
22237 * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
22239 * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
22240 (gnat_to_gnu): Likewise.
22242 2004-08-16 Pascal Obry <obry@gnat.com>
22244 * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
22245 backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
22246 option and not mdll anymore. Update comment.
22248 2004-08-16 Pascal Obry <obry@gnat.com>
22250 * bld.adb (Put_Include_Project): Properly handle directory separators
22253 2004-08-16 Ed Schonberg <schonberg@gnat.com>
22255 * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
22256 decreasing the number of allocated junk nodes while searching for the
22257 appropriate subprogram.
22259 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
22261 * cuintp.c (UI_To_gnu): Use build_int_cst..
22262 * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
22263 * utils.c (init_gigi_decls): Likewise.
22264 * utils2.c (build_call_raise): Likewise.
22266 2004-08-13 Olivier Hainque <hainque@act-europe.fr>
22268 * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
22269 for a global aliased object with a variable size and an unconstrained
22270 nominal subtype, pretend there is no initializer if the one we have is
22271 incomplete, and avoid referencing an inexistant component in there. The
22272 part we have will be rebuilt anyway and the reference may confuse
22273 further operations.
22275 2004-08-13 Thomas Quinot <quinot@act-europe.fr>
22277 * einfo.ads: Minor reformatting
22279 * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
22280 restrictions in the ALI if we only want to warn about violations.
22282 2004-08-13 Vincent Celier <celier@gnat.com>
22284 * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
22285 when creating a new Unit_Record in table Units.
22287 * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
22288 that are violated, if any.
22290 * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
22291 add directory separator if path already ends with a directory separator.
22293 2004-08-13 Ed Schonberg <schonberg@gnat.com>
22295 * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
22296 unit, this is an attempt to inline a construct that is not available in
22297 the current restricted mode, so abort rather than trying to continue.
22299 * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
22300 discriminants that rename those of the parent, recover names of
22301 original discriminants for the constraint on the full view of the
22303 (Complete_Private_Subtype): Do not create a subtype declaration if the
22304 subtype is an itype.
22306 * gnat_rm.texi: Added section on implementation of discriminated
22307 records with default values for discriminants.
22309 2004-08-13 Ed Schonberg <schonberg@gnat.com>
22312 * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
22313 the second operand is overloaded.
22315 2004-08-10 Richard Henderson <rth@redhat.com>
22317 * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
22318 add __builtin_alloca.
22320 2004-08-10 Richard Henderson <rth@redhat.com>
22322 * config-lang.in (boot_language): Yes.
22324 2004-08-09 Thomas Quinot <quinot@act-europe.fr>
22326 * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
22327 from complaining on potential uninitialized reference.
22328 Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
22329 new specification and test explicitly for non-zero return value.
22331 * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
22332 returning C.int, to avoid using a derived boolean type.
22334 * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
22335 Duplicate_Subexpr_No_Checks in preference to direct use of
22336 Remove_Side_Effects and New_Copy_Tree.
22337 Clear Comes_From_Source on prefix of 'Size attribute reference.
22339 * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
22340 g-socthi-vxworks.adb: Change calls to
22341 GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
22342 and test explicitly for non-zero return value.
22344 * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
22345 (Is_Socket_In_Set): Declare imported function as returning C.int, to
22346 avoid using a derived boolean type.
22348 2004-08-09 Albert Lee <lee@gnat.com>
22350 * system-irix-n32.ads: Refine tasking priority constants for IRIX.
22352 2004-08-09 Pascal Obry <obry@gnat.com>
22354 * gnat_ugn.texi: Document new way to build DLLs on Windows using
22355 GCC's -shared option.
22357 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
22358 Options_2 parameter (options put after object files).
22360 2004-08-09 Olivier Hainque <hainque@act-europe.fr>
22362 * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
22363 ignore overflows on low and high bounds of an index to also account for
22364 differences in signedness between sizetype and gnu_index_subtype.
22365 These are as legitimate as the ones caused by a lower TYPE_PRECISION
22368 2004-08-09 Robert Dewar <dewar@gnat.com>
22370 * s-solita.ads, s-solita.adb: Minor reformatting
22372 * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
22373 Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
22374 obsolescent section
22375 Add note that No_Implicit_Conditionals does not suppress
22376 run time constraint checks.
22378 * vms_conv.ads: Minor reformatting
22380 * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
22381 and necessary for following change).
22382 (Mark): Return new format Mark_Id containing sec stack address
22383 (Release): Use sec stack address from Mark_Id avoiding Self call
22385 * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
22386 pointer (cleanup and necessary for following change).
22387 Define Mark_Id as record containing address of secondary stack, that way
22388 Release does not need to find the stack again, decreasing the number of
22389 calls to Self and improving efficiency.
22391 * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
22393 * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
22394 case variable into the individual case branches when possible.
22396 * sem_ch11.adb: Minor reformatting
22398 * prj.ads: Correct spelling of suffixs
22400 * prj-nmsc.adb: Minor reformatting
22401 Correct spelling suffixs throughout (also in identifiers)
22403 * freeze.adb: Minor spelling correction
22405 * exp_ch2.adb: Cleanups to handling of Current_Value
22406 (no functional effect).
22408 * bld.adb: Correct spelling of suffixs
22410 * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
22412 2004-08-09 Ed Schonberg <schonberg@gnat.com>
22415 * sem_ch7.adb (Install_Private_Declarations): In the body of the
22416 package or of a child, private entities are both immediately_visible
22419 2004-08-09 Ed Schonberg <schonberg@gnat.com>
22421 * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
22422 there are no range checks on the value of the literal.
22424 * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
22425 wrapped is the triggering alternative of an asynchronous select, action
22426 statements mustbe inserted before the select itself.
22428 * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
22429 case where the prefix is a protected function call.
22430 (Resolve_Attribute, case 'Access): The attribute reference on a
22431 subprogram is legal in a generic body if the subprogram is declared
22434 2004-08-09 Vincent Celier <celier@gnat.com>
22436 * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
22437 languages, otherwise building the library may fail with unresolved
22439 (Compile_Sources): Do not build libraries if -c switch is used
22441 * gnatlink.adb (Process_Args): New switches -M and -Mmap
22442 (Write_Usage): If map file creation is supported, output new switches
22444 (Gnatlink): When -M is specified, add the necessary switch(es) to the
22445 gcc call, when supported.
22447 * Makefile.in: Added indepsw.o to the object list for gnatlink
22448 Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
22450 * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
22451 indepsw.adb, indepsw.ads: New files.
22453 2004-08-09 Bernard Banner <banner@gnat.com>
22455 * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
22457 * Makefile.in: add section for vxworks x86
22459 2004-08-09 Hristian Kirtchev <kirtchev@gnat.com>
22461 * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
22462 per-object constrained components where the discriminant is of an
22464 (Build_Record_Init_Proc): Add condition to prevent the inheritance of
22465 the parent initialization procedure for derived Unchecked_Unions.
22466 Instead, derived Unchecked_Unions build their own initialization
22468 (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
22469 Check the body of the subprogram for details.
22470 (Freeze_Record_Type): Prevent the inheritance of discriminant checking
22471 functions for derived Unchecked_Union types by introducing a condition.
22472 Allow the creation of TSS equality functions for Unchecked_Unions.
22473 (Make_Eq_Case): Rename formal parameter Node to E in function signature.
22474 Add formal parameter Discr to function signature. Discr is used to
22475 control the generated case statement for Unchecked_Union types.
22476 (Make_Eq_If): Rename formal parameter Node to E in function signature.
22478 * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
22480 Check the body of the subprogram for details.
22481 (Expand_Composite_Equality): Augment composite type equality to include
22482 correct handling of Unchecked_Union components.
22483 (Expand_N_In): Add condition to detect illegal membership tests when the
22484 subtype mark is a constrained Unchecked_Union and the expression lacks
22485 inferable discriminants, and build a Raise_Program_Error node.
22486 (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
22487 to detect types that contain components of unconstrained Unchecked_Union
22488 subtype. Add condition to detect equality between types that have an
22489 unconstrained Unchecked_Union component, and build a Raise_Program_Error
22490 node. Add condition to detect equality between Unchecked_Union types
22491 that lack inferable discriminants, and build a Raise_Program_Error node.
22492 Otherwise build a TSS equality function call.
22493 (Expand_N_Type_Conversion): Add condition to detect illegal conversions
22494 from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
22495 with the operand lacking inferable discriminants, and build a Raise_
22496 Program_Error node.
22497 (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
22498 composite equality.
22499 (Has_Inferable_Discriminants): Implement new predicate for objects and
22500 expressions of Unchecked_Union type. Check the body of subprogram for
22502 (Has_Unconstrained_UU_Components): Add function
22503 Component_Is_Unconstrained_UU. It is used to detect whether a single
22504 component is of an unconstrained Unchecked_Union subtype. Add function
22505 Variant_Is_Unconstrained_UU. It is used to detect whether a single
22506 component inside a variant is of an unconstrained Unchecked_Union type.
22508 * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
22509 inferred discriminant values. Add condition to generate a case
22510 statement with an inferred discriminant as the switch.
22511 (Make_Component_List_Assign): Introduce a Boolean flag that determines
22512 the behaviour of the subprogram in the presence of an Unchecked_Union.
22513 Add condition to trigger the usage of the inferred discriminant value
22514 as the generated case statement switch.
22515 (Make_Field_Assign): Introduce a Boolean flag that determines the
22516 behaviour of the subprogram in the presence of an Unchecked_Union. Add
22517 condition to trigger the usage of the inferred discriminant value as
22518 the right-hand side of the generated assignment.
22520 * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
22521 parameter generation when dealing with Unchecked_Unions.
22523 * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
22524 checks for Unchecked_Unions.
22526 * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
22528 * exp_attr.adb (Expand_N_Attribute_Reference): Produce
22529 Raise_Program_Error nodes for the execution of Read and Write
22530 attributes of Unchecked_Union types and the execution of Input and
22531 Output attributes of Unchecked_Union types that lack default
22532 discriminant values.
22534 * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
22535 Unchecked_Union. Add procedure Check_Component. It is used to inspect
22536 per-object constrained components of Unchecked_Unions for being
22537 Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
22538 check individual components withing a variant.
22540 * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
22541 comparison of Unchecked_Unions.
22542 (Resolve_Equality_OP): Remove guard that prevents equality between
22545 * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
22546 of component subtypes for Unchecked_Union components.
22547 (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
22548 since it is the actual subtype.
22550 * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
22551 pass of Unchecked_Union subtypes as generic actuals to formal types
22552 that lack known_discriminant_parts or that are derived Unchecked_Union
22553 types, and do nothing. In any other case, produce an error message.
22555 * sem_ch3.adb (Analyze_Component_Declaration): Add function
22556 Contains_POC. It determines whether a constraint uses the discriminant
22557 of an enclosing record type.
22558 Add condition to detect per-object constrained component and set the
22560 (Derived_Type_Declaration): Remove guard that prevents derivation from
22561 Unchecked_Union types.
22562 (Process_Subtype): Remove quard that prevents the creation of Unchecked_
22565 * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
22566 references to Unchecked_Union discriminants.
22568 * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
22569 formal generation when dealing with Unchecked_Unions.
22570 (Set_Actual_Subtypes): Add condition to prevent generation of actual
22571 subtypes for Unchecked_Unions.
22573 * sem_ch7.adb (Analyze_Package_Specification): Add procedure
22574 Inspect_Unchecked_Union_Completion. It is used to detect incorrect
22575 completions of discriminated partial views by Unchecked_Unions and
22576 produce an error message.
22578 2004-08-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22580 * trans.c (struct stmt_group): New field, GLOBAL.
22581 (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
22582 (struct elab_info): New struct.
22583 (elab_info_list, gnu_elab_proc_stack): New variables.
22584 (Compilation_Unit_to_gnu): New procedure.
22585 (gigi): Call it and also handle elaboration procs we've saved.
22586 (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
22587 global field from parent.
22588 (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
22589 (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
22590 (start_stmt_group): Initialize global field from parent.
22591 (add_decl_expr): Set to global for current statement group.
22592 (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
22595 * utils.c (global_bindings_p): True when no current_function_decl; no
22596 longer check current_binding_level.
22598 2004-08-09 Ben Brosgol <brosgol@gnat.com>
22600 * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
22603 * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
22605 2004-08-06 Andreas Schwab <schwab@suse.de>
22607 * utils.c (gnat_define_builtin): Remove second parameter of
22609 (begin_subprog_body): Likewise.
22611 2004-07-26 Arnaud Charlet <charlet@act-europe.fr>
22613 * sem_util.adb (Requires_Transient_Scope): Temporarily disable
22614 optimization, not supported by the tree-ssa back-end.
22616 2004-07-26 Olivier Hainque <hainque@act-europe.fr>
22618 * s-mastop-irix.adb: Update comments.
22620 * a-except.adb (Exception_Information): Raise Constraint_Error if
22621 exception Id is Null_Id.
22622 This is required behavior, which is more reliably and clearly checked
22623 at the top level interface level.
22625 2004-07-26 Javier Miranda <miranda@gnat.com>
22627 * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
22628 call if a component has no default_expression and the box is used.
22630 * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
22631 default_expression and you use box, it behaves as if you had declared a
22632 stand-alone object.
22633 (Resolve_Record_Aggregate): If a component has no default_expression and
22634 you use box, it behaves as if you had declared a stand-alone object.
22636 * sem_ch10.adb (Install_Siblings): Do not make visible the private
22637 entities of private-with siblings.
22639 2004-07-26 Ed Schonberg <schonberg@gnat.com>
22641 * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
22642 for a component of an itype, set the parent pointer for analysis,
22643 there is no list in which to insert it.
22645 * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
22646 bona-fide renamings, not for inherited operations.
22648 * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
22649 actual for a formal that is an access parameter, create local
22650 finalization list even if the expression is not an aggregate.
22652 2004-07-26 Ed Schonberg <schonberg@gnat.com>
22655 * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
22656 Diagnose properly illegal subprogram renamings that are library units.
22658 2004-07-26 Ed Schonberg <schonberg@gnat.com>
22661 * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
22662 conversion rewritten as an unchecked conversion, check that original
22663 expression is a variable.
22665 * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
22666 unchecked_conversion, create new node rather than rewriting in place,
22667 to preserve original construct.
22669 2004-07-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22671 * gigi.h (gnat_expand_body): Deleted.
22673 * Make-lang.in: (trans.o): Depends on function.h.
22675 * misc.c: (gnat_expand_body): Moved to here.
22677 * trans.c (gnat_expand_body_1): Deleted.
22678 (gnat_expand_body): Moved from here.
22679 (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
22680 (add_stmt): Check for marked visited with global_bindings_p.
22681 (gnat_gimplify_expr, case COMPONENT_REF): New case.
22682 (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
22684 * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
22685 VIEW_CONVERT_EXPR if not operation type.
22687 * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
22690 * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
22691 changes: reformatting of negation operators, removing unneeded
22692 inequality comparison with zero, converting equality comparisons with
22693 zero to negations, changing int/0/1 to bool/false/true, replace calls
22694 to gigi_abort with abort, and various other similar changes.
22696 2004-07-26 Vincent Celier <celier@gnat.com>
22698 * gnatcmd.adb (GNATCmd): Add processing for new built-in command
22701 * make.adb (Gnatmake): Fail when a library is not present and there is
22702 no object directory.
22704 * mlib-prj.adb (Check_Library): No need to check if the library needs
22705 to be rebuilt if there is no object directory, hence no object files
22706 to build the library.
22708 * opt.ads (Setup_Projects): New Boolean flag.
22710 * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
22712 Create directory when Kind /= "" and in "gnat setup". Report error if
22713 directory cannot be created.
22714 (Ada_Check): Create library interface copy dir if it does not exist
22715 and we are in "gnat setup".
22716 (Find_Sources): No error if in "gnat setup" and no Ada sources were
22718 (Language_Independent_Check): Create object directory, exec directory
22719 and/or library directory if they do not exist and we are in
22722 * vms_conv.ads: (Command_Type): New command Setup.
22724 * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
22726 * vms_data.ads: Add qualifiers/switches for new built-in command
22729 2004-07-25 Richard Henderson <rth@redhat.com>
22731 * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
22732 DECL_IGNORED_P on RESULT_DECL.
22734 2004-07-20 Olivier Hainque <hainque@act-europe.fr>
22736 * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
22737 allocation and potentially overflowing update with
22738 Tailored_Exception_Information. Use the sec-stack free procedural
22739 interface to output Exception_Information instead.
22741 * a-except.adb (To_Stderr): New subprogram for character, and string
22742 version moved from a-exextr to be visible from other separate units.
22743 (Tailored_Exception_Information): Remove the procedural version,
22744 previously used by the default Last_Chance_Handler and not any more.
22745 Adjust various comments.
22747 * a-exexda.adb: Generalize the exception information procedural
22748 interface, to minimize the use of secondary stack and the need for
22749 local buffers when the info is to be output to stderr:
22750 (Address_Image): Removed.
22751 (Append_Info_Character): New subprogram, checking for overflows and
22752 outputing to stderr if buffer to fill is of length 0.
22753 (Append_Info_String): Output to stderr if buffer to fill is of length 0.
22754 (Append_Info_Address, Append_Info_Exception_Name,
22755 Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
22756 Append_Info_Basic_Exception_Traceback,
22757 Append_Info_Exception_Information): New subprograms.
22758 (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
22759 (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
22760 Exception_Info_Maxlength, Exception_Name_Length,
22761 Exception_Message_Length): New subprograms.
22762 (Exception_Information): Use Append_Info_Exception_Information.
22763 (Tailored_Exception_Information): Use
22764 Append_Info_Basic_Exception_Information.
22765 Export services for the default Last_Chance_Handler.
22767 * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
22768 other separate units.
22770 2004-07-20 Vincent Celier <celier@gnat.com>
22772 * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
22774 2004-07-20 Ed Schonberg <schonberg@gnat.com>
22776 * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
22777 emit itype references for the designated types of component types that
22778 are declared outside of the full record declaration, and that may
22779 denote a partial view of that record type.
22781 2004-07-20 Ed Schonberg <schonberg@gnat.com>
22784 * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
22785 which is the designated type in an access component declaration, to the
22786 list of incomplete dependents of the parent type, to avoid elaboration
22787 issues with out-of-scope subtypes.
22788 (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
22789 full view of the parent.
22791 2004-07-20 Ed Schonberg <schonberg@gnat.com>
22794 * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
22795 entities that are hidden, such as references to generic actuals
22796 outside an instance.
22798 2004-07-20 Javier Miranda <miranda@gnat.com>
22800 * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
22801 support to the new notation.
22802 (Analyze_Selected_Component): Add call to Try_Object_Operation.
22804 2004-07-20 Jose Ruiz <ruiz@act-europe.fr>
22806 * s-taprob.adb: Adding the elaboration code required for initializing
22807 the tasking soft links that are common to the full and the restricted
22810 * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
22811 restricted run time has been moved to the package
22812 System.Soft_Links.Tasking.
22814 * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
22815 restricted run time has been moved to the package
22816 System.Soft_Links.Tasking.
22818 * Makefile.rtl: Add entry for s-solita.o in run-time library list.
22820 * s-solita.ads, s-solita.adb: New files.
22822 2004-07-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22824 * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
22825 Case_Statement_to_gnu): Split off from gnat_to_gnu.
22826 (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
22827 Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
22828 Exception_Handler_to_gnu_zcx): Likewise.
22830 2004-07-17 Joseph S. Myers <jsm@polyomino.org.uk>
22832 * gigi.h (builtin_function): Declare.
22834 2004-07-15 Robert Dewar <dewar@gnat.com>
22836 * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
22839 * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
22840 access values as an example of a warning.
22842 * gnat_rm.texi: Document new attribute Has_Access_Values
22844 * gnat-style.texi: Document that box comments belong on nested
22847 * sem_util.ads (Has_Access_Values): Improved documentation
22849 * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
22851 * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
22852 (Process_Interface_Name): Call to this new procedure
22853 (Set_Extended_Import_Export_External_Name): Call to this new procedure
22855 * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
22857 * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
22859 * einfo.ads: Minor comment typo fixed
22861 2004-07-15 Jose Ruiz <ruiz@act-europe.fr>
22863 * snames.adb: Add _atcb.
22865 * snames.ads: Add Name_uATCB.
22867 * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
22868 (in the expanded code) when using the restricted run time.
22870 * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
22871 a in parameter in order to allow ATCBs to be preallocated (in the
22874 * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
22875 order to allow ATCBs to be preallocated. In case of error, the ATCB is
22876 deallocated in System.Tasking.Stages.
22878 * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
22879 order to allow ATCBs to be preallocated.
22881 * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
22882 here. It was previously done in Initialize_ATCB.
22884 * rtsfind.ads: Make the Ada_Task_Control_Block visible.
22886 * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
22887 Restricted run time.
22889 * exp_ch3.adb: When using the Restricted run time, pass the
22890 preallocated Ada_Task_Control_Block when creating a task.
22892 2004-07-15 Ed Schonberg <schonberg@gnat.com>
22894 * sem_util.adb (Normalize_Actuals): If there are no actuals on a
22895 function call that is itself an actual in an enclosing call, diagnose
22896 problem here rather than assuming that resolution will catch it.
22898 * sem_ch7.adb (Analyze_Package_Specification): If the specification is
22899 the local copy of a generic unit for a formal package, and the generic
22900 is a child unit, install private part of ancestors before compiling
22901 private part of spec.
22903 * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
22904 use scope entities rather than tree structures, to handle properly
22905 parent units that are instances rewritten as bodies for inlining
22908 * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
22909 Remove_Parents): Handle properly a parent unit that is an
22910 instantiation, when the unit has been rewritten as a body for inlining
22913 * par.adb (Goto_List): Global variable to collect goto statements in a
22914 given unit, for use in detecting natural loops.
22916 * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
22917 use in detecting natural loops.
22919 * par-labl.adb (Find_Natural_Loops): Recognize loops create by
22920 backwards goto's, and rewrite as a infinite loop, to improve locality
22923 * exp_util.adb (Force_Evaluation): Recognize a left-hand side
22924 subcomponent that includes an indexed reference, to prevent the
22925 generation of copies that would miscompile the desired assignment
22927 (Build_Task_Image_Decls): Add a numeric suffix to
22928 generated name for string variable, to avoid spurious conflicts with
22929 the name of the type of a single protected object.
22931 * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
22932 loop with an explicit exit statement, to avoid generating an
22933 out-of-range value with 'Succ leading to spurious constraint_errors
22934 when compiling with -gnatVo.
22936 2004-07-15 Thomas Quinot <quinot@act-europe.fr>
22938 * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
22939 might not be analyzed yet, even if its Etype is already set (case of an
22940 unchecked conversion built using Unchecked_Convert_To, for example).
22941 If the prefix has already been analyzed, this will be a nop anyway.
22943 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
22944 controller type, or an assignment of a record type with controlled
22945 components, copy only user data, and leave the finalization chain
22946 pointers untouched.
22948 2004-07-15 Vincent Celier <celier@gnat.com>
22950 * make.adb (Collect_Arguments): Improve error message when attempting
22951 to compile a source not part of any project, when -x is not used.
22953 * prj.ads: (Defined_Variable_Kind): New subtype
22955 * prj-attr.adb (Register_New_Package): Two new procedures to register
22956 a package with or without its attributes.
22957 (Register_New_Attribute): Mew procedure to register a new attribute in a
22959 New attribute oriented subprograms: Attribute_Node_Id_Of,
22960 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22961 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22963 New package oriented subprograms: Package_Node_Id_Of,
22964 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22966 * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
22968 (Package_Node_Id): Now a private, self initialized type
22969 (Register_New_Package): New procedure to register a package with its
22971 New attribute oriented subprograms: Attribute_Node_Id_Of,
22972 Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
22973 Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
22975 New package oriented subprograms: Package_Node_Id_Of,
22976 Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
22978 * prj-dect.adb (Parse_Attribute_Declaration,
22979 Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
22981 * prj-makr.adb (Make): Parse existing project file before creating
22982 other files. Fail if there was an error during parsing.
22984 * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
22985 new spec of Prj.Attr.
22987 * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
22988 to new spec of Prj.Attr.
22990 2004-07-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22992 * utils2.c: Fix typo in comment.
22994 2004-07-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
22996 * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
22997 * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
22999 2004-07-14 Andreas Schwab <schwab@suse.de>
23001 * trans.c (gnat_init_stmt_group): Remove duplicate definition.
23003 2004-07-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23005 * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
23007 (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
23010 * misc.c (gnat_types_compatible_p): New function.
23011 (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
23012 (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
23014 * trans.c (gigi): Move processing of main N_Compilation_Unit here.
23015 (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
23016 (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
23017 (mark_visited): Don't mark dummy type.
23018 (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
23019 parameter, we must remove any LJM building from GNU_NAME.
23020 (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
23021 (pos_to_constructor): Use int_const_binop.
23022 (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
23025 * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
23026 (gnat_pushlevel): Set TREE_USE on BLOCK node.
23027 (gnat_install_builtins): Add __builtin_memset.
23029 2004-07-13 Olivier Hainque <hainque@act-europe.fr>
23031 * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
23032 for a renaming, stabilize the initialization expression if we are at a
23033 local level. At the local level, uses of the renaming may be performed
23034 by a direct dereference of the initializing expression, and we don't
23035 want possible variables there to be evaluated for every use.
23037 * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
23038 Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
23039 them on the way. Account for the fact that we may introduce side
23040 effects in the process.
23042 2004-07-13 Richard Henderson <rth@redhat.com>
23044 * misc.c (default_pass_by_ref): Use pass_by_reference.
23046 2004-07-11 Joseph S. Myers <jsm@polyomino.org.uk>
23048 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
23049 LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
23051 2004-07-08 Richard Henderson <rth@redhat.com>
23053 * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
23056 2004-07-06 Vincent Celier <celier@gnat.com>
23058 * vms_conv.ads: Minor reformatting.
23059 Alphabetical order for enumerated values of type Command_Type, to have
23060 the command in alphabetical order for the usage.
23062 * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
23063 the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
23065 * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
23067 * makegpr.adb (Global_Archive_Exists): New global Boolean variable
23068 (Add_Archive_Path): Only add the global archive if there is one.
23069 (Build_Global_Archive): Set Global_Archive_Exists depending if there is
23070 or not any object file to put in the global archive, and don't build
23071 a global archive if there is none.
23072 (X_Switches): New table
23073 (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
23074 in the X_Switches table, if any.
23075 (Initialize): Make sure the X_Switches table is empty
23076 (Scan_Arg): Record -X switches in table X_Switches
23078 * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
23080 * make.adb: Minor comment fix
23082 * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
23083 invoked with directory information, add the directory in front of the
23086 * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
23087 invoked with directory information, add the directory in front of the
23090 * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
23091 when Keep_Temporary_Files is False.
23092 (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
23093 directory information, add the directory in front of the path.
23094 When not on VMS, handle new switch -dn before the command to set
23095 Keep_Temporary_Files to True.
23096 (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
23099 * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
23100 invoked with directory information, add the directory in front of the
23103 2004-07-06 Thomas Quinot <quinot@act-europe.fr>
23105 * snames.ads, snames.adb (Name_Stub): New name for the distributed
23108 * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
23109 New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
23111 * g-socket.adb (To_Timeval): Fix incorrect conversion of
23112 Selector_Duration to Timeval for the case of 0.0.
23114 * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
23115 documentation from Evolve_And_Then.
23117 2004-07-06 Jose Ruiz <ruiz@act-europe.fr>
23119 * s-taprop-tru64.adb, s-taprop-os2.adb,
23120 s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
23122 2004-07-06 Robert Dewar <dewar@gnat.com>
23124 * s-osinte-hpux.ads, s-osinte-freebsd.ads,
23125 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
23126 s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
23127 s-interr-sigaction.adb, s-taprop-irix-athread.adb,
23128 s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
23129 s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
23130 s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
23131 s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
23132 a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
23133 a-tags.ads, bindgen.ads, checks.adb, checks.adb,
23134 csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
23135 exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
23136 g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
23137 i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
23138 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
23139 sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
23140 sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
23141 s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
23142 s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
23143 s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
23144 vms_data.ads: Minor reformatting,
23145 Fix bad box comment format.
23147 * gnat_rm.texi: Fix minor grammatical error
23149 * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
23151 * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
23152 more cases of discriminated records to be recognized as not needing a
23154 (Has_Access_Values): New function.
23156 * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
23158 * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
23159 Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
23160 with LRM terminology).
23161 Change terminology in comments primitive type => elementary type.
23163 2004-07-06 Ed Schonberg <schonberg@gnat.com>
23166 * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
23167 parameters do not impose any requirements on the presence of a body.
23169 2004-07-06 Ed Schonberg <schonberg@gnat.com>
23172 * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
23173 compilation unit and is in an open scope at the point of instantiation,
23174 assume that a body may be present later.
23176 2004-07-06 Ed Schonberg <schonberg@gnat.com>
23178 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
23179 Improve error message when specified size is not supported.
23181 * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
23182 is never a primitive operation.
23184 2004-07-05 Andreas Schwab <schwab@suse.de>
23186 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
23187 RECORD_OR_UNION_CHECK.
23188 (TYPE_CONTAINS_TEMPLATE_P): Likewise.
23190 2004-07-04 Kelley Cook <kcook@gcc.gnu.org>
23192 * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
23193 dependency on xgnatugn, instead build it via a submake.
23194 (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
23196 2004-07-04 Richard Henderson <rth@redhat.com>
23198 * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
23200 2004-07-01 Richard Henderson <rth@redhat.com>
23202 * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
23203 * utils.c (max_size): Likewise.
23205 2004-06-28 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23207 * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
23208 and rest_of_type_compilation; add arg to create_*_decl.
23209 (annotate_decl_with_node): Deleted.
23210 (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
23211 * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
23212 (get_current_block_context, gnat_pushdecl): New declarations.
23213 (gnat_init_stmt_group): Likewise.
23214 (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
23215 * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
23216 (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
23217 (gnat_init): Call gnat_init_stmt_group.
23218 * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
23219 (gnu_pending_elaboration_list): Deleted.
23220 (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
23221 (gigi): Rearrange initialization calls and move some to last above.
23222 (gnat_to_gnu): If statement and not in procedure, go into elab proc.
23223 Delete calls to add_decl_expr; add arg to create_*_decl.
23224 (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
23225 (gnat_to_gnu, case N_Subprogram_Body): Move some code to
23226 begin_subprog_body and call it.
23227 Don't push and pop ggc context.
23228 (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
23229 (add_stmt): Remove handling of DECL_EXPR from here.
23230 If not in function, mark visited.
23231 (add_decl_expr): Put global at top level.
23232 Check for cases of DECL_INITIAL we have to handle here.
23233 (process_type): Add extra arg to create_type_decl.
23234 (build_unit_elab): Rework to just gimplify.
23235 * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
23236 (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
23237 (get_pending_elaborations, pending_elaborations_p): Likewise.
23238 (push_pending_elaborations, pop_pending_elaborations): Likewise.
23239 (get_elaboration_location, insert_elaboration_list): Likewise.
23240 (gnat_binding_level): Renamed from ada_binding_level.
23241 (init_gnat_to_gnu): Don't clear pending_elaborations.
23242 (global_bindings_p): Treat as global if no current_binding_level.
23243 (set_current_block_context): New function.
23244 (gnat_pushdecl): Renamed from pushdecl; major rework.
23245 All callers changed.
23246 (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
23247 (finish_record_type): Call call pushdecl for stub decl.
23248 (function_nesting_depth): Deleted.
23249 (begin_subprog_body): Delete obsolete code.
23250 * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
23252 2004-06-28 Robert Dewar <dewar@gnat.com>
23254 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23255 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
23256 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
23257 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
23258 a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
23260 * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
23261 deal with problem of inefficient slices on machines with strict
23262 alignment, when the slice is a component of a composite.
23264 * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
23265 machines, we need the check there as well.
23267 2004-06-28 Ed Schonberg <schonberg@gnat.com>
23269 * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
23270 determine safe copying direction for overlapping slice assignments
23271 when component is controlled.
23273 * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
23274 formal derived type in the actual for a formal package are visible in
23275 the enclosing instance.
23277 2004-06-28 Ed Schonberg <schonberg@gnat.com>
23280 * sem_util.adb (Trace_Components): Diagnose properly an illegal
23281 circularity involving a private type whose completion includes a
23282 self-referential component.
23283 (Enter_Name): Use Is_Inherited_Operation to distinguish a source
23284 renaming or an instantiation from an implicit derived operation.
23286 2004-06-28 Pascal Obry <obry@gnat.com>
23288 * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
23290 (Library_File_Name_For): Idem.
23292 2004-06-28 Matthew Gingell <gingell@gnat.com>
23294 * g-traceb.ads: Add explanatory note on the format of addresses
23295 expected by addr2line.
23297 2004-06-28 Jerome Guitton <guitton@act-europe.fr>
23299 * Makefile.in: Force debugging information on s-tasdeb.adb,
23300 a-except.adb and s-assert.adb needed by the debugger.
23302 2004-06-28 Vincent Celier <celier@gnat.com>
23304 * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
23308 * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
23310 * prj.adb: Minor reformatting
23311 (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
23313 * prj.ads: Comment updates
23315 (Project_Data): Change Flag1 to Need_To_Build_Lib.
23316 Remove Flag2: not used.
23318 * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
23321 * gnat_ugn.texi: Put a "null;" declaration in one project file example
23323 * gnat_rm.texi: Document Empty declarations "null;".
23325 * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
23326 front of the linker options.
23327 (Link_Foreign): Put the global archives and the libraries in front of
23328 the linker options.
23330 2004-06-28 Javier Miranda <miranda@gnat.com>
23332 * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
23333 (RTU_Loaded): Code cleanup
23334 (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
23335 withed predefined units.
23337 * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
23338 explicitly withed predefined units.
23339 Fix typo in comment
23341 * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
23342 explicitly withed predefined units.
23344 2004-06-26 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23346 * ada-tree.def (DECL_STMT): Deleted.
23347 * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
23348 (DECL_STMT_VAR): Deleted.
23349 * decl.c: add_decl_stmt now add_decl_expr.
23350 * gigi.h: Likewise.
23351 * trans.c: Likewise.
23352 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23353 (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
23354 (add_stmt): Only handle padded type here.
23355 (add_stmt_with_node): Allow gnat_node to not be present.
23356 (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
23357 (gnat_gimplify_stmt, case DECL_STMT): Deleted.
23358 (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
23359 make a SAVE_EXPR for the entire fat pointer.
23360 * utils.c (pushdecl): Walk a DECL_EXPR in global case.
23361 (create_index_type): Make a DECL_EXPR.
23362 (end_subprog_body): Don't call allocate_struct_function here but
23365 2004-06-25 Pascal Obry <obry@gnat.com>
23367 * makegpr.adb (Build_Library): Remove parameter Lib_Address and
23368 Relocatable from Build_Dynamic_Library call.
23370 * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
23371 Relocatable are now synonym.
23373 * Makefile.in: Use s-parame-mingw.adb on MingW platform.
23375 * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
23376 Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
23379 * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
23380 Lib_Address and Relocatable.
23381 (Default_DLL_Address): Removed.
23383 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
23384 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
23385 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
23386 (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
23387 (Default_DLL_Address): Removed.
23389 * mlib-tgt-mingw.adb: Ditto.
23390 (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
23392 * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
23393 the initial thread stack size.
23395 * a-strmap.ads: Move package L to private part as it is not used in
23396 the spec. Found while reading code.
23398 2004-06-25 Olivier Hainque <hainque@act-europe.fr>
23400 * tracebak.c: Introduce support for a GCC infrastructure based
23401 implementation of __gnat_backtrace.
23403 * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
23404 any more. Use accessors instead. This eases maintenance and relaxes
23405 some alignment constraints.
23406 (_GNAT_Exception structure): Remove the Ada specific fields
23407 (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
23409 (is_handled_by, __gnat_eh_personality): Replace component references to
23410 exception structure by use of the new accessors.
23412 * init.c (__gnat_initialize): Adjust comments to match the just
23413 reverted meaning of the -static link-time option.
23415 * adaint.c (convert_addresses): Arrange not to define a stub for
23416 mips-irix any more, as we now want to rely on a real version from a
23417 recent libaddr2line.
23419 * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
23420 the personality routine can use them and not have to rely on a C
23421 counterpart of the record anymore. This simplifies maintenance and
23422 relaxes the constraint of having Standard'Maximum_Alignment match
23424 Update comments, and add a section on the common header alignment issue.
23426 2004-06-25 Geert Bosch <bosch@gnat.com>
23428 * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
23429 polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
23431 2004-06-25 Robert Dewar <dewar@gnat.com>
23433 * gnat_rm.texi: Fix section on component clauses to indicate that the
23434 restriction on byte boundary placement still applies for bit packed
23436 Add comment on stack usage from Initialize_Scalars
23438 * gnat_ugn.texi: Add documentation for -gnatyLnnn
23440 * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
23441 limiting nesting level.
23443 * usage.adb: Add line for -gnatyLnnn switch
23445 * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
23446 sem_ch13.adb, exp_aggr.adb: Minor reformatting
23448 * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
23449 type as well as on the subtype. This corrects a problem in freeze in
23450 setting alignments of atomic types.
23452 * sem_eval.ads: Minor comment typo fixed
23454 * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
23455 level. Minor reformatting.
23457 * fname.adb (Is_Predefined_File_Name): Require a letter after the
23458 minus sign. This means that file names like a--b.adb will not be
23459 considered predefined.
23461 * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
23462 record Test new flag and give diagnostic for bad component clause.
23463 (Freeze_Entity): Set alignment of array from component alignment in
23464 cases where this is safe to do.
23466 * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
23469 * cstand.adb: (Create_Standard): Set alignment of String to 1
23471 * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
23473 * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
23474 code in the common constrained array cases.
23476 * a-storio.adb: Change implementation to avoid possible alignment
23477 problems on machines requiring strict alignment (data should be moved
23478 as type Buffer, not type Elmt).
23480 * checks.adb (Apply_Array_Size_Check): Improve these checks by
23481 killing the overflow checks which we really do not need (64-bits is
23484 2004-06-25 Vincent Celier <celier@gnat.com>
23486 * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
23487 (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
23488 inconditionally for the main project.
23489 (Recursive_Add_Archives.Add_Archive_Path): New procedure
23490 (Link_Executables.Check_Time_Stamps): New procedure
23491 (Link_Executables.Link_Foreign): New procedure
23492 Changes made to reduce nesting level of this package
23493 (Check): New procedure
23494 (Add_Switches): When not in quiet output, check that a switch is not
23495 the concatenation of several valid switches. If it is, issue a warning.
23496 (Build_Global_Archive): If the global archive is rebuilt, linking need
23498 (Compile_Sources): Rebuilding a library archive does not imply
23499 rebuilding the global archive.
23500 (Build_Global_Archive): New procedure
23501 (Build_Library): New name for Build_Archive, now only for library
23503 (Check_Archive_Builder): New procedure
23504 (Create_Global_Archive_Dependency_File): New procedure
23505 (Gprmake): Call Build_Global_Archive before linking
23506 * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
23508 (Scan_Arg): Display the Copyright notice when -v is used
23510 * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
23513 * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
23515 Add new GNAT LIST qualifier /FILES=
23516 Added qualifier /DIRECTORY= to GNAT METRIC
23517 Added qualifier /FILES= to GNAT METRIC
23518 Added qualifier /FILES to GNAT PRETTY
23520 * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
23521 to take into account both versions of the switch.
23523 * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
23524 always be the last switch to the gcc driver. Disable switch storing so
23525 that switches automatically added by the gcc driver are not put in the
23528 * prj.adb (Project_Empty): Take into account changes in components of
23531 * prj.ads (Languages_Processed): New enumaration value All_Languages.
23533 * prj.ads (Project_Data): Remove component Lib_Elaboration: never
23534 used. Split Boolean component Ada_Sources_Present in two Boolean
23535 components Ada_Sources_Present and Other_Sources_Present.
23538 * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
23539 instead of Sources_Present.
23540 (Set_Ada_Paths.Add.Recursive_Add): Ditto
23542 * prj-nmsc.adb: Minor reformatting
23543 (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
23544 (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
23545 Check_Ada_Naming_Scheme.
23546 Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
23549 * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
23551 Make sure that all cycles where there is at least one "limited with"
23553 (Parse_Single_Project): New Boolean parameter In_Limited
23555 * prj-proc.adb (Recursive_Check): When Process_Languages is
23556 All_Languages, call first Prj.Nmsc.Ada_Check, then
23557 Prj.Nmsc.Other_Languages_Check.
23559 * prj-proc.adb (Process): Use Ada_Sources_Present or
23560 Other_Sources_Present (instead of Sources_Present) depending on
23563 * lang-specs.h: Keep -g and -m switches in the same order, and as the
23566 * lib.adb (Switch_Storing_Enabled): New global Boolean flag
23567 (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
23569 (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
23572 * lib.ads (Disable_Switch_Storing): New procedure.
23574 * make.adb: Modifications to reduce nesting level of this package.
23575 (Check_Standard_Library): New procedure
23576 (Gnatmake.Check_Mains): New procedure
23577 (Gnatmake.Create_Binder_Mapping_File): New procedure
23578 (Compile_Sources.Compile): Add switch -gnatez as the last option
23579 (Display): Never display -gnatez
23581 * Makefile.generic:
23582 When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
23584 * gnatcmd.adb (Check_Project): New function
23585 (Process_Link): New procedure to reduce nesting depth
23586 (Check_Files): New procedure to reduce the nesting depth.
23587 For GNAT METRIC, include the inherited sources in extending projects.
23588 (GNATCmd): When GNAT LS is invoked with a project file and no files,
23589 add the list of files from the sources of the project file. If this list
23590 is too long, put it in a temp text files and use switch -files=
23591 (Delete_Temp_Config_Files): Delete the temp text file that contains
23592 a list of source for gnatpp or gnatmetric, if one has been created.
23593 (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
23594 in the project file is too large, create a temporary text file that
23595 list them and pass it to the tool with "-files=<temp text file>".
23596 (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
23598 * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
23599 generated file is in not in Ada.
23601 * gnatls.adb: Remove all parameters And_Save that are no longer used.
23602 (Scan_Ls_Arg): Add processing for -files=
23603 (Usage): Add line for -files=
23605 * g-os_lib.adb (On_Windows): New global constant Boolean flag
23606 (Normalize_Pathname): When on Windows and the path starts with a
23607 directory separator, make sure that the resulting path will start with
23610 * clean.adb (Clean_Archive): New procedure
23611 (Clean_Project): When there is non-Ada code, delete the global archive,
23612 the archive dependency files, the object files and their dependency
23613 files, if they exist.
23614 (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
23616 2004-06-25 Thomas Quinot <quinot@act-europe.fr>
23618 * sinfo.ads: Fix typo in comment.
23620 * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
23621 the TSS for remote access-to-subprogram types, since these TSS are
23622 always present once the type has been analyzed.
23623 (RAS_E_Dereference): Same.
23625 * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
23626 reference raises Bad_Attribute, mark the reference as analyzed so the
23627 node (and any children resulting from rewrites that could have occurred
23628 during the analysis that ultimately failed) is not analyzed again.
23630 * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
23632 * exp_dist.adb: Minor comment fix.
23634 * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
23635 type is an anonymous access type, no unchecked deallocation of the
23636 allocated object can occur. If the object is controlled, attach it with
23637 a count of 1. This allows attachment to the Global_Final_List, if
23638 no other relevant list is available.
23639 (Get_Allocator_Final_List): For an anonymous access type that is
23640 the type of a discriminant or record component, the corresponding
23641 finalisation list is the one of the scope of the type.
23643 2004-06-25 Ed Schonberg <schonberg@gnat.com>
23645 * sem_ch3.adb (Replace_Type): When computing the signature of an
23646 inherited subprogram, use the first subtype if the derived type
23647 declaration has no constraint.
23649 * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
23650 before applying previous optimization. Minor code cleanup.
23652 * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
23653 placed at the beginning of an unpacked record without explicit
23654 alignment, a slice of it will be aligned and does not need a copy when
23657 2004-06-25 Ed Schonberg <schonberg@gnat.com>
23661 * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
23662 reference is written with expressions mimicking parameters.
23664 2004-06-25 Hristian Kirtchev <kirtchev@gnat.com>
23667 * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
23668 STEP 2a. The constraints of a full type declaration of a derived record
23669 type are checked for conformance with those declared in the
23670 corresponding private extension declaration. The message
23671 "not conformant with previous declaration" is emitted if an error is
23674 2004-06-25 Vasiliy Fofanov <fofanov@act-europe.fr>
23676 * g-traceb.ads: Document the need for -E binder switch in the spec.
23678 * g-trasym.ads: Document the need for -E binder switch in the spec.
23680 2004-06-25 Jose Ruiz <ruiz@act-europe.fr>
23682 * sem_prag.adb: Add handling of pragma Detect_Blocking.
23684 * snames.h, snames.ads, snames.adb: Add entry for pragma
23687 * s-rident.ads: Change reference to pragma Detect_Blocking.
23689 * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
23692 * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
23693 to indicate whether pragma Detect_Blocking is active.
23695 * par-prag.adb: Add entry for pragma Detect_Blocking.
23697 * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
23698 of not handling WITH.
23699 Note that this replaces the previous update which was incorrect.
23701 2004-06-25 Javier Miranda <miranda@gnat.com>
23703 * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
23704 use-clauses to have a clean environment.
23706 * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
23707 the installation of the use-clauses to stablish a clean environment in
23708 case of compilation of a separate unit; otherwise the call to
23709 use_one_package is protected by the barrier Applicable_Use.
23711 * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
23712 the installation of the use-clauses to stablish a clean environment in
23713 case of compilation of a separate unit.
23714 (End_Use_Clauses): Minor comment cleanup.
23716 2004-06-25 Sergey Rybin <rybin@act-europe.fr>
23718 * gnat_ugn.texi: Add description of the gnatpp 'files' switch
23720 2004-06-23 Richard Henderson <rth@redhat.com>
23722 * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
23724 2004-06-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23726 * decl.c (elaborate_expression, elaborate_expression_1): Arguments
23727 now bool instead of int.
23728 (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
23729 * trans.c (gnu_switch_label_stack): New function.
23730 (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
23731 elaboration of renamed entity returns.
23732 (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
23733 (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
23734 (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
23735 (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
23736 DECL_SIZE_UNIT and simplify variable-sized case.
23737 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
23738 Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
23739 (gnat_stabilize_reference): Add arg to COMPONENT_REF.
23740 (build_unit_elab): Disable for now.
23741 * utils.c (mark_visited): New function.
23742 (pushdecl): Walk tree to call it for global decl.
23743 (update_pointer_to): Update all variants of pointer and ref types.
23744 Add arg to COMPONENT_REF.
23745 (convert): Likewise.
23746 Move check for converting between variants lower down.
23747 * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
23748 (build_allocator): Don't force type of MODIFY_EXPR.
23749 (gnat_mark_addressable, case VAR_DECL): Unconditionally call
23750 put_var_into_stack.
23752 2004-06-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
23754 * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
23755 * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
23756 * decl.c (gnat_to_gnu_entity): Also set force_global for imported
23758 * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
23759 all callers changed.
23760 (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
23761 the way that EXIT_STMT finds the loop label.
23762 (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
23763 (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
23764 (add_stmt): Use annotate_with_locus insted of setting directly.
23765 (pos_to_construct): Set TREE_PURPOSE of each entry to index.
23766 (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
23767 * utils.c (gnat_install_builtins): Install __builtin_memcmp.
23768 (build_vms_descriptor): Add extra args to ARRAY_REF.
23769 (convert): Use VIEW_CONVERT_EXPR between aggregate types.
23770 * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
23772 (build_binary_op): Don't make explicit CONVERT_EXPR.
23773 Add extra rgs to ARRAY_REF.
23775 2004-06-14 Pascal Obry <obry@gnat.com>
23777 * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
23778 Windows. Fix minor typo.
23780 * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
23781 which is now supported on Windows. With this implementation using the
23782 Library Project feature is no different on Windows than on UNIX.
23784 2004-06-14 Vincent Celier <celier@gnat.com>
23786 * makegpr.adb (Compile_Sources): Nothing to do when there are no
23789 * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
23791 * prj-part.adb (Parse_Single_Project): When a duplicate project name is
23792 found, show the project name and the path of the previously parsed
23795 2004-06-14 Ed Schonberg <schonberg@gnat.com>
23797 * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
23798 array, avoid copying the actual before the call.
23800 2004-06-14 Thomas Quinot <quinot@act-europe.fr>
23802 * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
23803 Instead, allocate memory on worst-case alignment assumptions, and then
23804 return an aligned address within the allocated zone.
23806 2004-06-14 Robert Dewar <dewar@gnat.com>
23808 * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
23809 elab entities in predefined units in No_Run_Time_Mode.
23810 (Gen_Adainit_C): Same fix
23811 (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
23812 units in No_Run_Time_Mode
23813 (Gen_Elab_Calls_C): Same fix
23815 * symbols-vms-alpha.adb: Minor reformatting
23817 * g-debpoo.ads: Minor reformatting
23819 * lib.adb (In_Same_Extended_Unit): Version working on node id's
23821 * lib.ads (In_Same_Extended_Unit): Version working on node id's
23823 * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
23826 * make.adb: Minor reformatting
23828 * par-ch12.adb: Minor reformatting
23830 * par-prag.adb: Add dummy entry for pragma Profile_Warnings
23832 * prj-strt.adb: Minor reformatting
23834 * restrict.ads, restrict.adb: Redo handling of profile restrictions to
23837 * sem_attr.adb: Minor reformatting
23839 * sem_ch7.adb: Minor reformatting
23841 * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
23842 for type in the same unit as the object declaration.
23844 * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
23845 static string expressions and not just string literals.
23847 (Set_Warning): Reset restriction warning flag for restriction pragma
23848 Implement pragma Profile_Warnings
23849 Implement pragma Profile (Restricted)
23850 Give obolescent messages for old restrictions and pragmas
23852 * snames.h, snames.ads, snames.adb: Add new entry for pragma
23855 * s-rident.ads: Add declarations for restrictions required by profile
23856 Restricted and profile Ravenscar.
23858 * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
23860 * gnat_ugn.texi: Correct some missing entries in the list of GNAT
23861 configuration pragmas.
23863 2004-06-11 Vincent Celier <celier@gnat.com>
23865 * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
23866 gnatsym, when symbol policy is Restricted.
23868 * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
23869 gnatsym, when symbol policy is Restricted.
23871 * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
23872 read the symbol file.
23873 (Finalize): Fail in symbol policy Restricted if a symbol in the original
23874 symbol file is not in the object files. Do not create a new symbol file
23875 when symbol policy is Restricted.
23877 * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
23880 * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
23882 (Usage): Line for new switch -R
23884 * make.adb (Initialize): When the platform is not VMS, add the
23885 directory where gnatmake is invoked in the front of the path, if
23886 gnatmake is invoked with directory information. Change the Scan_Args
23887 while loop to a for loop.
23888 (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
23889 if Depth is equal or greater than the proposed depth, there is nothing
23891 (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
23894 * prj.ads: Add new symbol policy Restricted.
23896 * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
23897 with the new parameters Check_All_Labels and Case_Location.
23899 * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
23900 (Library_Symbol_File needs to be defined).
23902 * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
23903 and Case_Location If Check_All_Labels is True, check that all values of
23904 the string type are used, and output warning(s) if they are not.
23906 * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
23909 * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
23911 * gnat_ugn.texi: Update documentation about the library directory in
23914 * makegpr.adb (Display_Command): In verbose mode, also display the
23915 value of the CPATH env var, when the compiler is gcc.
23916 (Initialize): Change the Scan_Args while loop to a for loop
23917 (Compile_Individual_Sources): Change directory to object directory
23918 before compilations.
23920 * symbols.ads: New symbol policy Restricted.
23922 2004-06-11 Olivier Hainque <hainque@act-europe.fr>
23924 * a-except.adb (Raise_After_Setup family): Remove. The responsibility
23925 is now taken care of internally in the Exception_Propagation package
23926 and does not require clients assistance any more.
23928 * a-exexpr.adb (Is_Setup_And_Not_Propagated,
23929 Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
23930 functions. Helpers to maintain a predicate required in the handling of
23931 occurrence transfer between tasks.
23932 This is now handled internally and does not require clients assistance
23933 for the setup/propagate separation anymore.
23934 (Setup_Exception, Propagate_Exception): Simplify the Private_Data
23935 allocation strategy, handle the Setup_And_Not_Propagated predicate and
23938 * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
23939 raise_after_setup, now that everything is handled internally within the
23940 setup/propagation engine.
23942 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
23944 * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
23945 Add additional conditions for the case of an actual being a simple
23946 name or literal. Improve inlining by preventing the generation
23947 of temporaries with a short lifetime (one use).
23949 2004-06-11 Hristian Kirtchev <kirtchev@gnat.com>
23952 * einfo.ads: Minor comment updates for Has_Completion and
23953 E_Constant list of flags.
23955 * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
23956 and constant redeclarations now set the Has_Completion flag of their
23957 defining identifiers.
23959 * sem_ch7.adb (Analyze_Package_Spec): Add procedure
23960 Inspect_Deferred_Constant_Completion.
23961 Used to detect private deferred constants that have not been completed
23962 either by a constant redeclaration or pragma Import. Emits error message
23963 "constant declaration requires initialization expression".
23965 * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
23966 completes a deferred constant.
23968 2004-06-11 Geert Bosch <bosch@gnat.com>
23970 * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
23972 * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
23973 calculating exponent for scaling denormal numbers.
23974 (Leading_Part): Properly raise Constraint_Error for zero or negative
23976 (Remainder): Properly raise Constraint_Error for zero divisor.
23978 2004-06-11 Thomas Quinot <quinot@act-europe.fr>
23980 * sem_util.adb: Minor reformatting.
23982 * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
23983 dereference when accessing the entry parameter record.
23984 (Check_Array_Type): Always check for possible implicit dereference.
23985 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23986 Abort if a pointer is still present (denoting that an implicit
23987 dereference was left in the tree by the front-end).
23989 * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
23990 dereference when accessing the entry parameter record.
23991 (Check_Array_Type): Always check for possible implicit dereference.
23992 (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
23993 Abort if a pointer is still present (denoting that an implicit
23994 dereference was left in the tree by the front-end).
23996 2004-06-11 Emmanuel Briot <briot@act-europe.fr>
23998 * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
23999 message, like the compiler itself does. Easier to parse the output.
24001 * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
24003 * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
24004 be base names, and not includes directories.
24006 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
24008 * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
24009 so that dependencies are properly taken into account by make.
24011 2004-06-11 Arnaud Charlet <charlet@act-europe.fr>
24014 * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
24015 exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
24017 2004-06-11 Jerome Guitton <guitton@act-europe.fr>
24019 * Makefile.in (install-gnatlib): install target-specific run-time files.
24021 * Make-lang.in: Remove obsolete targets.
24023 2004-06-11 Ed Schonberg <schonberg@gnat.com>
24025 * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
24026 specification, to catch misuses of program unit names.
24028 * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
24029 superfluous conversions in an instance.
24031 2004-06-11 Ed Schonberg <schonberg@gnat.com>
24034 * sem_ch12.adb (Save_References): If operator node has been folded to
24035 enumeration literal, associated_node must be discarded.
24037 2004-06-11 Jose Ruiz <ruiz@act-europe.fr>
24039 * s-stchop-vxworks.adb: Add required pragma Convention to
24040 Task_Descriptor because it is updated by a C function.
24042 2004-06-08 Arnaud Charlet <charlet@act-europe.fr>
24045 * Makefile.in: Remove target specific SO_OPT on IRIX
24047 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24049 * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
24050 (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
24051 (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
24052 (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
24053 (STMT_STMT, USE_STMT): New statement codes.
24054 (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
24055 * ada-tree.h: Reflect above changes.
24056 (struct tree_loop_id): Deleted.
24057 (union lang_tree_node, struct lang_decl, struct lang_type):
24058 Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
24059 and DECL_LANGUAGE_SPECIFIC to reflect these changes.
24060 (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
24061 (IS_ADA_STMT): New macro.
24062 * decl.c (annotate_decl_with_node): New function.
24063 (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
24064 (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
24065 Call add_stmt_with_node to do needed assignments.
24066 Add call to update setjmp buffer directly, not via EXPR_STMT.
24067 (maybe_variable): Argment GNAT_NODE deleted.
24068 * gigi.h (maybe_variable): Likewise.
24069 (make_transform, add_stmt_with_node, set_block_for_group): New.
24070 (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
24071 (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
24072 (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
24073 (set_lineno, set_lineno_from_sloc): Likewise.
24074 (record_code_position, insert_code_for): Likewise.
24075 (gnat_poplevel): Now returns void.
24076 (end_subprog_body): Now takes argument.
24077 * misc.c (cgraph.h, tree-inline.h): New includes.
24078 (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
24079 (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
24080 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
24081 (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
24082 (gnat_parse_file): Don't set immediate_size_expand.
24083 Call cgraph functions.
24084 (gnat_expand_expr): Remove most cases.
24085 (record_code_position, insert_code_for): Remove from here.
24086 * trans.c (toplev.h, tree-gimple.h): Now included.
24087 (discard_file_names): Deleted.
24088 (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
24089 (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
24090 (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
24091 (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
24092 (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
24093 (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
24094 (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
24095 (set_block_for_group, add_stmt_list): Likewise.
24096 (start_stmt_group): Renamed from start_block_stmt.
24097 (end_stmt_group): Likewise, from end_block_stmt.
24098 (build_stmt_group): Likewise, from build_block_stmt, also add arg.
24099 (gigi): Don't set discard_file_names or call set_lineno.
24100 Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
24101 (tree_transform): Deleted, now renamed to be gnat_to_gnu.
24102 Numerous changes throughout to reflect new names and complete
24103 function-at-a-time implementation.
24104 (gnat_expand_stmt): Delete or comment out all cases.
24105 (process_inlined_subprograms): Use add_stmt.
24106 (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
24107 call set_lineno; also remove unneeded block handling.
24108 (process_type): Remove unneeded block handling.
24109 (build_unit_elab): Remove calls to deleted functions.
24110 * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
24111 (tree-dump.h): Likewise.
24112 (struct ada_binding_level): Add field jmpbuf_decl.
24113 (gnat_define_builtin, gnat_install_builtins): New.
24114 (gnat_gimplify_function, gnat_finalize): Likewise.
24115 (gnat_poplevel): No longer return BLOCK, set it instead.
24116 Remove code dealing with nested functions.
24117 (gnat_init_decl_processing): Also set size_type_node.
24118 Call gnat_install_builtins.
24119 (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
24120 (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
24121 Remove special-case for "main".
24122 (end_subprog_body): Add arg and rework for tree-ssa.
24123 (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
24124 Add case for BOOLEAN_TYPE.
24125 * utils2.c (rtl.h): Now include.
24126 (build_call_raise): Test Debug_Flag_NN directly.
24127 (build_call_alloc_dealloc): Don't use local stack allocation for now.
24128 (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
24129 (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
24131 2004-06-07 Robert Dewar <dewar@gnat.com>
24133 * a-direct.ads, einfo.ads: Minor comment updates
24135 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
24136 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
24137 s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
24138 s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
24139 s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
24141 * s-interr-sigaction.adb: Remove unreferenced variable
24142 (Attached_Interrupts). Minor reformatting.
24143 Avoid use of variable I (replace by J).
24145 * par-ch10.adb: Fix text of one error message
24147 * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
24148 exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
24149 exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
24150 opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
24151 par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
24152 par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
24153 sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
24154 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
24155 sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
24156 sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
24157 snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
24160 2004-06-07 Doug Rupp <rupp@gnat.com>
24162 * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
24164 * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
24166 * mlib-tgt-vms-ia64.adb: New file.
24168 * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
24169 Add mlib-tgt-vms-ia64.adb
24170 Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
24171 Move to alpha specific ifeq section.
24172 Add VMS specific versions of symbols.adb
24173 Renaming of 5q vms files.
24175 * 5qsystem.ads renamed to system-vms_64.ads.
24177 2004-06-07 Vincent Celier <celier@gnat.com>
24179 * a-calend.ads: Add a GNAT Note comment after function Time_Of to
24180 explain that when a time of day corresponding to the non existing hour
24181 on the day switching to DST is specified, Split may return a different
24184 * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
24187 * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
24188 (Normalize_Pathname): Only resolve VMS logical names when on VMS.
24190 * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
24192 If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
24193 the linking options.
24194 (Build_Library.Check_Libs): On VMS, if there is a dependency on
24195 g-trasym.ads, set Gtrasymobj_Needed to True.
24197 * prj-attr.adb: Add new package Metrics for gnatmetric
24199 * prj-nmsc.adb (Record_Other_Sources): Put source file names in
24200 canonical case to take into account files with upper case characters on
24202 (Ada_Check): Load the reference symbol file name in the name buffer to
24203 check it, not the symbol file name.
24205 * snames.ads, snames.adb: Add standard name Metrics (name of project
24206 file package for gnatmetric).
24208 * vms_conv.ads: Add Metric to Comment_Type
24210 * vms_conv.adb (Initialize): Add component dor Metric in Command_List
24212 * vms_data.ads: Add qualifiers for GNAT METRIC
24214 * makegpr.adb (Link_Executables): Take into account the switches
24215 specified in package Linker of the main project.
24217 2004-06-07 Thomas Quinot <quinot@act-europe.fr>
24219 * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
24220 the index of the last element is Units.Last, not Units.Table'Last
24221 (which is usually not a valid index within the actually allocated
24222 storage for the table).
24224 * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
24225 determines whether to generate a call to a checked storage pool
24226 Dereference action.
24227 Generate such a call only for a dereference that either comes from
24228 source, or is the result of rewriting a dereference that comes from
24231 2004-06-07 Romain Berrendonner <berrendo@act-europe.fr>
24233 * bindgen.adb (Gen_Output_File): Add support for GAP builds.
24235 2004-06-07 Eric Botcazou <ebotcazou@act-europe.fr>
24237 (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
24238 file level, elaborate the stride for inner dimensions in alignment
24241 * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
24244 2004-06-07 Javier Miranda <miranda@gnat.com>
24246 * exp_ch6.adb: Correct wrong modification in previous patch
24248 2004-06-07 Vasiliy Fofanov <fofanov@act-europe.fr>
24250 * g-trasym.ads: Corrected comment to properly reflect level of support
24253 2004-06-07 Hristian Kirtchev <kirtchev@gnat.com>
24255 * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
24256 includes case of a variable referenced on the left hand side of an
24257 assignment, therefore remove redundant code. Variables and prefixes of
24258 indexed or selected components are now marked as referenced on left
24259 hand side. Warnings are now properly emitted when variables or prefixes
24260 are assigned but not read.
24262 * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
24263 left hand side referenced variables. Private access types do not
24264 produce the warning "variable ... is assigned but never read".
24265 Add also additional checks to left hand side referenced variables.
24266 Aliased, renamed objects and access types do not produce the warning
24267 "variable ... is assigned but never read" since other entities may read
24268 the memory location.
24270 2004-06-07 Jerome Guitton <guitton@act-europe.fr>
24272 * Makefile.in: In the powerpc/vxworks-specific section, restore
24273 EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
24276 2004-06-07 Ed Schonberg <schonberg@gnat.com>
24278 * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
24279 predefined operators.
24280 Removes spurious type errors from g-trasym-vms.adb.
24282 * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
24283 distinct from the operator appearing in the source, call appropriate
24284 routine to insert conversions when needed, and complete resolution of
24286 (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
24287 interpretations for rewritten right operand.
24288 (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
24289 the other operand is overloaded and the context is a type conversion.
24291 2004-06-07 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24293 * ada-tree.def (BLOCK_STMT): Now has two operands.
24296 * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
24298 * gigi.h: (gnat_poplevel): Now returns a tree.
24300 * trans.c (end_block_stmt): Add arg; all callers changed.
24301 (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
24302 (start_block_stmt): Clear BLOCK_STMT_BLOCK.
24303 (add_stmt): Set TREE_TYPE.
24304 (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
24305 (gnat_expand_stmt, case BREAK_STMT): New case.
24307 * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
24309 2004-06-07 Jose Ruiz <ruiz@act-europe.fr>
24311 * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
24312 procedure Set_Stack_Size that is not needed.
24314 2004-06-07 Sergey Rybin <rybin@act-europe.fr>
24316 * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
24317 used for gnatpp input file and for the files upon which it depends
24319 2004-06-07 Ben Brosgol <brosgol@gnat.com>
24321 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
24323 2004-06-07 Arnaud Charlet <charlet@act-europe.fr>
24325 * gnatvsn.ads: Bump version numbers appropriately.
24326 Add new build type.
24328 2004-06-07 Pascal Obry <obry@gnat.com>
24330 * gnat_ugn.texi: Improve comments about imported names and link names
24331 on Windows. Add a note about the requirement to use -k gnatdll's option
24332 when working with a DLL which has stripped stdcall symbols (no @nn
24335 2004-05-27 Vincent Celier <celier@gnat.com>
24337 * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
24338 COMMENTS_LAYOUT=UNTOUCHED
24340 * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
24341 symbols-vms-alpha.adb
24343 2004-05-27 Thomas Quinot <quinot@act-europe.fr>
24345 * sem.ads: Clarify documentation on checks suppression.
24347 * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
24349 2004-05-27 Ed Schonberg <schonberg@gnat.com>
24351 * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
24352 the case of multiple derivations.
24353 (Is_Object_Reference): For a selected component, verify that the prefix
24354 is itself an object and not a value.
24356 * sem_ch12.adb (Same_Instantiated_Constant): New name for
24357 Same_Instantiated_Entity.
24358 (Same_Instantiated_Variable): Subsidiary to
24359 Check_Formal_Package_Instance, to recognize actuals for in-out generic
24360 formals that are obtained from a previous formal package.
24361 (Instantiate_Subprogram_Body): Emit proper error when
24362 generating code and the proper body of a stub is missing.
24364 * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
24365 has a universal interpretation, do the disambiguation here.
24367 * exp_ch4.adb (Expand_N_Type_Conversion,
24368 Expand_N_Unchecked_Type_Conversion): Special handling when target type
24369 is Address, to avoid typing anomalies when Address is a visible integer
24372 * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
24373 to determine whether a subprogram should not be marked Pure, even when
24374 declared in a pure package.
24376 2004-05-27 Jose Ruiz <ruiz@act-europe.fr>
24378 * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
24380 * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
24381 Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
24382 Update the documentation about the Ravenscar profile, following the
24383 definition found in AI-249.
24385 * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
24386 setting the Profile (Ravenscar). This must be done in addition to
24387 setting the required restrictions.
24389 * rtsfind.ads: Add the set of operations defined in package
24392 * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
24395 2004-05-27 Eric Botcazou <ebotcazou@act-europe.fr>
24397 lang-specs.h: Always require -c or -S and always redirect to /dev/null
24398 if -gnatc or -gnats is passed.
24400 2004-05-27 Hristian Kirtchev <kirtchev@gnat.com>
24402 * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
24403 a significant reference. Warnings are now properly emitted when a
24404 discriminated type is not referenced.
24406 * lib-xref.adb (Generate_Reference): A deferred constant completion,
24407 record representation clause or record type discriminant does not
24408 produce a reference to its corresponding entity. Warnings are now
24409 properly emitted when deferred constants and record types are not
24412 2004-05-27 Geert Bosch <bosch@gnat.com>
24414 * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
24415 Fixes ACATS Annex G tests.
24417 2004-05-27 Robert Dewar <dewar@gnat.com>
24419 * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
24422 2004-05-27 Arnaud Charlet <charlet@act-europe.fr>
24424 * s-interr.adb (Server_Task): Take into account case of early return
24425 from sigwait under e.g. linux.
24427 2004-05-27 Sergey Rybin <rybin@act-europe.fr>
24429 * gnat_ugn.texi: Add description for the new gnatpp options:
24430 -rnb - replace the original source without creating its backup copy
24431 -c0 - do not format comments
24433 2004-05-24 Geert Bosch <bosch@gnat.com>
24435 * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
24436 with 192 bits of precision, sufficient to reduce a double-extended
24437 arguments X with a maximum relative error of T'Machine_Epsilon, for X
24438 in -2.0**32 .. 2.0**32.
24439 (Cos, Sin): Always reduce arguments of 1/4 Pi or larger, to prevent
24440 reduction by the processor, which only uses a 68-bit approximation of
24442 (Tan): Always reduce arguments and compute function either using
24443 the processor's fptan instruction, or by dividing sin and cos as needed.
24445 2004-05-24 Doug Rupp <rupp@gnat.com>
24447 * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
24448 gcc error on 32/64 bit VMS.
24450 2004-05-24 Olivier Hainque <hainque@act-europe.fr>
24452 * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
24453 since this is what we get for stack overflows although not documented
24455 Document the issues which may require adjustments to our signal
24458 2004-05-24 Ed Schonberg <schonberg@gnat.com>
24460 * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
24461 enclosing dynamic scope if the instantiation is within a generic unit.
24463 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
24465 * exp_dbug.ads: Fix typo.
24467 * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
24468 Rename it to its proper name: system-linux-ia64.ads
24469 (stamp-gnatlib1): Remove extra target specific run time files when
24470 setting up the rts directory.
24472 2004-05-24 Javier Miranda <miranda@gnat.com>
24474 * einfo.ads, einfo.adb (Limited_Views): Removed.
24475 (Limited_View): New attribute that replaces the previous one. It is
24476 now a bona fide package with the limited-view list through the
24477 first_entity and first_private attributes.
24479 * sem_ch10.adb (Install_Private_With_Clauses): Give support to
24480 limited-private-with clause.
24481 (Install_Limited_Withed_Unit): Install the private declarations of a
24482 limited-private-withed package. Update the installation of the shadow
24483 entities according to the new structure (see Build_Limited_Views)
24484 (Build_Limited_Views): Replace the previous implementation of the
24485 limited view by a package entity that references the first shadow
24486 entity plus the first shadow private entity (required for limited-
24487 private-with clause)
24488 (New_Internal_Shadow_Entity): Code cleanup.
24489 (Remove_Limited_With_Clause): Update the implementation to undo the
24490 new work carried out by Build_Limited_Views.
24491 (Build_Chain): Complete documentation.
24492 Replace Ada0Y by Ada 0Y in comments
24495 * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
24496 types the level of accessibility depends on the enclosing type
24499 * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
24500 entities. Complete documentation of previous change.
24502 2004-05-24 Robert Dewar <dewar@gnat.com>
24504 * namet.adb: Minor reformatting
24505 Avoid use of name I (replace by J)
24506 Minor code restructuring
24508 * sem_ch6.adb: Minor reformatting
24510 * lib-writ.adb: Do not set restriction as active if this is a
24511 Restriction_Warning case.
24513 * sem_prag.adb: Reset restriction warning flag if real pragma
24514 restriction encountered.
24516 * s-htable.adb: Minor reformatting
24517 Change rotate count to 3 in Hash (improves hash for small strings)
24519 * 5qsystem.ads: Add comments for type Address (no literals allowed).
24521 * gnat_ugn.texi: Add new section of documentation "Code Generation
24522 Control", which describes the use of -m switches.
24524 2004-05-24 Eric Botcazou <ebotcazou@act-europe.fr>
24526 trans.c (tree_transform) <N_Identifier>: Do the dereference directly
24527 through the DECL_INITIAL for renamed variables.
24529 2004-05-24 Arnaud Charlet <charlet@act-europe.fr>
24531 * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
24533 2004-05-19 Joel Brobecker <brobecker@gnat.com>
24535 * exp_dbug.ads: Correct comments concerning handling of overloading,
24536 since we no longer use $ anymore.
24538 2004-05-19 Sergey Rybin <rybin@act-europe.fr>
24540 * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
24541 ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
24542 with illegal subunits.
24544 2004-05-19 Ed Schonberg <schonberg@gnat.com>
24546 * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
24547 body with front-end inlining enabled, check whether an inline pragma
24548 appears immediately after the body and applies to it.
24550 * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
24551 enabled and the pragma appears after the body of the subprogram.
24553 2004-05-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24555 Part of function-at-a-time conversion
24557 * misc.c (adjust_decl_rtl): Deleted.
24558 (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
24561 * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
24562 (add_decl_stmt, add_stmt, block_has_vars): New functions.
24563 (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
24565 * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
24566 when making a decl.
24567 (gnat_to_gnu_entity): Likewise.
24568 Use add_stmt to update setjmp buffer.
24569 Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
24571 No longer call adjust_decl_rtl.
24572 (DECL_INIT_BY_ASSIGN_P): New macro.
24573 (DECL_STMT_VAR): Likewise.
24575 * trans.c (gigi): Call start_block_stmt to make the outermost
24577 (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
24578 Call start_block_stmt and end_block_stmt temporarily.
24579 Use gnat_expand_stmt instead of expand_expr_stmt.
24580 (add_decl_stmt): New function.
24581 (tree_transform): Call it.
24582 (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
24583 (end_block_stmt): Set type and NULL_STMT.
24584 (gnat_expand_stmt): Make recursize call instead of calling
24586 (gnat_expand_stmt, case DECL_STMT): New case.
24587 (set_lineno_from_sloc): Do nothing if global.
24588 (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
24589 (start_block_stmt, add_stmt, end_block_stmt): New functions.
24590 (build_block_stmt): Call them.
24591 (gnat_to_code): Don't expand NULL_STMT.
24592 (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
24594 (tree_transform): Likewise.
24595 (tree_transform, case N_Null_Statement): Return NULL_STMT.
24596 (gnat_expand_stmt, case NULL_STMT): New case.
24597 (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
24600 * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
24603 * utils.c (create_var_decl): Do not call expand_decl or
24605 Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
24606 Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
24608 (struct e_stack): Add chain_next to GTY.
24609 (struct binding_level): Deleted.
24610 (struct ada_binding_level): New struct.
24611 (free_block_chain): New.
24612 (global_binding_level, clear_binding_level): Deleted.
24613 (global_bindings_p): Rework to see if no chain.
24614 (kept_level_p, set_block): Deleted.
24615 (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
24616 new data structure and work directly on BLOCK node.
24617 (gnat_poplevel): Similarly.
24618 (get_decls): Look at BLOCK_VARS.
24619 (insert_block): Work directly on BLOCK node.
24620 (block_has_var): New function.
24621 (pushdecl): Rework for new binding structures.
24622 (gnat_init_decl_processing): Rename and rework calls to pushlevel and
24624 (build_subprog_body): Likewise.
24625 (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
24627 * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
24629 * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
24630 (DECL_STMT_VAR): Likewise.
24632 2004-05-17 Robert Dewar <dewar@gnat.com>
24634 * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
24637 * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
24638 of restriction synonyums by using
24639 Restrict.Process_Restriction_Synonyms.
24641 * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
24643 * s-restri.ads (Tasking_Allowed): Correct missing comment
24645 * s-rident.ads: Add entries for restriction synonyms
24647 * ali.adb: Fix some problems with badly formatted ALI files that can
24648 result in infinite loops.
24650 * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
24651 s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
24652 s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
24653 s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
24654 s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
24655 s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
24656 s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
24657 s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
24658 s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
24659 a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
24660 exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
24661 s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
24662 s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
24663 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
24664 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24665 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24666 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
24667 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
24668 s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
24669 s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
24670 to Task_Id (minor cleanup).
24672 2004-05-17 Vincent Celier <celier@gnat.com>
24674 * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
24675 directory separator.
24677 * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
24678 project being extended, if Languages is not declared in extending
24681 2004-05-17 Javier Miranda <miranda@gnat.com>
24683 * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
24684 limited view of a visible sibling.
24686 2004-05-14 Robert Dewar <dewar@gnat.com>
24688 * gnat_ugn.texi: Minor change to -gnatS documentation
24690 * sprint.adb: Remove some instances of Assert (False) and for this
24691 purpose replace them by output of a ??? string.
24693 * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
24696 * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
24697 flag processing. This was suppressing required dependencies in
24698 No_Run_Time mode and is not needed since the binder does not generate
24699 references for things in libgnat anyway.
24701 * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
24704 2004-05-14 Thomas Quinot <quinot@act-europe.fr>
24706 * gnat_ugn.texi: Document AIX-specific issue with initialization of
24709 * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
24710 action for the case of an actual parameter in an init proc call.
24712 2004-05-14 Ed Schonberg <schonberg@gnat.com>
24714 * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
24715 subtype, check visible entities in base type.
24717 * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
24718 actions if the object is a renaming.
24720 * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
24721 Check_Formal_Package_Instance, to determine more precisely when the
24722 formal and the actual denote the same entity.
24724 2004-05-14 Javier Miranda <miranda@gnat.com>
24726 * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
24728 * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
24729 corresponding to a private_with must be removed from visibility; it
24730 will be made visible later, just before we analyze the private part of
24732 (Check_Private_Child_Unit): Allow private_with clauses in public
24734 (Install_Siblings): Make visible the private entities of private-withed
24736 (Install_Withed_Unit): Do not install the private withed unit if we
24737 are compiling a package declaration and the Private_With_OK flag was
24738 not set by the caller. These declarations will be installed later,
24739 just before we analyze the private part of the package.
24741 * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
24742 during the evaluation of the expression that initializes the object,
24743 decorate it with the expected type to avoid cascade errors.
24746 * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
24747 subprogram we have to install the private_with clauses after its
24748 specification has been analyzed (as documented in AI-262.TXT).
24750 * sem_ch8.adb (Has_Private_With): New function. Determines if the
24751 current compilation unit has a private with on a given entity.
24752 (Find_Direct_Name): Detect the Beaujolais problem described in
24755 * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
24756 provides the functionality of the function Is_Ancestor that was
24757 previously available in sem_ch10. It has been renamed to avoid
24760 * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
24762 2004-05-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
24764 * utils.c (build_vms_descriptor): Use SImode pointers.
24766 2004-05-14 Vasiliy Fofanov <fofanov@act-europe.fr>
24768 * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
24770 2004-05-14 GNAT Script <nobody@gnat.com>
24772 * Make-lang.in: Makefile automatically updated
24774 2004-05-14 Arnaud Charlet <charlet@act-europe.fr>
24776 Renaming of target specific files for clarity
24778 * Makefile.in: Rename GNAT target specific files.
24780 * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
24781 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
24782 3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
24783 3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
24784 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
24785 3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
24786 42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
24787 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
24788 4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
24789 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
24790 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
24791 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
24792 51osinte.adb, 51osinte.ads, 51system.ads,
24793 52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
24794 55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
24795 56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
24796 56tpopsp.adb, 57system.ads, 58system.ads,
24797 5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
24798 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
24799 5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
24800 5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
24801 5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
24802 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
24803 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
24804 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
24805 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
24806 5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
24807 5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
24808 5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
24809 5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
24810 5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
24811 5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
24812 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
24813 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
24814 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
24815 5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
24816 5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
24817 5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
24818 5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
24819 5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
24820 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
24821 5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
24822 5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
24823 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
24824 5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
24825 5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
24826 5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
24827 5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
24828 5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
24829 5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
24830 5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
24831 5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
24832 5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
24833 7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
24834 7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
24835 7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
24836 7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
24838 * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
24839 a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
24840 a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
24841 a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
24842 a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
24843 a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
24844 a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
24845 a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
24846 a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
24847 a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
24848 g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
24849 g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
24850 g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
24851 g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
24852 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
24853 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
24854 g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
24855 g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
24856 interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
24857 mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
24858 mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
24859 mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
24860 s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
24861 s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
24862 s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
24863 s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
24864 s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
24865 s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
24866 s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
24867 s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
24868 s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
24869 s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
24870 s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
24871 s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
24872 s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
24873 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
24874 s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
24875 s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
24876 s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
24877 s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
24878 s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
24879 s-osinte-vms.ads, s-osinte-vxworks.adb,
24880 s-osinte-vxworks.ads, s-osprim-mingw.adb,
24881 s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
24882 s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
24883 s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
24884 s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
24885 s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
24886 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
24887 s-stchop-vxworks.adb, s-taprop-dummy.adb,
24888 s-taprop-hpux-dce.adb, s-taprop-irix.adb,
24889 s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
24890 s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
24891 s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
24892 s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
24893 s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
24894 s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
24895 s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
24896 s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
24897 s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
24898 s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
24899 s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
24900 s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
24901 s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
24902 s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
24903 s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
24904 s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
24905 s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
24906 symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
24907 system-hpux.ads, system-interix.ads, system-irix-n32.ads,
24908 system-irix-o32.ads, system-linux-x86_64.ads,
24909 system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
24910 system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
24911 system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
24912 system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
24913 system-vxworks-alpha.ads, system-vxworks-m68k.ads,
24914 system-vxworks-mips.ads, system-vxworks-ppc.ads,
24915 system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
24918 2004-05-13 Zack Weinberg <zack@codesourcery.com>
24920 * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
24922 2004-05-13 Diego Novillo <dnovillo@redhat.com>
24924 Merge from tree-ssa-20020619-branch.
24926 * config-lang.in (boot_language, build_by_default): Set
24928 * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
24929 (max_size): Add static chain op for call_expr.
24931 2004-05-12 Richard Sandiford <rsandifo@redhat.com>
24934 * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
24936 2004-05-11 Roger Sayle <roger@eyesopen.com>
24938 * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
24941 2004-05-10 Doug Rupp <rupp@gnat.com>
24943 * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
24946 * s-auxdec.ads: Add Short_Address subtype (moved here from System).
24948 * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
24950 * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
24951 Fixes undefined symbols in IA64 gnatlib.
24953 * 5vinmaop.adb: Reference s-auxdec for Short_Address.
24955 * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
24956 Short_Address). This will be moved to system.auxdec.
24958 2004-05-10 Thomas Quinot <quinot@act-europe.fr>
24960 * sem_util.adb: Replace test for presence of a node that is always
24961 present with a call to Discard_Node.
24963 * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
24964 Analyze on the library unit node after generation of distribution stub
24965 constructs. The call was a no-op because Unit_Node has already been
24966 Analyzed, and the tree fragments for the distribution stubs are
24967 analyzed as they are inserted in Exp_Dist.
24968 Update comment regarding to distribution stubs to reflect that we
24969 do not generate stub in separate files anymore.
24971 * einfo.ads: Clarify the fact that a tagged private type has the
24972 E_Record_Type_With_Private Ekind.
24974 * erroutc.adb: Minor reformatting
24976 * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
24977 values if line length is increased using -gnatyM (noticed during code
24980 * eval_fat.adb: Minor reformatting
24981 Put spaces around exponentiation operator
24983 2004-05-10 Ed Schonberg <schonberg@gnat.com>
24986 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
24987 has been rewritten as an explicit dereference, retrieve type of
24988 original node to check for possibly unconstrained record type.
24990 2004-05-10 Ed Schonberg <schonberg@gnat.com>
24992 * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
24993 overriding, use the operation of the parent unconditionally.
24995 * sem_ch4.adb (Remove_Address_Interpretations): Remove address
24996 operation when either operand is a literal, to avoid further
24999 * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
25000 overridden by a previous explicit declaration, mark the previous entity
25003 * sem_disp.adb (Check_Dispatching_Operation): New predicate
25004 Is_Visibly_Controlled, to determine whether a declaration of a
25005 primitive control operation for a derived type overrides an inherited
25006 one. Add warning if the explicit declaration does not override.
25008 2004-05-10 Vincent Celier <celier@gnat.com>
25010 * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
25011 some cases when the sources are no longer present.
25013 * make.adb (Collect_Arguments): Fail if an external source, not part
25014 of any project need to be compiled, when switch -x has not been
25017 * makeusg.adb: Document new switch -x
25019 * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
25020 defaulted to False.
25022 * switch-m.adb (Scan_Make_Switches): New switch -x
25024 * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
25025 gnatmake switch -x.
25027 * gnat_ugn.texi: Document new gnatmake switch -x
25029 2004-05-10 Eric Botcazou <ebotcazou@act-europe.fr>
25031 * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
25033 * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
25034 (process_attributes): Likewise.
25036 2004-05-10 Joel Brobecker <brobecker@gnat.com>
25038 * s-inmaop.ads: Fix spelling mistake in one of the comments.
25040 2004-05-10 Robert Dewar <dewar@gnat.com>
25042 * gnat_ugn.texi: Document that for config pragma files, the maximum
25043 line length is always 32767.
25045 * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
25046 literals is now allowed.
25048 * gnat-style.texi: Remove statement about splitting long lines before
25049 an operator rather than after, since we do not follow this rule at all.
25050 Clarify rule (really lack of rule) for spaces around exponentiation
25052 * sem_elim.adb: Allow concatenation of string literals as well as a
25053 single string literal for pragma arguments.
25055 * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
25057 * a-textio.adb (Terminate_Line): Do not add line feed if nothing
25058 written for append case.
25060 * frontend.adb: Changes to avoid checking max line length in config
25063 * g-os_lib.ads: Minor reformatting
25065 * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
25066 wrong in any case. Instead use standard value. Noticed during code
25069 * opt.ads (Max_Line_Length): New field, used to implement removal of
25070 limitation on length of lines when scanning config pragma files.
25072 * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
25073 makeutl.ads, makeutl.adb: Minor reformatting
25075 * scn.adb: Do not check line length while scanning config pragma files
25076 Do not check line length while scanning out license information
25078 * scng.adb: Changes to avoid line length checks while parsing config
25081 2004-05-10 GNAT Script <nobody@gnat.com>
25083 * Make-lang.in: Makefile automatically updated
25085 2004-05-05 Arnaud Charlet <charlet@act-europe.fr>
25087 * osint.adb (Find_Program_Name): Fix handling of VMS version
25090 2004-05-05 Emmanuel Briot <briot@act-europe.fr>
25092 * g-os_lib.ads (Invalid_Time): New constant
25094 * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
25095 return OS_Time instead of time_t to match what is imported by Ada.
25096 Now return -1 if the file doesn't exist, instead of a random value
25098 2004-05-05 Robert Dewar <dewar@gnat.com>
25100 * usage.adb: Add line for -gnatR?s switch
25102 * sem_ch13.adb, exp_ch2.adb: Minor reformatting
25104 * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
25105 and for Match (Data_First, Data_last)
25107 * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
25108 written when we are dealing with multi-unit files.
25110 2004-05-05 Jerome Guitton <guitton@act-europe.fr>
25112 * Makefile.in: Remove unused targets and variables.
25114 2004-05-05 Vincent Celier <celier@gnat.com>
25116 * switch-m.adb: New gnatmake switch -eI
25118 * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
25119 of new gnatmake switch -eInnn.
25121 * makegpr.adb: Take into account new parameters Index and Src_Index in
25124 * clean.adb: Implement support for multi-unit sources, including new
25127 * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
25130 * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
25131 (Extract_From_Q): New out parameter Index
25132 (Mark, Is_Marked): Subprograms moved to Makeutl
25133 (Switches_Of): New parameter Source_Index
25134 (Add_Switch): New parameter Index
25135 (Check): New parameter Source_Index
25136 (Collect_Arguments): New parameter Source_Index
25137 (Collect_Arguments_And_Compile): New parameter Source_Index
25138 (Compile): New parameter Source_Index
25139 Put subprograms in alphabetical order
25140 Add support for multi-source sources, including in project files.
25142 * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
25143 (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
25146 * makeusg.adb: New gnatmake switch -eInnn
25148 * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
25151 * opt.ads (Main_Index): New variable, defaulted to 0.
25153 * osint.ads, osinte.adb (Add_File): New parameter Index
25154 (Current_Source_Index): New function
25156 * prj.adb: Take into account new components Index and Src_Index
25158 * prj.ads (String_Element): New component Index
25159 (Variable_Value): New component Index
25160 (Array_Element): New component Src_Index
25162 * prj-attr.adb: Indicate that optional index may be specified for
25163 attributes Main, Executable, Spec, Body and some of Switches.
25165 * prj-attr.ads (Attribute_Kind): New values for optional indexes
25166 (Attribute_Record): New component Optional_Index
25168 * prj-com.ads (File_Name_Data): New component Index
25170 * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
25172 * prj-env.adb (Put): Output optional index
25174 * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
25175 attributes Spec and Body.
25177 * prj-nmsc.adb: Process optional indexes
25179 * prj-pp.adb: Ouput "at" for optional indexes
25181 * prj-proc.adb: Take into account optional indexes
25183 * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
25184 Optional_Index. For string literal,
25185 process optional index when Optional_Index is True.
25186 (Parse_Expresion): New Boolean parameter Optional_Index
25188 * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
25189 (Set_Source_Index_Of): New procedure
25191 * prj-util.adb (Executable_Of, Value_Of): Take into account optional
25194 * prj-util.ads (Executable_Of): New parameter Index
25195 (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
25196 New parameter Src_Index, defaulted to 0.
25198 2004-05-05 Ed Schonberg <schonberg@gnat.com>
25201 * sem_ch3.adb (Access_Definition): If this is an access parameter
25202 whose designated type is imported through a limited_with clause, do
25203 not add the enclosing subprogram to the list of private dependents of
25206 2004-05-05 Ed Schonberg <schonberg@gnat.com>
25209 * sem_ch6.adb (Base_Types_Match): True if one type is imported through
25210 a limited_with clause, and the other is its non-limited view.
25212 2004-05-05 Thomas Quinot <quinot@act-europe.fr>
25214 * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
25216 * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
25217 exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
25218 Stand.Boolean_Literals to produce references to entities
25219 Standard_False and Standard_True from compile-time computed boolean
25222 * stand.ads (Boolean_Literals): New variable, provides the entity
25223 values for False and True, for use by the expander.
25225 2004-05-05 Doug Rupp <rupp@gnat.com>
25227 * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
25228 5vinmaop.adb: Unchecked convert Short_Address vice Address
25230 * adaint.c, raise.c: Caste CRTL function return value
25231 to avoid gcc error on 32/64 bit IVMS.
25233 * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
25236 * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
25238 * 5qsystem.ads (Address): Declare as Long_Integer
25239 (Short_Address): Declare as 32 bit subtype of Address
25240 Declare abstract address operations to avoid gratuitous ambiguities.
25242 2004-05-05 Jose Ruiz <ruiz@act-europe.fr>
25244 * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
25245 instead of the old Boolean_Entry_Barriers.
25246 Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
25248 2004-05-05 GNAT Script <nobody@gnat.com>
25250 * Make-lang.in: Makefile automatically updated
25252 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
25254 * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
25256 2004-05-03 Olivier Hainque <hainque@act-europe.fr>
25259 * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
25260 alone. Replacing object references by literals is inappropriate in a
25261 so low level context.
25263 2004-05-03 Arnaud Charlet <charlet@act-europe.fr>
25265 * a-exexpr.adb: Add comments
25267 2004-05-03 Joel Brobecker <brobecker@gnat.com>
25269 * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
25270 declare the Ancestor_Tags array in Type_Specific_Data with a small size
25271 without risking a bounds check error when accessing one of its
25273 (Type_Specific_Data): Define Ancestor_Tags as a small array.
25274 This prevents us from hitting a limitation during the debug info
25275 generation when using stabs.
25277 * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
25279 This prevents us from hitting a limitation during the debug info
25280 generation when using stabs.
25282 2004-05-03 Eric Botcazou <ebotcazou@act-europe.fr>
25284 lang-specs.h: Remove -gnatz* from specs.
25286 2004-05-03 Vincent Celier <celier@gnat.com>
25288 * gprmake.adb, makegpr.ads, makegpr.adb: New files.
25290 * Make-lang.in, Makefile.in: Add gprmake
25292 2004-05-03 Thomas Quinot <quinot@act-europe.fr>
25294 * sem_aggr.adb: Fix typo in comment.
25296 2004-05-03 Robert Dewar <dewar@gnat.com>
25298 * make.adb: Minor reformatting
25300 * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
25302 * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
25303 so that it works when address is not a private type.
25305 * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
25306 properly with rewritten unchecked conversions. This prevents
25307 order-of-elaboration issues that can otherwise arise.
25308 (Minimum_Size): Don't check size of access types under VMS
25310 * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
25311 interpretations of integer literals as type System.Address.
25313 * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
25314 (Is_Descendent_Of): New function
25316 2004-05-03 Jose Ruiz <ruiz@act-europe.fr>
25318 * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25319 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
25320 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
25322 * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
25323 of the old Max_Entry_Queue_Depth.
25325 * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
25326 Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
25327 No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
25329 * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
25330 New entry for proper handling of Max_Entry_Queue_Depth.
25331 New entry for proper handling of No_Dynamic_Interrupts.
25333 * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
25334 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25335 Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
25336 the GNAT specific restriction Max_Entry_Queue_Depth.
25337 Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
25338 the GNAT specific restriction No_Dynamic_Interrupts.
25340 * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
25341 instead of the old Boolean_Entry_Barriers.
25342 Use the new restriction No_Dynamic_Attachment instead of the old
25343 No_Dynamic_Interrupts.
25345 * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
25346 supersedes the GNAT specific restriction Boolean_Entry_Barriers.
25348 * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
25349 of the old Max_Entry_Queue_Depth.
25351 2004-05-03 GNAT Script <nobody@gnat.com>
25353 * Make-lang.in: Makefile automatically updated
25355 2004-04-29 Ed Schonberg <schonberg@gnat.com>
25357 * checks.adb (Enable_Range_Check): If the prefix of an index component
25358 is an access to an unconstrained array, perform check unconditionally.
25360 2004-04-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25362 * decl.c (gnat_to_gnu_field): Also call make_packable_type if
25365 2004-04-29 Olivier Hainque <hainque@act-europe.fr>
25367 * init.c (__gnat_install_handler, __gnat_error_handler): Remove
25368 alternate stack setting. There was no support for the tasking cases
25369 and the changes eventually caused a number of side-effect failures in
25370 the non-tasking case too.
25372 2004-04-29 Eric Botcazou <ebotcazou@act-europe.fr>
25374 lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
25377 2004-04-29 Vincent Celier <celier@gnat.com>
25379 * make.adb (Gnatmake): Increase max size of argument array for
25380 gnatbind for the potential addition of -F.
25381 If there are Stand-Alone Library projects, invoke gnatbind with -F to
25382 be sure that elaboration flags will be checked.
25384 * switch-c.adb: Correct call to Scan_Pos for -gnateI
25386 2004-04-29 Thomas Quinot <quinot@act-europe.fr>
25388 * sem_warn.adb (Check_References): Move '<access-variable> may be
25389 null' warning out of under Warn_On_No_Value_Assigned.
25391 2004-04-29 Ed Falis <falis@gnat.com>
25393 * gnat_ugn.texi: Fixed texi error
25395 2004-04-29 Robert Dewar <dewar@gnat.com>
25397 * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
25398 abstract operations if they come from predefined files.
25400 * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
25403 * s-addope.adb: Correct obvious error in mod function
25405 2004-04-28 Andrew W. Reynolds <awreynolds@mac.com>
25407 * Makefile.in: Add target pairs for powerpc darwin*
25410 * a-intnam-darwin.ads, s-osinte-darwin.adb,
25411 s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
25413 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
25415 * Makefile.in: Add target macro definitions for s390*-linux*.
25416 * system-linux-s390.ads: New file.
25417 * system-linux-s390x.ads: New file.
25419 2004-04-28 Joseph S. Myers <jsm@polyomino.org.uk>
25421 * gnat_ugn.texi: Correct argument to @setfilename.
25423 2004-04-28 Ulrich Weigand <uweigand@de.ibm.com>
25425 * a-exexpr.adb (Unwind_Word): New data type.
25426 (Unwind_Exception): Use it as type of Private1 and Private2.
25428 * raise.c (db_action_for): Fix debug printf.
25430 2004-04-27 Ed Schonberg <schonberg@gnat.com>
25432 * a-wtmoio.ads: Formal type must be a modular type, not a signed
25435 2004-04-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25437 * decl.c (gnat_to_gnu_entity, case object): Call
25438 __builtin_update_setjmp_buf.
25440 * gigi.h (update_setjmp_buf): Deleted.
25441 (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
25443 * misc.c: (update_setjmp_buf): Deleted.
25445 * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
25446 around block of RTL.
25448 * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
25450 2004-04-26 Thomas Quinot <quinot@act-europe.fr>
25452 * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
25453 subprogram for which no pragma All_Calls_Remote applies, store the
25454 address of the real subprogram in the underlying record type, so local
25455 dereferences do not go through the PCS.
25457 2004-04-26 Robert Dewar <dewar@gnat.com>
25459 * i-c.ads: Add some type qualifications to avoid ambiguities when
25460 compiling with s-auxdec.ads and a non-private address type.
25462 2004-04-26 Arnaud Charlet <charlet@act-europe.fr>
25464 * Makefile.rtl: Fix error in previous check-in:
25465 Add s-addope.o to non tasking object list (rather than tasking object
25468 2004-04-26 Javier Miranda <miranda@gnat.com>
25470 * sem_aggr.adb: Fix typo in comments
25471 (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
25472 Required to check the null-exclusion attribute.
25474 * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
25475 case of anonymous access types in record and array components. For a
25476 component definition the level is the same of the enclosing composite
25479 * sem_ch3.adb (Analyze_Component_Declaration): In case of components
25480 that are anonymous access types the level of accessibility depends on
25481 the enclosing type declaration. In order to have this information, set
25482 the scope of the anonymous access type to the enclosing record type
25484 (Array_Type_Declaration): In case of components that are anonymous
25485 access types the level of accessibility depends on the enclosing type
25486 declaration. In order to have this information, set the scope of the
25487 anonymous access type to the enclosing array type declaration.
25489 * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
25492 * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
25493 renaming of anonymous access-to-constant types allowed if and only if
25494 the renamed object is access-to-constant.
25496 * sem_util.adb (Type_Access_Level): In case of anonymous access types
25497 that are component_definition or discriminants of a nonlimited type,
25498 the level is the same as that of the enclosing component type.
25500 2004-04-26 Sergey Rybin <rybin@act-europe.fr>
25502 * sem_elim.adb: Some minor code reorganization from code reading. Fix
25503 misprint in the function name (File_Name_Match).
25505 2004-04-23 Laurent GUERBY <laurent@guerby.net>
25507 * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
25510 2004-04-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
25512 * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
25514 2004-04-23 Emmanuel Briot <briot@act-europe.fr>
25516 * adaint.c (__gnat_try_lock): No longer requires that the parent
25517 directory be writable, the directory itself is enough.
25518 (gnat_is_absolute_path): Change profile, so that the call from
25519 GNAT.OS_Lib can be made more efficient.
25521 * adaint.h (gnat_is_absolute_path): Change profile, so that the call
25522 from GNAT.OS_Lib can be made more efficient.
25524 * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
25525 one copy of the file name. Found by code reading.
25527 2004-04-23 Vincent Celier <celier@gnat.com>
25529 * gnat_ugn.texi: Add documentation for gnatmake switch -eL
25530 Correct documentation on gnatmake switches transmitted to the compiler
25532 * ali.ads: Minor comment fix
25534 2004-04-23 Javier Miranda <miranda@gnat.com>
25536 * sem_ch6.adb: (Confirming Types): Code cleanup
25538 * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
25539 subprogram types: E_Anonymous_Access_Subprogram_Type and
25540 E_Anonymous_Access_Protected_Subprogram_Type.
25542 2004-04-23 Thomas Quinot <quinot@act-europe.fr>
25544 * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25545 whether a pragma All_Calls_Remote applies to the subprogram on which
25547 No functional change is introduced by this revision; the new parameter
25548 will be used to allow calls to local RCI subprograms to be optimized
25549 to not use the PCS in the case where no pragma All_Calls_Remote applies,
25550 as is already done in the PolyORB implementation of the DSA.
25552 * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
25553 whether a pragma All_Calls_Remote applies to the subprogram on which
25555 No functional change is introduced by this revision; the new parameter
25556 will be used to allow calls to local RCI subprograms to be optimized
25557 to not use the PCS in the case where no pragma All_Calls_Remote applies,
25558 as is already done in the PolyORB implementation of the DSA.
25560 2004-04-23 Robert Dewar <dewar@gnat.com>
25562 * Makefile.rtl: Add entry for s-addope.o in run time library list
25563 * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
25564 * s-addope.ads, s-addope.adb: New files.
25566 * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
25567 s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
25568 s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
25569 System.Address to be non-private and signed.
25571 * sem_elim.adb: Minor reformatting (fairly extensive)
25572 Some minor code reorganization from code reading
25573 Add a couple of ??? comments
25575 2004-04-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25577 * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
25578 (tree_transform, case N_If_Statement): Remove non-determinism.
25580 * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
25582 2004-04-23 Sergey Rybin <rybin@act-europe.fr>
25584 * gnat_rm.texi: Small fixes in the changes made in the 'pragma
25585 Eliminate' section.
25587 * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
25588 no longer used as a parameter name for Eliminate pragma).
25590 2004-04-22 Laurent GUERBY <laurent@guerby.net>
25592 PR optimization/14984
25593 PR optimization/14985
25594 * trans.c (gigi): Fix non determinism leading to bootstrap
25595 comparison failures.
25597 2004-04-21 Pascal Obry <obry@gnat.com>
25599 * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
25600 passed to spawnvp() to properly handle program pathname with spaces on
25603 2004-04-21 Emmanuel Briot <briot@act-europe.fr>
25605 * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
25606 (Allocate, Deallocate, Free_Physically): Make sure the tasks are
25607 unlocked in case of exceptions.
25609 2004-04-21 Joel Brobecker <brobecker@gnat.com>
25611 * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
25612 This function does not exist anymore.
25614 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
25616 * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
25618 * link.c: Move variables to the __gnat name space.
25620 * Makefile.in: list link.o explicitly when needed.
25622 * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
25624 2004-04-21 Javier Miranda <miranda@gnat.com>
25626 * einfo.adb (Original_Access_Type): New subprogram
25627 (Set_Original_Access_Type): New subprogram
25628 (Write_Field21_Name): Write the name of the new field
25630 * einfo.ads (Original_Access_Type): New field present in access to
25632 Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
25633 E_Anonymous_Access_Protected_Subprogram_Type.
25635 * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
25638 * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
25639 to anonymous access to subprogram types.
25641 * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
25642 to subprogram types.
25644 * sem_ch3.adb (Access_Definition): Complete decoration of entities
25645 corresponding to anonymous access to subprogram types.
25646 (Analyze_Component_Declaration): Add new actual to the call to
25647 subprogram replace_anonymous_access_to_protected_subprogram.
25648 (Array_Type_Declaration): Add new actual to the call to subprogram
25649 replace_anonymous_access_to_protected_subprogram.
25650 (Process_Discriminants): Add new actual to the call to subprogram
25651 replace_anonymous_access_to_protected_subprogram.
25652 (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
25654 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25657 * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
25658 access to subprogram types.
25660 * sem_util.adb (Has_Declarations): Addition of package_specification
25663 2004-04-21 Ed Schonberg <schonberg@gnat.com>
25665 * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
25666 inlined flags to renamed entity only if in current unit.
25668 2004-04-21 Thomas Quinot <quinot@act-europe.fr>
25670 * s-parint.ads: Add DSA implementation marker.
25672 * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
25673 value of System.Partition_Interface.DSA_Implementation to determine
25674 what version of the distributed systems annex is available (no
25675 implementation, GLADE, or PolyORB).
25677 2004-04-21 Joel Brobecker <brobecker@gnat.com>
25679 * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
25681 2004-04-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25683 * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
25684 with new type if alias sets differ.
25685 Fixes ACATS c41103b.
25687 2004-04-21 Vincent Celier <celier@gnat.com>
25689 * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
25690 Add array Lang_Args for the language specific compiling argument
25693 * gnat_ugn.texi: Explain in more details when a library is rebuilt.
25695 2004-04-21 Sergey Rybin <rybin@act-europe.fr>
25697 * gnat_rm.texi: Update the descripton of the Eliminate pragma
25698 according to the recent changes in the format of the parameters of the
25699 pragma (replacing Homonym_Number with Source_Location).
25701 2004-04-19 Arnaud Charlet <charlet@act-europe.fr>
25703 * 5isystem.ads: Removed, unused.
25705 * gnat_rm.texi: Redo 1.13 change.
25707 2004-04-19 Robert Dewar <dewar@gnat.com>
25709 * s-stoele.ads: Clean up definition of Storage_Offset (the new
25710 definition is cleaner, avoids the kludge of explicit Standard operator
25711 references, and also is consistent with a visible System.Address with
25712 no visible operations.
25714 * s-geveop.adb: Add declarations to avoid assumption of visible
25715 operations on type System.Address (since these might not be available
25716 if Address is a non-private type for which the operations
25717 are made abstract).
25719 * sem_eval.adb: Minor reformatting
25721 * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
25722 s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
25723 reformatting (new function spec format).
25725 * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
25726 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
25727 s-caun64.adb: Add declarations to avoid assumption of visible
25728 operations on type System.Address (since these might not be available
25729 if Address is a non-private type for which the operations are made
25732 * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
25734 * exp_intr.adb: Minor comment update
25736 * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
25738 * 5omastop.adb: Add declarations to avoid assumption of visible
25739 operations on type System.Address (since these might not be available
25740 if Address is a non-private type for which the operations
25741 are made abstract).
25743 2004-04-19 Vincent Celier <celier@gnat.com>
25745 * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
25747 * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
25750 * prj-proc.adb (Process): New Boolean parameter Process_Languages,
25752 Call Check with Process_Languages.
25753 (Check): New Boolean parameter Process_Languages. Call Recursive_Check
25754 with Process_Languages.
25755 (Recursive_Check): New Boolean parameter Process_Languages. Call
25756 Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
25759 * prj-proc.ads (Process): New Boolean parameter Process_Languages,
25761 * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
25762 parameter Ada_Main, defaulted to True.
25763 Check for Ada specific characteristics only when Ada_Main is True.
25765 * opt.ads: (Follow_Links): New Boolean flag for gnatmake
25767 * prj.adb: (Project_Empty): Add new Project_Data components.
25769 * prj.ads: New types and tables for non Ada languages.
25770 (Project_Data): New components Languages, Impl_Suffixes,
25771 First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
25772 Include_Path, Include_Data_Set.
25774 * prj-env.ads, prj-env.adb: Minor reformatting
25776 * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
25777 Put subprograms in alphabetical order
25779 * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
25780 defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
25783 * mlib-prj.adb: Back out modification in last version, as they are
25785 (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
25787 * make.adb: (Mains): Moved to package Makeutl
25788 (Linker_Opts): Moved to package Makeutl
25789 (Is_External_Assignment): Moved to package Makeutl
25790 (Test_If_Relative_Path): Moved to package Makeutl
25791 (Gnatmake): Move sorting of linker options to function
25792 Makeutl.Linker_Options_Switches.
25794 * makeutl.ads, makeutl.adb: New files.
25796 * Makefile.in: Add makeutl.o to the object files for gnatmake
25798 * makeusg.adb: Add line for new switch -eL.
25800 * gnatls.adb (Image): New function.
25801 (Output_Unit): If in verbose mode, output the list of restrictions
25802 specified by pragmas Restrictions.
25804 * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
25807 * a-calend.adb (Split): Shift the date by multiple of 56 years, if
25808 needed, to put it in the range 1970 (included) - 2026 (excluded).
25809 (Time_Of): Do not shift Unix_Min_Year (1970).
25810 Shift the date by multiple of 56 years, if needed, to put it in the
25811 range 1970 (included) - 2026 (excluded).
25813 * adaint.h, adaint.c (__gnat_set_executable): New function.
25815 2004-04-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
25817 * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
25818 and pop GC context.
25819 (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
25820 (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
25821 (tree_transform, case N_Procedure_Call_Statement): Build a tree.
25822 (tree_transform, case N_Code_Statement): Likewise.
25823 (gnat_expand_stmt, case LABEL_STMT): Don't look at
25824 LABEL_STMT_FIRST_IN_EH.
25825 (gnat_expand_stmt, case ASM_STMT): New case.
25827 * utils2.c (build_unary_op): Properly set TREE_READONLY of
25828 UNCONSTRAINED_ARRAY_REF.
25830 * utils.c (poplevel): Temporarily push/pop GC context around inline
25831 function expansion.
25833 * decl.c (maybe_variable): Properly set TREE_READONLY of
25834 UNCONSTRAINED_ARRAY_REF.
25835 (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
25837 * ada-tree.def: (ASM_STMT): New.
25839 * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
25840 (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
25841 ASM_STMT_INPUT): New.
25842 (ASM_STMT_CLOBBER): Likewise.
25844 2004-04-19 Thomas Quinot <quinot@act-europe.fr>
25846 * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
25847 general rcheck mechanism to raise Program_Error for E.4(18), instead
25848 of a custom raiser in System.Partition_Interface.
25849 Part of general cleanup work before PolyORB integration.
25851 * snames.ads, snames.adb: Add new runtime library entities and names
25854 * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25856 (Build_Subprogram_Id): New subprogram provided by exp_dist
25857 Code reorganisation in preparation for PolyORB integration.
25859 * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
25861 (Build_Subprogram_Id): New subprogram provided by exp_dist
25863 * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
25864 actual parameter types for call to dereference of an
25865 access-to-subprogram type.
25867 * rtsfind.ads: Add new runtime library entities and names for PolyORB
25870 * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
25871 instead, which has the same behaviour here since we never pass it a
25874 * link.c (run_path_option, Solaris case): Use -Wl, as for other
25877 * Makefile.in: adjust object file lists for gnatlink and gnatmake
25878 to account for new dependency upon Interfaces.C.Strings + link.o
25879 For x86 FreeBSD, use 86numaux.
25881 * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
25882 from Mlib.Tgt to Mlib.
25884 * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
25885 target-independent.
25887 * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
25888 target-specific versions of this subprogram, now implemented as a
25889 target-independent function in Mlib.
25891 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
25892 5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
25893 (Linker_Library_Path_Option): Remove target-specific versions of this
25894 subprogram, now implemented as a target-independent function in Mlib.
25896 * atree.adb: (Allocate_Initialize_Node): New subprogram.
25897 Factors out node table slots allocation.
25898 (Fix_Parents): New subprogram.
25899 Encapsulate the pattern of fixing up parent pointers for syntactic
25900 children of a rewritten node.
25901 (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
25902 (Rewrite): Use New_Copy when creating saved copy of original node.
25903 (Replace): Use Copy_Node to copy nodes.
25905 2004-04-19 Javier Miranda <miranda@gnat.com>
25907 * sprint.adb (Sprint_Node_Actual): Give support to the new
25908 Access_To_Subprogram node available in Access_Definition nodes. In
25909 addition, give support to the AI-231 node fields: null-exclusion,
25910 all-present, constant-present.
25912 * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
25914 * sinfo.ads, sinfo.adb:
25915 New field Access_To_Subprogram_Definition in Access_Definition nodes
25917 * sem_ch6.adb (Process_Formals): Move here the code that creates and
25918 decorates internal subtype declaration corresponding to the
25919 null-excluding formal. This code was previously in Set_Actual_Subtypes.
25920 In addition, carry out some code cleanup on this code. In case of
25921 access to protected subprogram call
25922 Replace_Anonymous_Access_To_Protected_Subprogram.
25923 (Set_Actual_Subtypes): Code cleanup.
25925 * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
25926 Find_Type in case of anonymous access renamings. Add warning in case of
25927 null-excluding attribute used in anonymous access renaming.
25929 * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
25932 * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
25934 (Access_Definition): In case of anonymous access to subprograms call
25935 the corresponding semantic routine to decorate the node.
25936 (Access_Subprogram_Declaration): Addition of some comments indicating
25937 some code that probably should be added here. Detected by comparison
25938 with the access_definition subprogram.
25939 (Analyze_Component_Declaration): In case of access to protected
25940 subprogram call Replace_Anonymous_Access_To_Protected.
25941 (Array_Type_Declaration): In case of access to protected subprogram call
25942 Replace_Anonymous_Access_To_Protected_Subprogram.
25943 (Process_Discriminants): In case of access to protected subprogram call
25944 Replace_Anonymous_Access_To_Protected_Subprogram.
25946 * par.adb (P_Access_Definition): New formal that indicates if the
25947 null-exclusion part was present.
25948 (P_Access_Type_Definition): New formal that indicates if the caller has
25949 already parsed the null-excluding part.
25951 * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
25952 (P_Identifier_Declarations): Code cleanup and give support to renamings
25953 of anonymous access to subprogram types.
25954 (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
25955 (P_Array_Type_Definition): Give support to AI-254.
25956 (P_Component_Items): Give support to AI-254.
25957 (P_Access_Definition): New formal that indicates if the header was
25958 already parsed by the caller.
25959 (P_Access_Type_Definition): New formal that indicates if the caller has
25960 already parsed the null-excluding part.
25962 * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
25963 call to P_Access_Definition.
25965 2004-04-19 Geert Bosch <bosch@gnat.com>
25967 * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
25968 the delicate semantics of floating-point to integer conversion.
25969 (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
25971 * eval_fat.adb (Machine_Mantissa): Moved to spec.
25972 (Machine_Radix): New function.
25974 * eval_fat.ads (Machine_Mantissa): Moved from body for use in
25976 (Machine_Radix): New function also for use in conversion checks.
25978 2004-04-19 Ed Schonberg <schonberg@gnat.com>
25980 * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
25982 * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
25983 to decorate the access-to-protected subprogram and the equivalent type.
25985 * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
25986 to anonymous access to subprogram types.
25988 * exp_ch4.adb (Expand_N_In): Preserve Static flag before
25989 constant-folding, for legality checks in contexts that require an RM
25992 * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
25993 temporary but stack checking is not enabled, increment serial number
25994 to so that symbol generation is consistent with and without stack
25997 * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
25998 independent on whether stack checking is enabled, caller must check
25999 the corresponding flag.
26001 * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
26003 (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
26004 parent if it has discriminants.
26005 (Build_Derived_Private_Type): Constructed full view does
26006 not come from source.
26007 (Process_Discriminants): Default discriminants on a tagged type are
26008 legal if this is the internal completion of a private untagged
26011 * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
26012 no constraint checks, because it corresponds to an existing object.
26014 * sem_prag.adb (Process_Convention): Pragma applies
26015 only to subprograms in the same declarative part, i.e. the same unit,
26016 not the same scope.
26018 * sem_res.adb (Valid_Conversion): In an instance or inlined body,
26019 ignore type mismatch on a numeric conversion if expression comes from
26022 2004-04-19 Sergey Rybin <rybin@act-europe.fr>
26024 * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
26025 Homonym_Number parameter, add processing for Source_Location parameter
26027 (Check_Eliminated): Remove the check for homonym numbers, add the check
26028 for source location traces.
26030 * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
26031 with Arg_Source_Location corresponding to the changes in the format of
26034 * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
26035 Eliminate pragma corresponding to the changes in the format of the
26036 pragma: Homonym_Number is replaced with Source_Location, two ways of
26037 distinguishing homonyms are mutially-exclusive.
26039 2004-04-19 Joel Brobecker <brobecker@gnat.com>
26041 * get_targ.ads (Get_No_Dollar_In_Label): Remove.
26043 * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
26044 No_Dollar_In_Label, no longer necessary, as it is always True.
26045 (Strip_Suffixes): Likewise.
26047 2004-04-19 Gary Dismukes <dismukes@gnat.com>
26049 * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
26050 modulus for compatibility with size clause on targets with 16-bit
26053 * layout.adb (Discrimify): In the case of private types, set Vtyp to
26054 full type to fix type mismatches on calls to size functions for
26055 discriminant-dependent array components.
26057 2004-04-19 Jerome Guitton <guitton@act-europe.fr>
26059 * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
26062 2004-04-19 Pascal Obry <obry@gnat.com>
26064 * mdll-utl.adb (Locate): New version is idempotent.
26066 2004-04-17 Laurent Guerby <laurent@guerby.net>
26068 PR ada/14988 (partial)
26069 * impunit.adb: Fix typo.
26071 2004-04-14 Nathanael Nerode <neroden@gcc.gnu.org>
26073 * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
26074 and install-rts-cert targets. Remove all gnatlib and gnattools
26075 targets and all other rts-* targets (moved to libada). Remove (now)
26076 unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
26077 TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
26079 2004-04-08 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26081 * trans.c (tree_transform): Shortcut returning error_mark_node for
26082 statements in annotate_only_mode.
26083 (tree_transform, case N_Label, case N_Return_Statement,
26084 N_Goto_Statement): Make statement tree instead of generating code.
26085 (tree_transform, case N_Assignment_Statement): No longer check
26086 type_annotate_only.
26087 (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
26089 (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
26091 (gnat_to_gnu): Collect any RTL generated and deal with it.
26092 (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
26093 (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
26094 (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
26096 * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
26098 * ada-tree.def (EXPR_STMT): Fix typo in name.
26099 (BLOCK_STMT, IF_STMT): New nodes.
26101 * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
26102 LABEL_STMT_FIRST_IN_EH): New macros.
26103 (RETURN_STMT_EXPR): Likewise.
26105 * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
26106 IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
26108 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
26110 * atree.ads: Correct documentation on extended nodes.
26112 * link.c: Set run_path_option for FreeBSD.
26114 2004-04-08 Vincent Celier <celier@gnat.com>
26116 * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
26117 one of the ALI file, do not link with DEC lib.
26119 * par.adb Remove the last two characters ("%s" or "%b") when checking
26120 if a language defined unit may be recompiled.
26122 2004-04-08 Ed Schonberg <schonberg@gnat.com>
26124 * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
26125 removal of abstract operation leaves no possible interpretation for
26128 * sem_eval.adb (Eval_Qualified_Expression): Use
26129 Set_Raises_Constraint_Error on node when needed, so that it does not
26130 get optimized away by subsequent optimizations.
26132 * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
26133 operands even when they are not wrapped in a type conversion.
26135 2004-04-08 Olivier Hainque <hainque@act-europe.fr>
26137 * sem_prag.adb (Set_Exported): Warn about making static as result of
26138 export only when the export is coming from source. This may be not
26139 be true e.g. on VMS where we expand export pragmas for exception codes
26140 together with imported or exported exceptions, and we don't want the
26141 user to be warned about something he didn't write.
26143 2004-04-08 Thomas Quinot <quinot@act-europe.fr>
26145 * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
26146 duplication between normal entities and those declared as renamings.
26147 No functional change.
26149 * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
26150 inline functions returning an unconstrained result.
26152 2004-04-08 Eric Botcazou <ebotcazou@act-europe.fr>
26154 * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
26155 conform to what other front-ends do.
26157 2004-04-08 Doug Rupp <rupp@gnat.com>
26159 * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
26162 2004-04-06 Pascal Obry <obry@gnat.com>
26164 * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
26166 * osint.adb (Program_Name): Do not look past a directory separator.
26168 2004-04-06 Thomas Quinot <quinot@act-europe.fr>
26170 * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
26172 * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
26173 requirement for preserving a copy of the original assignment node.
26175 * sinfo.ads: Update comment (Original_Tree -> Original_Node).
26177 2004-04-06 Olivier Hainque <hainque@act-europe.fr>
26179 (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
26182 2004-04-06 Ed Schonberg <schonberg@gnat.com>
26184 * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
26185 operator calls in functional notation, and apply
26186 Universal_Interpretation to operands, not to their type.
26188 2004-04-06 Robert Dewar <dewar@gnat.com>
26190 * 5wdirval.adb: Minor reformatting
26192 2004-04-06 Ed Falis <falis@gnat.com>
26194 * gnat_rm.texi: Improve a reference to the GCC manual
26196 2004-04-05 Vincent Celier <celier@gnat.com>
26198 * adaint.h, adaint.c: Add function __gnat_named_file_length
26200 * impunit.adb: Add Ada.Directories to the list
26202 * Makefile.in: Add VMS and Windows versions of
26203 Ada.Directories.Validity package body.
26205 * Makefile.rtl: Add a-direct and a-dirval
26207 * mlib-tgt.ads: Minor comment update.
26209 * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
26210 a-direct.ads, a-direct.adb: New files.
26212 2004-04-05 Vincent Celier <celier@gnat.com>
26215 * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
26216 just to the compiler.
26218 2004-04-05 Robert Dewar <dewar@gnat.com>
26220 * a-except.adb (Exception_Name_Simple): Make sure lower bound of
26221 returned string is 1.
26223 * ali-util.adb: Use proper specific form for Warnings (Off, entity)
26225 * eval_fat.ads: Minor reformatting
26227 * g-curexc.ads: Document that lower bound of returned string values
26230 * gnatlink.adb: Add ??? comment for previous change
26231 (need to document why this is VMS specific)
26233 * s-stoele.ads: Minor reformatting
26235 * tbuild.ads: Minor reformatting throughout (new function specs)
26237 * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
26240 * scng.adb: Minor reformatting
26242 2004-04-05 Geert Bosch <bosch@gnat.com>
26244 * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
26245 (Leading_Part): Still perform truncation to machine number if the
26246 specified radix_digits is greater or equal to machine_mantissa.
26248 2004-04-05 Javier Miranda <miranda@gnat.com>
26250 * par-ch3.adb: Complete documentation of previous change
26251 Correct wrong syntax documentation of the OBJECT_DECLARATION rule
26252 (aliased must appear before constant).
26254 * par-ch4.adb: Complete documentation of previous change.
26256 * par-ch6.adb: Complete documentation of previous change.
26258 * sinfo.ads: Fix typo in commment.
26260 2004-04-05 Ed Schonberg <schonberg@gnat.com>
26262 * sem_ch3.adb (Inherit_Components): If derived type is private and has
26263 stored discriminants, use its discriminants to constrain parent type,
26264 as is done for non-private derived record types.
26266 * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
26267 Ada 2005 AI-310: an abstract non-dispatching operation is not a
26268 candidate interpretation in an overloaded call.
26270 * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
26271 expression is Null and target type is not an access type (e.g. a
26272 non-private address type).
26274 2004-04-05 Thomas Quinot <quinot@act-europe.fr>
26276 * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
26277 statement whose right-hand side is an inlined call, save a copy of the
26278 original assignment subtree to preserve enough consistency for
26279 Analyze_Assignment to proceed.
26281 * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
26282 complete assignment subtree which is now unnecessary, as the expansion
26283 of inlined call has been improved to preserve a consistent assignment
26284 tree. Note_Possible_Modification must be called only
26285 after checks have been applied, or else unnecessary checks will
26288 * sem_util.adb (Note_Possible_Modification): Reorganise the handling
26289 of explicit dereferences that do not Come_From_Source:
26290 - be selective on cases where we must go back to the dereferenced
26291 pointer (an assignment to an implicit dereference must not be
26292 recorded as modifying the pointer);
26293 - do not rely on Original_Node being present (Analyze_Assignment
26294 calls Note_Possible_Modification on a copied tree).
26296 * sem_warn.adb (Check_References): When an unset reference to a pointer
26297 that is never assigned is encountered, prefer '<pointer> may be null'
26298 warning over '<pointer> is never assigned a value'.
26300 2004-04-05 Ramon Fernandez <fernandez@gnat.com>
26302 * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
26305 2004-04-05 Olivier Hainque <hainque@act-europe.fr>
26307 * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
26308 libexc. We currently don't reference anything in this library and
26309 linking it in triggers linker warnings we don't want to see.
26311 * init.c: Update comments.
26313 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26315 * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
26316 * utils.c (create_field_decl): Likewise.
26317 * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
26319 2004-04-02 Arnaud Charlet <charlet@act-europe.fr>
26321 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
26322 Replace ifinfo by ifnottex, to make makeinfo --html happy again.
26323 Add info directory entry and category.
26325 2004-04-02 Jan Hubicka <jh@suse.cz>
26327 * utils.c: Include function.h
26328 (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
26330 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
26333 * Make-lang.in: Clean up generation of documentation
26335 * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
26337 * xgnatug.adb: Removed, replaced by xgnatugn.adb
26339 * xgnatugn.adb: Replaces xgnatug.adb
26341 * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
26343 * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
26345 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26346 gnat_ug_wnt.texi: Removed.
26348 2004-04-01 Arnaud Charlet <charlet@act-europe.fr>
26350 * utils2.c: Update copyright notice.
26352 2004-04-01 Robert Dewar <dewar@gnat.com>
26354 * checks.adb: Minor reformatting throughout
26355 Note that prev checkin added RM reference to alignment warning
26357 2004-04-01 Ed Schonberg <schonberg@gnat.com>
26359 * exp_aggr.adb (Get_Component_Val): Treat a string literal as
26360 non-static when building aggregate for bit-packed array.
26362 * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
26363 function call that is itself the actual in a procedure call, build
26366 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
26367 a string literal, create a temporary for it, constant folding only
26368 handles scalars here.
26370 2004-04-01 Vincent Celier <celier@gnat.com>
26372 * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
26373 Error_Msg_SP): New empty procedures to instantiate the Scanner.
26374 (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
26376 (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
26377 (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
26378 and get the checksum.
26380 * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
26382 Increase the Marking_Label at the end of the Multiple_Main_Loop,
26383 instead of at the beginning.
26385 * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
26387 (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
26390 * osint.ads (Multi_Unit_Index_Character): New Character global variable
26392 * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
26395 * par.adb: Remove test on file name to detect language defined units.
26396 Add test on unit name, after parsing, to detect language defined units
26397 that are not compiled with -gnatg (except System.RPC and its children)
26399 * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
26400 following units without style checking.
26402 * switch-c.adb: Change -gnatC to -gnateI
26404 * usage.adb: Document new switch -gnateInnn
26406 * scng.adb (Accumulate_Token_Checksum): New procedure
26407 (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
26408 word or literal number.
26409 (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
26412 2004-04-01 Thomas Quinot <quinot@act-europe.fr>
26415 g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
26416 switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
26417 5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
26418 5vtpopde.adb: Add missing 'constant' keywords.
26420 2004-04-01 Javier Miranda <miranda@gnat.com>
26422 * par-ch4.adb: (P_Allocator): Code cleanup
26424 * sem_ch3.adb (Access_Definition): Properly set the null-excluding
26427 * sinfo.ads: Complete documentation of previous change
26429 2004-04-01 Pascal Obry <obry@gnat.com>
26431 * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
26432 only on VMS. This special handling was done because an old GNU/ld bug
26433 on Windows which has been fixed.
26435 2004-04-01 GNAT Script <nobody@gnat.com>
26437 * Make-lang.in: Makefile automatically updated
26439 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26441 * decl.c (gnat_to_gnu_entity, make_type_from_size):
26442 Use TYPE_UNSIGNED, not TREE_UNSIGNED.
26443 * trans.c (tree_transform, convert_with_check): Likewise.
26444 * utils.c (gnat_signed_or_unsigned_type): Likewise.
26445 (build_vms_descriptor, unchecked_convert): Likewise.
26446 * utils2.c (nonbinary_modular_operation): Likewise.
26448 2004-03-29 Javier Miranda <miranda@gnat.com>
26450 * checks.adb (Null_Exclusion_Static_Checks): New subprogram
26451 (Install_Null_Excluding_Check): Local subprogram that determines whether
26452 an access node requires a runtime access check and if so inserts the
26453 appropriate run-time check.
26454 (Apply_Access_Check): Call Install_Null_Excluding check if required
26455 (Apply_Constraint_Check): Call Install_Null_Excluding check if required
26457 * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
26459 * einfo.ads: Fix typo in comment
26461 * exp_ch3.adb (Build_Assignment): Generate conversion to the
26462 null-excluding type to force the corresponding run-time check.
26463 (Expand_N_Object_Declaration): Generate conversion to the null-excluding
26464 type to force the corresponding run-time check.
26466 * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
26467 the null-excluding type to force the corresponding run-time check.
26469 * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
26470 case of access types unless they have the null-excluding attribute.
26472 * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
26475 * exp_util.ads: Fix typo in comment
26477 * par.adb (P_Null_Exclusion): New subprogram
26478 (P_Subtype_Indication): New formal that indicates if the null-excluding
26479 part has been scanned-out and it was present
26481 * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
26483 * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
26484 (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
26485 type to force the corresponding run-time check
26486 (Resolve_Aggregate): Propagate the null-excluding attribute to the array
26488 (Resolve_Array_Aggregate): Carry out some static checks
26489 (Resolve_Record_Aggregate.Get_Value): Carry out some static check
26491 * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
26492 attribute must be set only if specified by means of the null-excluding
26493 part. In addition, we must also propagate the access-constant attribute
26495 (Access_Subprogram_Declaration, Access_Type_Declaration,
26496 Analyze_Component_Declaration, Analyze_Object_Declaration,
26497 Array_Type_Declaration, Process_Discriminants,
26498 Analyze_Subtype_Declaration): Propagate the null-excluding attribute
26499 and carry out some static checks.
26500 (Build_Derived_Access_Type): Set the null-excluding attribute
26501 (Derived_Type_Declaration, Process_Subtype): Carry out some static
26504 * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
26506 * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
26508 * sem_ch6.adb (Process_Formals): Carry out some static checks.
26509 (Set_Actual_Subtypes): Generate null-excluding subtype if the
26510 null-excluding part was present; it is not required to be done here in
26511 case of anonymous access types.
26512 (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
26515 * sem_res.adb (Resolve_Actuals): Carry out some static check
26516 (Resolve_Null): Allow null in anonymous access
26518 * sinfo.adb: New subprogram Null_Exclusion_Present
26519 All_Present and Constant_Present available on access_definition nodes
26521 * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
26522 object_declaration, derived_type_definition, component_definition,
26523 discriminant_specification, access_to_object_definition,
26524 access_function_definition, allocator, access_procedure_definition,
26525 access_definition, parameter_specification, All_Present and
26526 Constant_Present flags available on access_definition nodes.
26528 2004-03-29 Robert Dewar <dewar@gnat.com>
26530 * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
26531 gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
26532 opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
26533 par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
26534 sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
26535 sem_prag.adb: Updates to handle multiple units/file
26537 * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
26539 * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
26540 sem_util.adb: Minor reformatting
26542 * sem_ch12.adb: Add comment for previous change
26544 2004-03-29 Laurent Pautet <pautet@act-europe.fr>
26546 * osint.adb (Executable_Prefix): Set Exec_Name to the current
26547 executable name when not initialized. Otherwise, use its current value.
26549 * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
26550 initialize it to another executable name than the current one. This
26551 allows to configure paths for an executable name (gnatmake) different
26552 from the current one (gnatdist).
26554 2004-03-29 Ed Schonberg <schonberg@gnat.com>
26556 * exp_ch6.adb (Expand_Call): A call to a function declared in the
26557 current unit cannot be inlined if it appears in the body of a withed
26558 unit, to avoid order of elaboration problems in gigi.
26560 * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
26561 information for protected (wrapper) operation as well, to simplify gdb
26564 * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
26565 protected body, indicate that the entity for the generated spec comes
26566 from source, to ensure that references are properly generated for it.
26567 (Build_Body_To_Inline): Do not inline a function that returns a
26570 * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
26571 apply convention to homonyms that are declared explicitly.
26573 * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
26574 that renames an equality operator and the operands are overloaded,
26575 resolve them with the declared formal types, before rewriting as an
26578 2004-03-29 GNAT Script <nobody@gnat.com>
26580 * Make-lang.in: Makefile automatically updated
26582 2004-03-25 Vasiliy Fofanov <fofanov@act-europe.fr>
26584 * memtrack.adb: Log realloc calls, which are treated as free followed
26587 2004-03-25 Vincent Celier <celier@gnat.com>
26589 * prj-makr.adb (Process_Directories): Detect when a file contains
26590 several units. Do not include such files in the config pragmas or
26591 in the naming scheme.
26593 * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
26594 Resolve links only when not in Trusted_Mode.
26595 (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
26596 Do not resolve links for the display names.
26598 * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
26599 resolve links when computing the display names.
26601 2004-03-25 Thomas Quinot <quinot@act-europe.fr>
26603 * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
26604 attribute reference does not denote a subtype, it can be any
26605 expression that has a classwide type, potentially after an implicit
26606 dereference. In particular, the prefix can be a view conversion for
26607 a classwide type (for which Is_Object_Reference holds), but it can
26608 also be a value conversion for an access-to-classwide type. In the
26609 latter case, there is an implicit dereference, and the original node
26610 for the prefix does not verify Is_Object_Reference.
26612 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
26613 conversion of a discriminant-dependent component of a mutable object
26616 2004-03-25 Ed Schonberg <schonberg@gnat.com>
26618 * freeze.adb (Freeze_Entity): When an inherited subprogram is
26619 inherited, has convention C, and has unconstrained array parameters,
26620 place the corresponding warning on the derived type declaration rather
26621 than the original subprogram.
26623 * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
26624 indication on renaming declaration, if formal has a box and actual
26627 * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
26628 determine whether to generate an implicit or explicit reference to
26629 the renamed entity.
26631 * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
26632 subprogram renaming comes from a defaulted formal subprogram in an
26635 2004-03-25 Gary Dismukes <dismukes@gnat.com>
26637 * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
26638 value expressions to ensure that calls within a component definition
26639 will be checked (since those are evaluated during the record type's
26642 2004-03-25 Arnaud Charlet <charlet@act-europe.fr>
26644 * s-tpobop.adb: Code clean up:
26645 (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
26647 (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
26649 2004-03-25 Jose Ruiz <ruiz@act-europe.fr>
26651 * Makefile.in: Clean up in the ravenscar run time.
26653 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26655 * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
26656 of No_Strict_Aliasing to build_pointer_type_for_mode.
26657 * utils.c (update_pointer_to): Walk pointer and ref chains.
26659 2004-03-22 Cyrille Comar <comar@act-europe.fr>
26661 * ali.ads: Fix Comment about Dynamic_Elab.
26663 * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
26664 Has_RACW, Is_Generic, etc.)
26665 (Output_Object, Gnatls): Take into account ALI files not attached to
26668 2004-03-22 Vincent Celier <celier@gnat.com>
26670 * gprep.adb: Change all String_Access to Name_Id
26671 (Is_ASCII_Letter): new function
26672 (Double_File_Name_Buffer): New procedure
26673 (Preprocess_Infile_Name): New procedure
26674 (Process_Files): New procedure
26675 (Gnatprep): Check if output and input are existing directories.
26676 Call Process_Files to do the real job.
26678 2004-03-22 Robert Dewar <dewar@gnat.com>
26680 * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
26681 s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
26683 2004-03-22 Sergey Rybin <rybin@act-europe.fr>
26685 * scn.adb (Contains): Add check for EOF, is needed for a degenerated
26686 case when the source contains only comments.
26688 2004-03-22 Ed Schonberg <schonberg@gnat.com>
26690 * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
26691 declaration for a child subprogram body that acts as a spec, indicate
26692 that the entity in the declaration needs debugging information.
26694 * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
26695 full view if the subtype is created for a constrained record component;
26696 gigi has enough information to construct the record, and there is no
26697 place in the tree for the declaration.
26699 * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
26700 serial number for the dummy body that is built for analysis, to avoid
26701 inconsistencies in the generation of internal names when compiling
26704 2004-03-22 Thomas Quinot <quinot@act-europe.fr>
26706 * sem_util.adb (Is_Object_Reference): A view conversion denotes an
26709 2004-03-22 GNAT Script <nobody@gnat.com>
26711 * Make-lang.in: Makefile automatically updated
26713 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26715 * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26716 * trans.c (tree_transform, emit_index_check): Likewise.
26717 * utils.c (build_template): Likewise.
26718 (max_size, convert): Remove handling of WITH_RECORD_EXPR.
26719 (maybe_unconstrained_array, unchecked_convert): Likewise.
26720 * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
26721 (build_unary_op): Likewise.
26722 (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
26723 (fill_vms_descriptor): Likewise.
26724 (build_call_alloc_dealloc): Likewise.
26726 * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
26728 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
26731 * gnat_ug.texi: Add info directory category and entry.
26732 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
26733 gnat_ug_wnt.texi: Regenerate.
26735 2004-03-19 Arnaud Charlet <charlet@act-europe.fr>
26737 * ada-tree.h: Update copyright notice.
26738 Minor reformatting.
26740 2004-03-19 Olivier Hainque <hainque@act-europe.fr>
26742 * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
26743 as regular exception objects and not as mere integers representing the
26744 condition code. The latter approach required some dynamics to mask off
26745 severity bits, which did not fit well into the GCC table based model.
26746 (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
26747 exception data objects. We don't it and it would conflict with the other
26748 external symbol we have to generate for such exceptions.
26750 * trans.c (tree_transform, case N_Exception_Handler): Remove part of
26751 the special code for VMS exceptions, since these are now represented
26752 as regular exceptions objects.
26754 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26756 * decl.c (debug_no_type_hash): Remove.
26757 (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
26758 * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
26760 2004-03-19 Laurent Guerby <laurent@guerby.net>
26762 * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
26763 aggregate, allows bootstrap from 3.3 on powerpc-darwin.
26765 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
26767 * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
26768 (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
26769 (TYPE_RM_SIZE_INT): Directly use type.values.
26770 (TREE_LOOP_ID): Clean up check.
26771 * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
26772 TYPE_VALUES, not TYPE_FIELDS.
26773 * trans.c (convert_with_check): Delay access of bounds of basetype
26774 until sure is numeric.
26776 2004-03-18 Arnaud Charlet <charlet@act-europe.fr>
26778 * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
26781 * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
26782 5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
26783 Specific.Set instead of direct call to e.g pthread_setspecific.
26785 2004-03-18 Thomas Quinot <quinot@act-europe.fr>
26787 * adaint.c: Update comments.
26789 * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
26790 GNATLIB_SHARED for FreeBSD.
26792 2004-03-18 Jose Ruiz <ruiz@act-europe.fr>
26794 * init.c [VxWorks]: Do not fix the stack size for the environment task.
26795 When needed (stack checking) the stack size is retrieved
26796 from the VxWorks kernel.
26798 * Makefile.in: Flag -nostdinc is required when building the run time
26799 for avoiding looking for files in the base compiler.
26800 Add the VxWorks specific version of the package body for
26801 System.Stack_checking.Operations (5zstchop.adb).
26803 * Make-lang.in: Add the object file for
26804 System.Stack_Checking.Operations.
26806 * Makefile.rtl: Add object file for the package
26807 System.Stack_Checking.Operations.
26809 * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
26811 * s-stache.ads, s-stache.adb: Move the operations related to stack
26812 checking from this package to package System.Stack_Checking.Operations.
26813 This way, stack checking operations are only linked in the final
26814 executable when using the -fstack-check flag.
26816 2004-03-18 Doug Rupp <rupp@gnat.com>
26818 * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
26821 * 5qsystem.ads, 5xcrtl.ads: New files.
26823 2004-03-18 Vincent Celier <celier@gnat.com>
26825 * prj.adb (Reset): Reset hash table Files_Htable
26827 * prj-env.adb (Source_Paths, Object_Paths): New tables.
26828 (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
26829 the procedures Add_To_Path_File.
26830 (Set_Ada_Paths): Accumulate source and object dirs in the tables,
26831 making sure that each directory is present only once and, for object
26832 dirs, when a directory already present is added, the duplicate is
26833 removed and the directory is always put as the last in the table.
26834 Write the path files at the end of these accumulations.
26836 * prj-nmsc.adb (Record_Source): Add source file name in hash table
26837 Files_Htable for all sources.
26839 * prj-proc.adb (Process): Remove restrictions between not directly
26840 related extending projects.
26842 2004-03-18 Emmanuel Briot <briot@act-europe.fr>
26844 * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
26845 (Find_Sources): Minor speed optimization.
26847 * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
26848 parameter Trusted_Mode.
26850 2004-03-18 Sergey Rybin <rybin@act-europe.fr>
26852 * scn.adb (Determine_License): Take into account a degenerated case
26853 when the source contains only comments.
26855 2004-03-18 Ed Schonberg <schonberg@gnat.com>
26857 * sem_warn.adb (Check_References): For a warning on a selected
26858 component that does not come from source, locate an uninitialized
26859 component of the record type to produce a more precise error message.
26861 2004-03-15 Jerome Guitton <guitton@act-europe.fr>
26863 * 3zsoccon.ads: Fix multicast options.
26865 * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
26868 2004-03-15 Robert Dewar <dewar@gnat.com>
26870 * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
26871 pragma used for a private type.
26873 * lib-xref.adb (Generate_Reference): Do not generate warning if
26874 reference is in a different unit from the pragma Unreferenced.
26876 * 5vtpopde.adb: Minor reformatting
26877 Fix casing of To_Task_ID
26879 * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
26880 flag if we have an unchecked conversion to an access type in the same
26883 2004-03-15 Geert Bosch <bosch@gnat.com>
26885 * a-ngcoty.adb (Modulus): In alternate formula for large real or
26886 imaginary parts, use Double precision throughout.
26888 * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
26889 we want to be able to compile run-time with -gnata for testing, but
26890 this may also be instantiated in user code that is compiled with -gnata.
26892 2004-03-15 Olivier Hainque <hainque@act-europe.fr>
26894 * s-stalib.ads (Exception_Code): New type, to represent Import/Export
26895 codes. Having a separate type for this is useful to enforce consistency
26896 throughout the various run-time units.
26897 (Exception_Data): Use Exception_Code for Import_Code.
26899 * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
26900 Natural and Integer in various places.
26901 (Register_VMS_Exception): Use Base_Code_In to compute the exception code
26902 with the severity bits masked off.
26903 (Register_VMS_Exception): Handle the additional exception data pointer
26906 * raise.c (_GNAT_Exception structure): Remove the handled_by_others
26907 component, now reflected by an exported accessor.
26908 (is_handled_by): New routine to compute whether the propagated
26909 occurrence matches some handler choice specification. Extracted out of
26910 get_action_description_for, and expanded to take care of the VMS
26912 (get_action_description_for): Use is_handled_by instead of an explicit
26913 complex condition to decide if the current choice at hand catches the
26914 propagated occurrence.
26916 * raise.h (Exception_Code): New type for C.
26918 * rtsfind.ads (RE_Id, RE_Unit_Table): Add
26919 System.Standard_Library.Exception_Code, to allow references from the
26920 pragma import/export expander.
26922 * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
26923 New accessors to allow easy access to GNAT exception data
26925 (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
26926 redundant Handled_By_Others component, helper for the personality
26927 routine which will now be able to call the appropriate exception data
26930 * cstand.adb (Create_Standard): Adjust the type of the Import_Code
26931 component of Standard_Exception_Type to be the closest possible to
26932 Exception_Code in System.Standard_Library, that we cannot get at this
26933 point. Expand a ??? comment to notify that this type node should
26934 probably be rewritten later on.
26936 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
26937 registration call to include a pointer to the exception object in the
26940 * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
26941 instead of int and explicit bitmasks.
26943 2004-03-15 Vincent Celier <celier@gnat.com>
26945 * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
26946 equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
26948 * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
26949 longer needed now that it is in the spec of
26950 System.Tasking.Task_Attributes.
26952 * adaint.h, adaint.c: (__gnat_create_output_file): New function
26954 * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
26956 * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
26958 * make.adb (Gnatmake): Do not check the executable suffix; it is being
26959 taken care of in Scan_Make_Arg.
26960 (Scan_Make_Arg): Add the executable suffix only if the argument
26961 following -o, in canonical case, does not end with the executable
26962 suffix. When in verbose mode and executable file name does not end
26963 with executable suffix, output the executable name, in canonical case.
26965 * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
26966 to avoid warnings when instantiating Ada.Task_Attributes.
26969 * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
26970 in the correct order.
26972 * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
26973 redirect standard output and error to a file for the invocation of the
26974 compiler, then read the file.
26976 * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
26977 directory, instead of the Value.
26978 (Find_Source_Dirs): Remove useless code & comments.
26980 2004-03-15 Ed Schonberg <schonberg@gnat.com>
26982 * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
26983 tagged type is inherited, and the parent operation is not frozen yet,
26984 force generation of a freeze node for the inherited operation, so the
26985 corresponding dispatch entry is properly initialized.
26986 (Make_Predefined_Primitive_Specs): Check that return type is Boolean
26987 when looking for user-defined equality operation.
26989 * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
26990 boolean when locating primitive equality of tagged component.
26992 * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
26993 bit-aligned field and the right-hand side a string literal, introduce
26994 a temporary before expanding assignment into a loop.
26996 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
26997 priority in full, to ensure that any expanded subepxressions of it are
26998 elaborated in the scope of the init_proc.
27000 * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
27001 after object declaration, skipping over code that may have been
27002 generated for validity checks.
27004 * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
27005 discriminants, ignore the known discriminants of its full view, if
27006 any, to check legality.
27008 * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
27009 component if type has unknown discriminants.
27010 (Analyze_Private_Extension_Declaration): Discriminant constraint is
27011 null if type has unknown discriminants.
27013 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
27014 for end label when present.
27016 * s-fileio.adb (Open): When called with a C_Stream, use given name for
27017 temporary file, rather than an empty string.
27019 2004-03-15 Ed Falis <falis@gnat.com>
27021 * s-thread.adb: Removed, no longer used.
27023 2004-03-15 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27025 * decl.c (target.h): Now include.
27026 (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
27027 in new build_pointer_from_mode calls for non-fat/non-thin pointer.
27028 (validate_size): For POINTER_TYPE, get smallest size permitted on
27031 * fe.h: Sort Einfo decls and add Set_Mechanism.
27033 * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
27034 (ada/decl.o): Depends on target.h.
27036 * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
27037 FUNCTION_BOUNDARY; always use TYPE_ALIGN.
27039 2004-03-15 Thomas Quinot <quinot@act-europe.fr>
27041 * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
27043 * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
27044 Insert_Dereference_Action when rewriting an implicit dereference into
27045 an explicit one, this will be taken care of during expansion of the
27046 explicit dereference.
27047 (Expand_N_Slice): Same. Always do the rewriting, even for the case
27048 of non-packed slices, since the dereference action generated by
27049 expansion of the explicit dereference is needed in any case.
27050 (Expand_N_Selected_Component): When rewriting an implicit dereference,
27051 analyze and resolve the rewritten explicit dereference so it is seen
27053 (Insert_Dereference_Action): This procedure is now called only for the
27054 expansion of an N_Explcit_Dereference_Node. Do insert a check even for
27055 dereferences that do not come from source (including explicit
27056 dereferences resulting from rewriting implicit ones), but do not
27057 recursively insert a check for the dereference nodes contained within
27059 (Insert_Dereference_Action): Clarify and correct comment.
27061 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
27064 Move language detection to the top level.
27065 * config-lang.in: Build by default.
27067 2004-03-05 Robert Dewar <dewar@gnat.com>
27069 * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
27071 * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
27072 i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
27073 5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
27074 5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
27075 unchecked conversion to spec to avoid warnings.
27077 * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
27080 * 7stpopsp.adb: Correct casing in To_Task_ID call
27082 * a-strsea.ads, a-strsea.adb: Minor reformatting
27084 * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
27086 * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
27087 Adjust Max_Msg_Length to be clearly large enough.
27089 * fe.h: Define In_Same_Source_Unit
27091 * osint.adb: Add pragma Warnings Off to suppress warnings
27092 * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
27095 * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
27097 * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
27099 * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
27101 * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
27103 * sem_prag.adb: Implement pragma No_Strict_Aliasing.
27105 * sinfo.ads: Remove obsolete comment on validate unchecked conversion
27106 node. We now do generate them for gcc back end.
27108 * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
27111 * sinput-c.adb: Fix bad name in header.
27112 Add pragma Warnings Off to suppress aliasing warning.
27114 * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
27116 * snames.h, snames.ads, snames.adb: Add entry for pragma
27117 No_Strict_Aliasing.
27119 2004-03-05 Vincent Celier <celier@gnat.com>
27121 * prj-com.ads: Add hash table Files_Htable to check when a file name
27122 is already a source of another project.
27124 * prj-nmsc.adb (Record_Source): Before recording a new source, check
27125 if its file name is not already a source of another project. Report an
27128 * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
27129 source file name, call gnatpp with all the sources of the main project.
27131 * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
27134 * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
27135 NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
27136 /RUNTIME_SYSTEM=, converted to --RTS=
27137 /NOTABS, converted to -notabs
27139 2004-03-05 Pascal Obry <obry@gnat.com>
27141 * make.adb: Minor reformatting.
27143 2004-03-05 Ed Schonberg <schonberg@gnat.com>
27145 Part of implemention of AI-262.
27146 * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
27148 * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
27151 * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
27152 when component type is a partially constrained class-wide subtype.
27153 (Constrain_Discriminated_Type): If parent type has unknown
27154 discriminants, a constraint is illegal, even if full view has
27156 (Build_Derived_Record_Type): Inherit discriminants when deriving a type
27157 with unknown discriminants whose full view is a discriminated record.
27159 * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
27160 flag, to handle properly derivations of tagged types with unknown
27162 (Analyze_Package_Spec, Analyze_Package_Body): Install
27163 Private_With_Clauses before analyzing private part or body.
27165 * einfo.ads: Indicate that both Has_Unknown_Discriminants and
27166 Has_Discriminants can be true for a given type (documentation).
27168 2004-03-05 Arnaud Charlet <charlet@act-europe.fr>
27170 * s-restri.ads: Fix license (GPL->GMGPL).
27172 * s-tassta.adb: Minor reformatting.
27174 * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
27175 by calls to Exit_One_ATC_Level, since additional clean up is performed
27178 * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
27179 by calls to Exit_One_ATC_Level, since additional clean up is performed
27182 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27184 * trans.c: Reflect GCC changes to fix bootstrap problem.
27185 Add warning for suspicious aliasing unchecked conversion.
27187 2004-03-05 GNAT Script <nobody@gnat.com>
27189 * Make-lang.in: Makefile automatically updated
27191 2004-03-02 Emmanuel Briot <briot@act-europe.fr>
27193 * ali.adb (Read_Instantiation_Instance): Do not modify the
27194 current_file_num when reading information about instantiations, since
27195 this corrupts files in later references.
27197 2004-03-02 Vincent Celier <celier@gnat.com>
27199 * bcheck.adb (Check_Consistency): Get the full path of an ALI file
27200 before checking if it is read-only.
27202 * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
27203 of SRC_DIRS and eliminate duplicates.
27205 * gprcmd.adb: Replace command "path" with command "path_sep" to return
27206 the path separator.
27207 (Usage): Document path_sep
27209 * Makefile.generic: For Ada and GNU C++ cases, link directly with the
27210 C++ compiler. No need for a script.
27211 Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
27212 Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
27215 * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
27216 where there are Ada sources.
27217 (Set_Ada_Paths): Only add to the include path the source dirs of project
27219 (Add_To_Path): Add the Display_Values of the directories, not their
27222 * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
27225 * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
27227 (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
27228 Value is canonicalized.
27229 (Language_Independent_Check): Do not copy Value to Display_Value when
27230 canonicalizing Value.
27232 * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
27233 path to find limited with cycles.
27234 (Parse_Single_Project): Use canonical cased path to find the end of a
27237 2004-03-02 Ed Schonberg <schonberg@gnat.com>
27239 * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
27240 and not a child unit.
27242 * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
27243 appear in a with_clause.
27245 * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
27246 only happen in type_annotate mode, do not try to elaborate it.
27248 * exp_util.adb (Force_Evaluation): If expression is a selected
27249 component on the left of an assignment, use a renaming rather than a
27250 temporary to remove side effects.
27252 * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
27253 inlined instance body, which is analyzed before the end of the
27256 2004-03-02 Robert Dewar <dewar@gnat.com>
27258 * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
27259 sem_ch4.adb: Use new feature for substitution of keywords in VMS
27261 * errout.ads, errout.adb: Implement new circuit for substitution of
27264 * sem_case.adb (Analyze_Choices): Place message properly when case is
27265 a subtype reference rather than an explicit range.
27267 * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
27269 2004-03-02 Doug Rupp <rupp@gnat.com>
27271 * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
27273 2004-03-02 Thomas Quinot <quinot@act-europe.fr>
27275 * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
27277 2004-03-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27279 * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
27282 2004-02-25 Robert Dewar <dewar@gnat.com>
27284 * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
27285 55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
27286 5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
27287 5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
27288 5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
27289 5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
27290 the defining instance of the type to avoid aliasing problems.
27291 Fix copyright header. Fix bad comments in package header.
27293 * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
27295 2004-02-25 Ed Schonberg <schonberg@gnat.com>
27297 * exp_ch2.adb (Param_Entity): Handle properly formals that have been
27298 rewritten as references when aliased through an address clause.
27300 * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
27301 whether call can be interpreted as an indirect call to the result of a
27302 parameterless function call returning an access subprogram.
27304 2004-02-25 Arnaud Charlet <charlet@act-europe.fr>
27307 * exp_ch7.adb (Make_Clean): Remove generation of calls to
27308 Unlock[_Entries], since this is now done by Service_Entries directly.
27310 * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
27312 * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
27313 Requeue_Call for better code readability. Change spec and update calls:
27314 PO_Service_Entries now unlock the PO on exit.
27315 (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
27316 PO_Service_Entries.
27318 * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
27320 * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
27322 2004-02-25 Sergey Rybin <rybin@act-europe.fr>
27324 * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
27325 protected subprogram call and analyzing the result of such expanding
27326 in case when the called protected subprogram is eliminated.
27328 * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
27331 2004-02-25 Jerome Guitton <guitton@act-europe.fr>
27333 * Makefile.in: Clean ups.
27335 2004-02-23 Ed Schonberg <schonberg@gnat.com>
27337 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
27338 protected operations if original subprogram is flagged as eliminated.
27339 (Expand_N_Subprogram_Body): For a protected operation, create
27340 discriminals for next operation before checking whether the operation
27343 * exp_ch9.adb (Expand_N_Protected_Body,
27344 Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
27345 for internal protected operations if the original subprogram is
27348 * sem_elim.adb (Check_Eliminated): Handle properly protected operations
27349 declared in a single protected object.
27351 2004-02-23 Vincent Celier <celier@gnat.com>
27353 * prj-attr.adb: Make attribute Builder'Executable an associative array,
27354 case insensitive if file names are case insensitive, instead of a
27355 standard associative array.
27357 * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
27358 them as case insensitive on platforms where the file names are case
27361 * prj-part.adb (Parse_Single_Project): Make sure, when checking if
27362 project file has already been parsed that canonical path are compared.
27364 2004-02-23 Robert Dewar <dewar@gnat.com>
27366 * sinput-c.ads: Correct bad unit title in header
27368 * freeze.adb: Minor reformatting
27370 2004-02-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27372 * trans.c (tree_transform, case N_Procedure_Call_Statement): For
27373 nonaddressable COMPONENT_REF that is removing padding that we are
27374 taking the address of, take the address of the padded record instead
27375 if item is variable size.
27377 2004-02-20 Robert Dewar <dewar@gnat.com>
27379 * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
27381 2004-02-20 Ed Schonberg <schonberg@gnat.com>
27383 * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
27384 itype references for the constrained designated type of a component
27385 whose base type is already frozen.
27387 2004-02-20 Arnaud Charlet <charlet@act-europe.fr>
27389 * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
27390 avoid GCC warnings.
27392 2004-02-20 Sergey Rybin <rybin@act-europe.fr>
27394 * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
27395 identifier for a phantom package that rewrites the formal package
27396 declaration with a box. The Add semantic decorations for the defining
27397 identifier from the original node (that represents the formal package).
27399 2004-02-19 Matt Kraai <kraai@alumni.cmu.edu>
27401 * Make-lang.in (ada/stamp-sdefault): Use the top level
27404 2004-02-19 Richard Henderson <rth@redhat.com>
27406 * misc.c (record_code_position): Add third build arg for RTL_EXPR.
27408 2004-02-18 Emmanuel Briot <briot@act-europe.fr>
27410 * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
27411 Scan_ALI can be used for multiple ALI files without reinitializing
27414 2004-02-18 Robert Dewar <dewar@gnat.com>
27416 * debug.adb: Minor reformatting.
27418 2004-02-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27420 * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
27421 to zero if there is an address clause.
27423 2004-02-18 Thomas Quinot <quinot@act-europe.fr>
27425 * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
27427 2004-02-18 Gary Dismukes <dismukes@gnat.com>
27429 * layout.adb (Layout_Component_List): Revise generation of call to
27430 discriminant-checking function to pass selections of all of the type's
27431 discriminants rather than just the variant-controlling discriminant.
27433 2004-02-18 Olivier Hainque <hainque@act-europe.fr>
27435 * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
27436 fail in the current setup and triggers spurious system error messages.
27437 Pretend it occurred and failed instead.
27439 2004-02-18 Vincent Celier <celier@gnat.com>
27441 * bld.adb: Mark FLDFLAGS as saved
27442 (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
27443 it is not the root project. Put each directory to be
27444 extended between double quotes to prevent it to be expanded on Windows.
27445 (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
27446 the project file. Set them back to their initial values if they have not
27447 been set in the project file.
27449 * gprcmd.adb: (Gprdebug, Debug): New global variables
27450 (Display_Command): New procedure
27451 (Usage): Document new command "linkopts"
27452 Call Display_Command when env var GPRDEBUG has the value "TRUE"
27453 Implement new command "linkopts"
27454 Remove quotes that may be around arguments for "extend"
27455 Always call Normalize_Pathname with arguments formatted for the platform
27457 * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
27458 Change @echo to @$(display) in target clean to be able to clean silently
27460 * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
27462 * prj-part.adb (Project_Path_Name_Of): Do not put final result in
27465 * prj-part.adb (Parse_Single_Project): Always call with From_Extended
27466 = Extending_All when current project is an extending all project.
27468 * vms_conv.adb (Output_File_Expected): New Boolean global variable,
27469 set to True only for LINK command, after Unix switch -o.
27470 (Process_Arguments): Set Output_File_Expected to True for LINK command
27471 after Unix switch -o. When Output_File_Expected is True, never add an
27472 extension to a file name.
27474 * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
27475 option file name, only to the --for-linker= switch.
27476 (Option_File_Name): If option file name do not end with ".opt", append
27479 2004-02-18 GNAT Script <nobody@gnat.com>
27481 * Make-lang.in: Makefile automatically updated
27483 2004-02-17 Matt Kraai <kraai@alumni.cmu.edu>
27485 * Make-lang.in (stamp-sdefault): Do not depend on
27488 2004-02-12 Zack Weinberg <zack@codesourcery.com>
27490 * config-lang.in: Disable Ada by default until probe logic for
27491 a bootstrap Ada compiler can be moved to the top level configure
27494 2004-02-12 Olivier Hainque <hainque@act-europe.fr>
27496 * decl.c (components_to_record): Don't claim that the internal fields
27497 we make to hold the variant parts are semantically addressable, because
27500 * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
27501 adjust the comment describing the modular type form when we can use it.
27502 (Install_PAT): Account for the Esiz renaming.
27504 * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
27505 sc_onstack context indication before raising the exception to which
27506 the signal is mapped. Allows better handling of later signals possibly
27507 triggered by the resumed user code if the exception is handled.
27509 2004-02-12 Arnaud Charlet <charlet@act-europe.fr>
27511 * 5zinit.adb: Removed, no longer used.
27513 2004-02-12 Robert Dewar <dewar@gnat.com>
27515 * ali.adb: Remove separating space between parameters on R line. Makes
27516 format consistent with format used by the binder for Set_Globals call.
27518 * atree.ads, atree.adb: Minor reformatting (new function header format)
27520 * bindgen.adb: Add Run-Time Globals documentation section containing
27521 detailed documentation of the globals passed from the binder file to
27524 * gnatls.adb: Minor reformatting
27526 * init.c (__gnat_set_globals): Add note pointing to documentation in
27529 * lib-writ.ads, lib-writ.adb: Remove separating space between
27530 parameters on R line.
27531 Makes format consistent with format used by the binder for Set_Globals
27534 * osint.ads: Add 2004 to copyright notice
27537 * snames.ads: Correct capitalization of FIFO_Within_Priorities
27538 Noticed during code reading, documentation issue only
27540 * usage.adb: Remove junk line for obsolete C switch
27541 Noticed during code reading
27543 2004-02-12 Vincent Celier <celier@gnat.com>
27545 * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
27546 extend for each directory, so that multiple /** directories are
27547 extended individually.
27548 (Recursive_Process): Set the default for LANGUAGES to ada
27550 * gprcmd.adb: Define new command "ignore", to do nothing.
27551 Implement new comment "path".
27553 * Makefile.generic: Suppress output when SILENT is set
27554 Make sure that when compiler for C/C++ is gcc, the correct -x switch is
27555 used, so that the correct compiler is invoked.
27556 When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
27557 CXX_INCLUDE_PATH, to avoid failure with too long command lines.
27559 2004-02-12 Jerome Guitton <guitton@act-europe.fr>
27561 * Makefile.in: Clean ups and remove obsolete targets.
27563 2004-02-12 Ed Schonberg <schonberg@gnat.com>
27565 * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
27566 predicate declared in exp_util.
27568 * exp_util.adb: Add comments.
27570 * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
27571 visibility before compiling context of the subunit.
27573 * sem_res.adb (Check_Parameterless_Call): If the context expects a
27574 value but the name is a procedure, do not attempt to analyze as a call,
27575 in order to obtain more telling diagnostics.
27577 * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
27578 'Access on parameterless function calls.
27579 (Normalize_Actuals): For a parameterless function call with missing
27580 actuals, defer diagnostic until resolution of enclosing call.
27582 * sem_util.adb (Wrong_Type): If the context type is an access to
27583 subprogram and the expression is a procedure name, suggest a missing
27586 2004-02-10 Arnaud Charlet <charlet@act-europe.fr>,
27587 Nathanael Nerode <neroden@gcc.gnu.org>
27591 Merge with libada-branch:
27592 * config-lang.in: Build libada only when ada is built.
27594 2004-02-09 Ed Schonberg <schonberg@gnat.com>
27596 * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
27597 for a tagged type, verify that both formals have the same type.
27599 * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
27600 temporary when the formal is an in-parameter and the actual a possibly
27603 * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
27604 when expansion is disabled, to ensure proper name capture with
27605 overloaded literals. Condition can be of any boolean type, resolve
27608 * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
27609 renaming is for a formal subprogram with a default operator name, and
27610 there is a usable operator that is visible at the point of
27613 2004-02-09 Robert Dewar <dewar@gnat.com>
27615 * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
27616 rewrite to ignore errors in ali files, intended to allow tools downward
27617 compatibility with new versions of ali files.
27619 * ali.ads: Add new parameter Ignore_Errors
27621 * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
27622 duplicating the error message giving the file with restrictions.
27624 * debug.adb: Add debug flag I for gnatbind
27626 * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
27627 operators for the case where the operator is a defining operator.
27629 * exp_ch3.adb: Minor reformatting (new function spec format).
27631 * exp_ch4.adb: Add comment for previous change, and make minor
27632 adjustment to loop to always check for improper loop termination.
27633 Minor reformatting throughout (new function spec format).
27635 * gnatbind.adb: Implement -di debug flag for gnatbind
27637 * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
27639 * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
27641 * lib-load.adb: Fix bad assertion.
27642 Found by testing and code reading.
27643 Minor reformatting.
27645 * lib-load.ads: Minor reformatting.
27647 * lib-writ.adb: There is only one R line now.
27649 * lib-writ.ads: Add documentation on making downward compatible changes
27650 to ali files so old tools work with new ali files.
27651 There is only one R line now.
27652 Add documentation on format incompatibilities (with special GPS note)
27654 * namet.ads, namet.adb: (Is_Operator_Name): New procedure
27656 * par-load.adb: Minor reformatting
27658 * sem_ch8.adb: Fix to error message from last update
27659 Minor reformatting and restructuring of code from last update
27661 * par-prag.adb, snames.adb, snames.ads, snames.h,
27662 sem_prag.adb: Implement pragma Profile.
27664 * stylesw.adb: Implement -gnatyN switch to turn off all style check
27667 * usage.adb: Add line for -gnatyN switch
27669 * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
27671 2004-02-09 Albert Lee <lee@gnat.com>
27673 * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
27675 2004-02-09 Ed Schonberg <schonberg@gnat.com>
27677 * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
27680 * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
27681 is nested in an instance that is not frozen yet, to avoid
27682 order-of-elaboration problems in gigi.
27684 * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
27685 body the attribute is legal.
27687 2004-02-09 Robert Dewar <dewar@gnat.com>
27689 * s-rident.ads: Minor comment correction
27691 * targparm.adb: Remove dependence on uintp completely. There was
27692 always a bug in Make in that it called Targparm before initializing
27693 the Uint package. The old code appeared to get away with this, but
27694 the new code did not! This caused an assertion error in gnatmake.
27696 * targparm.ads: Fix bad comment, restriction pragmas with parameters
27697 are indeed fully supported.
27699 2004-02-06 Alan Modra <amodra@bigpond.net.au>
27701 * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
27703 2004-02-05 Kazu Hirata <kazu@cs.umass.edu>
27705 * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
27706 with targetm.calls.promote_prototypes.
27708 2004-02-04 Robert Dewar <dewar@gnat.com>
27710 * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
27711 ali.ads, gprcmd.adb: Minor reformatting
27713 * bindgen.adb: Output restrictions string for new style restrictions
27716 * impunit.adb: Add s-rident.ads (System.Rident) and
27717 s-restri (System.Restrictions)
27719 * lib-writ.adb: Fix bug in writing restrictions string (last few
27722 * s-restri.ads, s-restri.adb: Change name Restrictions to
27723 Run_Time_Restrictions to avoid conflict with package name.
27724 Add circuit to read and acquire run time restrictions.
27726 2004-02-04 Jose Ruiz <ruiz@act-europe.fr>
27728 * restrict.ads, restrict.adb: Use the new restriction
27729 No_Task_Attributes_Package instead of the old No_Task_Attributes.
27731 * sem_prag.adb: No_Task_Attributes is a synonym of
27732 No_Task_Attributes_Package.
27734 * snames.ads, snames.adb: New entry for proper handling of
27735 No_Task_Attributes.
27737 * s-rident.ads: Adding restriction No_Task_Attributes_Package
27738 (AI-00249) that supersedes the GNAT specific restriction
27739 No_Task_Attributes.
27741 2004-02-04 Ed Schonberg <schonberg@gnat.com>
27744 (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
27745 body, an identifier may be wrapped in an unchecked conversion.
27747 2004-02-04 Vincent Celier <celier@gnat.com>
27749 * lib-writ.ads: Comment update for the W lines
27751 * bld.adb: (Expression): An empty string list is static
27753 * fname-uf.adb: Minor comment update
27755 * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
27757 * gnatbind.adb: Initialize Cumulative_Restrictions with the
27758 restrictions on the target.
27760 2004-02-03 Kazu Hirata <kazu@cs.umass.edu>
27762 * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
27765 2004-02-02 Arnaud Charlet <charlet@gnat.com>
27767 * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
27769 2004-02-02 Vincent Celier <celier@gnat.com>
27771 * gprcmd.adb (Check_Args): If condition is false, print the invoked
27772 comment before the usage.
27773 Gprcmd: Fail when command is not recognized.
27774 (Usage): Document command "prefix"
27776 * g-md5.adb (Digest): Process last block.
27777 (Update): Do not process last block. Store remaining characters and
27780 * g-md5.ads (Update): Document that several call to update are
27781 equivalent to one call with the concatenated string.
27782 (Context): Add fields to allow new Update behaviour.
27784 * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
27785 defaulted to False.
27786 When May_Fail is True and no existing file can be found, return No_File.
27788 * 6vcstrea.adb: Inlined functions are now wrappers to implementation
27791 * lib-writ.adb (Write_With_Lines): When body file does not exist, use
27792 spec file name instead on the W line.
27794 2004-02-02 Robert Dewar <dewar@gnat.com>
27796 * ali.adb: Read and acquire info from new format restrictions lines
27798 * bcheck.adb: Add circuits for checking restrictions with parameters
27800 * bindgen.adb: Output dummy restrictions data
27801 To be changed later
27803 * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
27804 exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
27805 freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
27806 sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
27807 sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
27809 * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
27810 the warning message on access to possibly uninitialized variable S)
27811 Minor changes for new restrictions handling.
27813 * gnatbind.adb: Minor reformatting
27814 Minor changes for new restrictions handling
27815 Move circuit for -r processing here from bcheck (cleaner)
27817 * gnatcmd.adb, gnatlink.adb: Minor reformatting
27819 * lib-writ.adb: Output new format restrictions lines
27821 * lib-writ.ads: Document new R format lines for new restrictions
27824 * s-restri.ads/adb: New files
27826 * Makefile.rtl: Add entry for s-restri.ads/adb
27828 * par-ch3.adb: Fix bad error messages starting with upper case letter
27831 * restrict.adb: Major rewrite throughout for new restrictions handling
27832 Major point is to handle restrictions with parameters
27834 * restrict.ads: Major changes in interface to handle restrictions with
27835 parameters. Also generally simplifies setting of restrictions.
27837 * snames.ads/adb: New entry for proper handling of No_Requeue
27839 * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
27840 restriction counting.
27841 Other minor changes for new restrictions handling
27843 * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
27844 Restriction_Warnings now allows full parameter notation
27845 Major rewrite of Restrictions for new restrictions handling
27847 2004-02-02 Javier Miranda <miranda@gnat.com>
27849 * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
27850 syntax rule for object renaming declarations.
27851 (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
27852 component definitions.
27854 * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
27856 (Array_Type_Declaration): Give support to access components. In addition
27857 it was also modified to reflect the name of the object in anonymous
27858 array types. The old code did not take into account that it is possible
27859 to have an unconstrained anonymous array with an initial value.
27860 (Check_Or_Process_Discriminants): Allow access discriminant in
27862 (Process_Discriminants): Allow access discriminant in non-limited types
27863 Initialize the new Access_Definition field in N_Object_Renaming_Decl
27864 node. Change Ada0Y to Ada 0Y in comments
27866 * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
27867 equality operators.
27868 Change Ada0Y to Ada 0Y in comments
27870 * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
27871 renamings Change Ada0Y to Ada 0Y in comments
27873 * sem_type.adb (Find_Unique_Type): Give support to the equality
27874 operators for universal access types
27875 Change Ada0Y to Ada 0Y in comments
27877 * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
27879 * sinfo.ads (N_Component_Definition): Addition of Access_Definition
27881 (N_Object_Renaming_Declaration): Addition of Access_Definition field
27882 Change Ada0Y to Ada 0Y in comments
27884 * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
27885 component definition and object renaming nodes
27886 Change Ada0Y to Ada 0Y in comments
27888 2004-02-02 Jose Ruiz <ruiz@act-europe.fr>
27890 * restrict.adb: Use the new restriction identifier
27891 No_Requeue_Statements instead of the old No_Requeue for defining the
27892 restricted profile.
27894 * sem_ch9.adb (Analyze_Requeue): Check the new restriction
27895 No_Requeue_Statements.
27897 * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
27898 that supersedes the GNAT specific restriction No_Requeue. The later is
27899 kept for backward compatibility.
27901 2004-02-02 Ed Schonberg <schonberg@gnat.com>
27903 * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
27904 5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
27905 pragma and fix incorrect ones.
27907 * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
27908 warning if the pragma is redundant.
27910 2004-02-02 Thomas Quinot <quinot@act-europe.fr>
27912 * 5staprop.adb: Add missing 'constant' keywords.
27914 * Makefile.in: use consistent value for SYMLIB on
27915 platforms where libaddr2line is supported.
27917 2004-02-02 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
27919 * utils.c (end_subprog_body): Do not call rest_of_compilation if just
27922 2004-02-02 Olivier Hainque <hainque@act-europe.fr>
27924 * init.c (__gnat_install_handler): Setup an alternate stack for signal
27925 handlers in the environment thread. This allows proper propagation of
27926 an exception on stack overflows in this thread even when the builtin
27927 ABI stack-checking scheme is used without support for a stack reserve
27930 * utils.c (create_field_decl): Augment the head comment about bitfield
27931 creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
27932 here, because the former is not accurate enough at this point.
27933 Let finish_record_type decide instead.
27934 Don't make a bitfield if the field is to be addressable.
27935 Always set a size for the field if the record is packed, to ensure the
27936 checks for bitfield creation are triggered.
27937 (finish_record_type): During last pass over the fields, clear
27938 DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
27939 not covered by the calls to layout_decl. Adjust DECL_NONADDRESSABLE_P
27940 from DECL_BIT_FIELD.
27942 2004-01-30 Kelley Cook <kcook@gcc.gnu.org>
27944 * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
27945 (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
27946 (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
27948 2004-01-26 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
27950 * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
27952 * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
27953 (ZCX_By_Default): Likewise.
27954 (Front_End_ZCX_Support): Likewise.
27956 * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
27957 (Initialize_Lock): Mark Level unreferenced.
27958 (Sleep): Mark Reason unreferenced.
27959 (Timed_Sleep): Likewise.
27960 (Wakeup): Likewise.
27961 (Exit_Task): Use Result.
27962 (Check_No_Locks): Mark Self_ID unreferenced.
27964 * 5gtasinf.adb (New_Sproc): Make Attr constant.
27965 (Bound_Thread_Attributes): Make Sproc constant.
27966 (New_Bound_Thread_Attributes): Likewise.
27968 2004-01-26 Ed Schonberg <schonberg@gnat.com>
27970 * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
27971 one-dimensional array an slice assignments, when component type is
27974 * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
27975 component type is controlled, and control_actions are in effect, use
27976 TSS procedure rather than generating inline code.
27978 * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
27979 arrays with controlled components.
27981 2004-01-26 Vincent Celier <celier@gnat.com>
27983 * gnatcmd.adb (GNATCmd): Add specification of argument file on the
27984 command line for the non VMS case.
27986 * gnatlink.adb (Process_Binder_File): When building object file, if
27987 GNU linker is used, put all object paths between quotes, to prevent ld
27988 error when there are unusual characters (such as '!') in the paths.
27990 * Makefile.generic: When there are sources in Ada and the main is in
27991 C/C++, invoke gnatmake with -B, instead of -z.
27993 * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
27994 from VMS_Conversion.
27995 (Process_Argument): New procedure, extracted from VMS_Conversion. Add
27996 specification of argument file on the command line.
27998 2004-01-26 Bernard Banner <banner@gnat.com>
28000 * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
28002 2004-01-26 Ed Schonberg <schonberg@gnat.com>
28004 * snames.adb: Update copyright notice.
28005 Add info on slice assignment for controlled arrays.
28007 2004-01-23 Robert Dewar <dewar@gnat.com>
28009 * exp_aggr.adb: Minor reformatting
28011 * exp_ch9.adb: Minor code clean up
28013 Fix bad character in comment
28016 * targparm.adb (Get_Target_Parameters): Give clean abort error on
28017 unexpected end of file, along with more detailed message.
28019 2004-01-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28021 * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
28024 * decl.c (copy_alias_set): New function.
28025 (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
28027 2004-01-23 Doug Rupp <rupp@gnat.com>
28029 * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
28030 lib$${file} in case subsequent character is not a separator.
28032 2004-01-23 Vincent Celier <celier@gnat.com>
28034 * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
28035 when the GCC version is at least 3.
28037 * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
28038 Remove all "Opt.", to prepare for opt split
28040 * prj-part.adb (Parse_Single_Project): New Boolean out parameter
28041 Extends_All. Set to True when the project parsed is an extending all
28042 project. Fails for importing an extending all project only when the
28043 imported project is an extending all project.
28044 (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
28045 depending on the value of Extends_All returned.
28047 * prj-proc.adb (Process): Check that no project shares its object
28048 directory with a project that extends it, directly or indirectly,
28049 including a virtual project.
28050 Check that no project extended by another project shares its object
28051 directory with another also extended project.
28053 * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
28054 Kind = N_With_Clause
28056 * prj-tree.ads: Minor reformatting
28057 Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
28059 2004-01-23 Ed Schonberg <schonberg@gnat.com>
28061 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
28062 applies to a type with an incomplete view, use full view in Name of
28063 clause, for consistency with uses of Get_Attribute_Definition_Clause.
28065 2004-01-23 Arnaud Charlet <charlet@act-europe.fr>
28067 * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
28068 SCHED_RR, since other values are not supported by this policy.
28069 (Initialize): Move initialization of mutex attribute to package
28070 elaboration, to prevent early access to this variable.
28072 * Makefile.in: Remove mention of Makefile.adalib, unused.
28074 * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
28075 1ssecsta.ads: Removed, unused.
28077 2004-01-21 Javier Miranda <miranda@gnat.com>
28079 * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
28080 entity if already built in the current scope.
28082 * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
28083 reminder in internal scopes. Required for nested limited aggregates.
28085 2004-01-21 Doug Rupp <rupp@gnat.com>
28087 * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
28088 VMS. Replace all occurences of libgnat- and libgnarl- with
28089 libgnat$(hyphen) and libgnarl$(hyphen).
28090 Fixed shared library build problem on VMS.
28092 2004-01-21 Robert Dewar <dewar@gnat.com>
28094 * mlib-prj.adb: Minor reformatting
28096 2004-01-21 Thomas Quinot <quinot@act-europe.fr>
28098 * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
28099 'constant' keywords for declaration of pointers that are not modified.
28101 * exp_pakd.adb: Fix English in comment.
28103 2004-01-21 Ed Schonberg <schonberg@gnat.com>
28106 * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
28107 copy all attributes of the parent, including the foreign language
28110 2004-01-21 Sergey Rybin <rybin@act-europe.fr>
28113 * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
28114 for 'delay until' statement.
28116 2004-01-20 Kelley Cook <kcook@gcc.gnu.org>
28118 * Make-lang.in: Replace $(docdir) with doc.
28119 (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
28120 doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
28121 to use consistent MAKEINFO rule.
28122 (ada.man, ada.srcman): Dummy entry.
28123 (ADA_INFOFILES): Define.
28124 (ada.info, ada.srcinfo): New rules.
28126 2004-01-19 Arnaud Charlet <charlet@act-europe.fr>
28128 * utils.c: Update copyright notice, missed in previous change.
28130 2004-01-19 Vincent Celier <celier@gnat.com>
28132 * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
28133 args if Bind is True. Set First_ALI, if not already done.
28134 (Build_Library): For Stand Alone Libraries, extract from one ALI file
28135 an eventual --RTS switch, for gnatbind, and all backend switches +
28136 --RTS, for linking.
28138 2004-01-19 Robert Dewar <dewar@gnat.com>
28140 * sem_attr.adb, memtrack.adb: Minor reformatting
28142 2004-01-19 Ed Schonberg <schonberg@gnat.com>
28144 * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
28145 that rename enumeration literals. This is properly done in sem_eval.
28147 * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
28148 to functions that rename enumeration literals.
28150 * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
28151 functions that rename enumeration literals.
28153 2004-01-16 Kazu Hirata <kazu@cs.umass.edu>
28155 * Make-lang.in (utils.o): Depend on target.h.
28156 * utils.c: Include target.h.
28157 (process_attributes): Use targetm.have_named_sections instead
28158 of ASM_OUTPUT_SECTION_NAME.
28160 2004-01-16 Andreas Jaeger <aj@suse.de>
28162 * Makefile.in: Add $(DESTDIR).
28164 2004-01-15 Olivier Hainque <hainque@act-europe.fr>
28166 * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
28167 also when not defining if a Size clause applies. That information is
28170 2004-01-15 Arnaud Charlet <charlet@act-europe.fr>
28172 * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
28173 symbolic links for the shared gnat run time when needed.
28175 2004-01-15 Vasiliy Fofanov <fofanov@act-europe.fr>
28177 * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
28178 for writing, and terminate with an error message if not.
28180 2004-01-15 Ed Schonberg <schonberg@gnat.com>
28182 * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
28183 warning on an access to subprogram in an instance, when the target
28184 type is declared in the same generic unit.
28185 (Eval_Attribute): If 'access is known to fail accessibility check,
28186 rewrite as a raise statement.
28188 2004-01-15 GNAT Script <nobody@gnat.com>
28190 * Make-lang.in: Makefile automatically updated
28192 2004-01-15 Kelley Cook <kcook@gcc.gnu.org>
28194 * Make-lang.in (ada.srcextra): Dummy entry.
28196 2004-01-14 Kelley Cook <kcook@gcc.gnu.org>
28198 * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
28200 2004-01-13 Ed Schonberg <schonberg@gnat.com>
28202 * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
28203 components that are initialized with aggregates.
28205 2004-01-13 Vincent Celier <celier@gnat.com>
28207 * gnatlink.adb (Process_Binder_File): To find directory of shared
28208 libgcc, if "gcc-lib" is not a subdirectory, look for the last
28209 subdirectory "lib" in the path of the shared libgnat or libgnarl.
28211 * make.adb (Gnatmake): If GCC version is at least 3, link with
28212 -shared-libgcc, when there is at least one shared library project.
28214 * opt.ads (GCC_Version): New integer constant.
28216 * adaint.c (get_gcc_version): New function.
28218 2004-01-13 Robert Dewar <dewar@gnat.com>
28220 * sem_dist.adb, sem_res.adb, sem_util.adb,
28221 sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
28222 exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
28224 2004-01-13 Thomas Quinot <quinot@act-europe.fr>
28226 * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
28227 g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
28230 2004-01-12 Arnaud Charlet <charlet@act-europe.fr>
28232 * misc.c: Remove trailing spaces.
28233 Update copyright notice missed in previous change.
28236 * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
28239 * Makefile.generic: Update copyright.
28240 Add license notice.
28242 * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
28243 of prefix/share/make.
28245 * Makefile.prolog: Update copyright.
28246 Add license notice.
28248 2004-01-12 Laurent Pautet <pautet@act-europe.fr>
28250 * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
28251 3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
28252 g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
28255 * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
28258 2004-01-12 Javier Miranda <miranda@gnat.com>
28260 * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
28261 exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
28262 sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
28263 sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
28264 Component_Definition node.
28266 2004-01-12 Ed Falis <falis@gnat.com>
28268 * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
28270 2004-01-12 Thomas Quinot <quinot@act-europe.fr>
28272 * link.c: Change default libgnat kind to STATIC for FreeBSD.
28274 2004-01-12 Bernard Banner <banner@gnat.com>
28276 * Makefile.in: map 86numaux to a-numaux for x86_64
28278 2004-01-12 Ed Schonberg <schonberg@gnat.com>
28280 * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
28281 generated to rename a generic actual, go to the actual itself, the
28282 subtype is not a user-visible entity.
28284 * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
28285 part is a private subtype, reset the visibility of its full view, if
28286 any, to be consistent.
28289 * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
28290 to use a generic package G as a formal package for another generic
28293 2004-01-12 Robert Dewar <dewar@gnat.com>
28295 * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
28297 * usage.adb: Remove mention of obsolete -gnatwb switch
28298 Noticed during code reading
28300 2004-01-12 Jerome Guitton <guitton@act-europe.fr>
28302 * 1ssecsta.adb: Minor changes for -gnatwa warnings
28304 2004-01-12 GNAT Script <nobody@gnat.com>
28306 * Make-lang.in: Makefile automatically updated
28308 2004-01-09 Mark Mitchell <mark@codesourcery.com>
28310 * misc.c (gnat_expand_expr): Add alt_rtl parameter.
28312 2004-01-07 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
28314 * link.c [sgi] (shared_libgnat_default): Change to STATIC.
28316 2004-01-05 Kelley Cook <kcook@gcc.gnu.org>
28318 * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
28319 Update comment and copyright date.
28320 * stamp-xgnatug: Delete.
28322 2004-01-05 Robert Dewar <dewar@gnat.com>
28324 * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
28325 be modified by the binder generated main program if the -D switch is
28328 * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
28329 imported functions (since now we expect this to be done for imported
28332 * 5vtaprop.adb: Add several ??? for sections requiring more comments
28333 Minor reformatting throughout
28335 * 5zinit.adb: Minor reformatting
28336 Add 2004 to copyright date
28337 Minor changes to avoid -gnatwa warnings
28338 Correct some instances of using OR instead of OR ELSE (noted while
28339 doing reformatting)
28341 * sprint.adb: Minor updates to avoid -gnatwa warnings
28343 * s-secsta.ads, s-secsta.adb:
28344 (SS_Get_Max): New function to obtain high water mark for ss stack
28345 Default_Secondary_Stack is not a constant since it may be modified by
28346 the binder generated main program if the -D switch is used.
28348 * switch-b.adb: New -Dnnn switch for binder
28351 Make -gnatg imply all warnings currently in -gnatwa
28353 * vms_conv.adb: Minor reformatting
28354 Add 2004 to copyright notice
28355 Add 2004 to printed copyright notice
28357 * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
28358 3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
28359 5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
28360 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
28361 5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
28362 5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
28363 5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
28364 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
28365 5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
28366 5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
28367 6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
28368 vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
28369 xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
28370 sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
28371 checks.adb, clean.adb, cstand.adb, einfo.ads,
28372 einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
28373 exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
28374 prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
28375 sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
28376 g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
28377 lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
28378 Minor reformatting and code clean ups.
28379 Minor changes to prevent -gnatwa warnings
28381 * ali.adb: Minor reformatting and cleanup of code
28382 Acquire new SS indication of secondary stack use from ali files
28384 * a-numaux.ads: Add Pure_Function pragmas for all imported functions
28385 (since now we expect this to be done for imported functions)
28387 * bindgen.adb: Generate call to modify default secondary stack size if
28390 * bindusg.adb: Add line for new -D switch
28392 * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
28393 replacement name for Type_May_Have_Non_Bit_Aligned_Components!
28394 Add circuitry for both records and arrays to avoid gigi
28395 processing if the type involved has non-bit-aligned components
28397 * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
28398 N_String_Literal node always references an E_String_Literal_Subtype
28399 entity. This may not be true in the future.
28400 (Possible_Bit_Aligned_Component): Move processing of
28401 Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
28403 * exp_ch6.adb (Expand_Thread_Body): Pick up
28404 Default_Secondary_Stack_Size as variable so that we get value modified
28405 by possible -Dnnn binder parameter.
28407 * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
28408 (Type_May_Have_Bit_Aligned_Components): New function.
28410 * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
28411 (Type_May_Have_Bit_Aligned_Components): New function.
28413 * fe.h: (Set_Identifier_Casing): Fix prototype.
28414 Add declaration for Sem_Elim.Eliminate_Error_Msg.
28415 Minor reformatting.
28417 * freeze.adb (Freeze_Entity): Add RM reference to error message about
28418 importing constant atomic/volatile objects.
28419 (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
28420 unless explicit Pure_Function pragma given, to avoid insidious bug of
28421 call to non-pure imported function getting eliminated.
28423 * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
28424 gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
28425 gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
28426 Add 2004 to printed copyright notice
28428 * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
28431 * Makefile.rtl: Add entry for g-sestin.o
28432 g-sestin.ads: New file.
28434 * mdll.adb: Minor changes to avoid -gnatwa warnings
28436 * mlib-tgt.adb: Minor reformatting
28438 * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
28439 New switch Sec_Stack_Used (GNAT, GNATBIND)
28440 Make Default_Secondary_Stack_Size a variable instead of a constant,
28441 so that it can be modified by the new -Dnnn bind switch.
28443 * rtsfind.adb (Load_Fail): Give full error message in configurable
28444 run-time mode if all_errors mode is set. This was not done in the case
28445 of a file not found, which was an oversight.
28446 Note if secondary stack unit is used by compiler.
28448 * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
28449 ineffective elaborate all pragmas on non-visible packages (this
28450 happened when a renamed subprogram was called). Now the elaborate all
28451 always goes on the package containing the renaming rather than the one
28452 containing the renamed subprogram.
28454 * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
28455 (Process_Eliminate_Pragma): Add parameter to capture pragma location.
28457 * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
28458 has an Etype that references an E_String_Literal.
28459 (Eval_String_Literal): Avoid assumption that N_String_Literal node
28460 always references an E_String_Literal_Subtype entity. This may not
28461 be true in the future.
28463 * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
28466 * sem_res.adb (Resolve): Specialize msg for function name used in proc
28469 2004-01-05 Ed Falis <falis@gnat.com>
28471 * g-debuti.adb: Replaced direct boolean operator with short-circuit
28474 2004-01-05 Vincent Celier <celier@gnat.com>
28476 * bld.adb: Minor comment updates
28477 (Process_Declarative_Items): Correct incorrect name (Index_Name instead
28480 * make.adb (Gnatmake): Special process for files to compile/check when
28481 -B is specified. Fail when there are only foreign mains in attribute
28482 Main of the project file and -B is not specified. Do not skip bind/link
28483 steps when -B is specified.
28485 * makeusg.adb: Document new switch -B
28487 * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
28489 * switch-m.adb: (Scan_Make_Switches): Process -B switch
28491 * vms_data.ads: Add new GNAT PRETTY qualifier
28492 /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
28494 2004-01-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
28496 * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
28499 * misc.c (gnat_printable_name): If VERBOSITY is 2, call
28500 Set_Identifier_Casing.
28502 * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
28503 has size that overflows.
28505 2004-01-05 Gary Dismukes <dismukes@gnat.com>
28507 * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
28508 -gnatwa warning on static condition.
28510 2004-01-05 Doug Rupp <rupp@gnat.com>
28512 * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
28514 2004-01-05 Arnaud Charlet <charlet@act-europe.fr>
28516 * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
28517 all attributes, including read-only attribute.
28519 2004-01-05 Pascal Obry <obry@gnat.com>
28521 * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
28522 library naming scheme.
28524 * mlib-prj.adb (Build_Library): Generate different names for the static
28525 or dynamic version of the GNAT runtime. This is needed to support the
28526 new shared library naming scheme.
28527 (Process_Binder_File): Add detection of shared library in binder file
28528 based on the new naming scheme.
28530 * gnatlink.adb (Process_Binder_File): Properly detect the new naming
28531 scheme for the shared runtime libraries.
28534 (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
28536 (install-gnatlib): Do not create symlinks for shared libraries.
28537 (gnatlib-shared-default): Idem.
28538 (gnatlib-shared-dual-win32): New target. Not used for now as the
28539 auto-import feature does not support arrays/records.
28540 (gnatlib-shared-win32): Do not create copy for the shared libraries.
28541 (gnatlib-shared-vms): Fix shared runtime libraries names.
28543 * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
28544 dependent runtime shared library name.
28546 2004-01-05 Vasiliy Fofanov <fofanov@act-europe.fr>
28548 * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
28551 2004-01-05 Ed Schonberg <schonberg@gnat.com>
28553 * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
28554 protected objects when allocator has a subtype indication, not a
28555 qualified expression. Note that qualified expressions may have to be
28556 checked when limited aggregates are implemented.
28558 * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
28559 pure, emit warning.
28560 (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
28561 subprogram is imported, remove warning.
28563 2004-01-05 Geert Bosch <bosch@gnat.com>
28565 * s-poosiz.adb: Update copyright notice.
28566 (Allocate): Use Task_Lock to protect against concurrent access.
28567 (Deallocate): Likewise.
28569 2004-01-05 Joel Brobecker <brobecker@gnat.com>
28571 * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
28574 2003-12-23 Kelley Cook <kcook@gcc.gnu.org>
28576 * gnat_ug.texi: Force a CVS commit by updating copyright.
28577 * gnat_ug_vxw.texi: Regenerate.
28578 * gnat_ug_wnt.texi: Regenerate.
28579 * gnat_ug_vms.texi: Regenerate.
28580 * gnat_ug_unx.texi: Regenerate.
28582 2003-12-20 Kazu Hirata <kazu@cs.umass.edu>
28584 * trans.c: Remove uses of "register" specifier in
28585 declarations of local variables.
28587 2003-12-18 Kelley Cook <kcook@gcc.gnu.org>
28589 * stamp-xgnatug: New stamp file.
28590 * Make-lang.in (stamp-xgnatug): New stamp file and comment.
28591 (ada/doctools/xgnatug): Add $(build_exeext).
28592 (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
28593 ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
28595 2003-12-17 Ed Falis <falis@gnat.com>
28597 * a-elchha.adb (Tailored_Exception_Information): made Info constant to
28600 * a-exextr.adb: Add context clause for
28601 Ada.Exceptions.Last_Chance_Handler.
28603 2003-12-17 Sergey Rybin <rybin@act-europe.fr>
28605 * cstand.adb (Create_Standard): Change the way how the declaration of
28606 the Duration type is created (making it the same way as it is for all
28607 the other standard types).
28609 2003-12-17 Robert Dewar <dewar@gnat.com>
28611 * s-crtl.ads: Fix header format
28612 Change Pure to Preelaborate
28614 2003-12-17 Ed Schonberg <schonberg@gnat.com>
28616 * checks.adb (Selected_Length_Checks): Generate an Itype reference for
28617 the expression type only if it is declared in the current unit.
28619 * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
28620 are universal and already analyzed, as can occur in constrained
28621 subcomponents that depend on discriminants, when one constraint is a
28624 * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
28625 type Any_Fixed is legal as the argument of a conversion, if only one
28626 fixed-point type is in context.
28628 2003-12-17 GNAT Script <nobody@gnat.com>
28630 * Make-lang.in: Makefile automatically updated
28632 2003-12-15 Robert Dewar <dewar@gnat.com>
28634 * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
28637 2003-12-15 Vincent Celier <celier@gnat.com>
28639 * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
28640 (Gnatchop): Do not set failure status when reporting the number of
28643 2003-12-15 Doug Rupp <rupp@gnat.com>
28645 * s-ctrl.ads: New file.
28647 * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
28649 * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
28650 (GNATBIND_OBJS): Add ada/s-crtl.o.
28652 * Makefile.in [VMS]: Clean up ifeq rules.
28654 * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
28655 a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
28656 g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
28657 s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
28658 s-tasdeb.adb: Update copyright.
28659 Import System.CRTL.
28660 Make minor modifications to use System.CRTL declared functions instead
28661 of importing locally.
28663 2003-12-15 GNAT Script <nobody@gnat.com>
28665 * Make-lang.in: Makefile automatically updated
28667 2003-12-11 Ed Falis <falis@gnat.com>
28669 * 5zinit.adb: Clean up.
28671 * 5zintman.adb (Notify_Exception): replaced case statement with a call
28672 to __gnat_map_signal, imported from init.c to support
28673 signal -> exception mappings that depend on the vxWorks version.
28676 Created and exported __gnat_map_signal to support signal -> exception
28677 mapping that is dependent on the VxWorks version.
28678 Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
28680 2003-12-11 Vasiliy Fofanv <fofanov@act-europe.fr>
28682 * 5wosinte.ads: Link with -mthreads switch.
28684 2003-12-11 Arnaud Charlet <charlet@act-europe.fr>
28686 * init.c (__gnat_install_handler [NetBSD]): Set
28687 __gnat_handler_installed, as done on all other platforms.
28688 Remove duplicated code.
28690 2003-12-11 Jerome Guitton <guitton@act-europe.fr>
28692 * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
28694 2003-12-11 Thomas Quinot <quinot@act-europe.fr>
28696 * sinfo.ads: Fix inconsistent example code in comment.
28698 2003-12-11 Robert Dewar <dewar@gnat.com>
28700 * a-tiinau.adb: Add a couple of comments
28702 * sem_ch3.adb: Minor reformatting
28705 Fix bad prototype of Same_Base_Type in body (code reading cleanup)
28706 Minor reformatting throughout
28708 2003-12-11 Ed Schonberg <schonberg@gnat.com>
28710 * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
28711 bounds of a loop, create a separate block in order to generate proper
28712 cleanup actions to prevent memory leaks.
28714 * sem_res.adb (Resolve_Call): After a call to
28715 Establish_Transient_Scope, the call may be rewritten and relocated, in
28716 which case no further processing is needed.
28718 * sem_util.adb: (Wrong_Type): Refine previous fix.
28719 Fixes ACATS regressions.
28722 * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
28725 2003-12-08 Jerome Guitton <guitton@act-europe.fr>
28727 * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
28728 i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
28731 * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
28734 2003-12-08 Robert Dewar <dewar@gnat.com>
28736 * 7sintman.adb: Minor reformatting
28738 * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
28739 standard linker options to get standard libraries linked. We now plan
28740 to provide dummy versions of these libraries to match the appropriate
28741 configurable run-time (e.g. if a library is not needed at all, provide
28742 a dummy empty library).
28744 * targparm.ads: Configurable_Run_Time mode no longer affects linker
28745 options (-L parameters and standard libraries). What we plan to do is
28746 to provide dummy libraries where the libraries are not required.
28748 * gnatbind.adb: Minor comment improvement
28750 2003-12-08 Javier Miranda <miranda@gnat.com>
28752 * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
28753 aggregate in the parent. Otherwise constants with limited aggregates
28754 are not supported. Add new formal to pass the component type (Ctype).
28755 It is required to call the corresponding IP subprogram in case of
28756 default initialized components.
28757 (Gen_Assign): In case of default-initialized component, generate a
28758 call to the IP subprogram associated with the component.
28759 (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
28760 of aggregate with default initialized components.
28761 (Has_Default_Init_Comps): Improve implementation to recursively check
28762 all the present expressions.
28764 * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
28765 to indicate that the initialization call corresponds to a
28766 default-initialized component of an aggregate.
28767 In case of default initialized aggregate with tasks this parameter is
28768 used to generate a null string (this is just a workaround that must be
28769 improved later). In case of discriminants, this parameter is used to
28770 generate a selected component node that gives access to the discriminant
28773 * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
28774 subprogram, based on Build_Task_Allocate_Block, but adapted to expand
28775 allocated aggregates with default-initialized components.
28777 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
28778 the box notation is used in positional aggregates.
28780 2003-12-08 Samuel Tardieu <tardieu@act-europe.fr>
28782 * lib.ads: Fix typo in comment
28784 2003-12-08 Vincent Celier <celier@gnat.com>
28786 * prj.adb (Project_Empty): New component Unkept_Comments
28787 (Scan): Remove procedure; moved to Prj.Err.
28789 * prj.ads (Project_Data): New Boolean component Unkept_Comments
28790 (Scan): Remove procedure; moved to Prj.Err.
28792 * prj-dect.adb: Manage comments for the different declarations.
28794 * prj-part.adb (With_Record): New component Node
28795 (Parse): New Boolean parameter Store_Comments, defaulted to False.
28796 Set the scanner to return ends of line and comments as tokens, if
28797 Store_Comments is True.
28798 (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
28799 comments are associated with these nodes. Store the node IDs in the
28801 (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
28803 (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
28804 the N_Project node. Call Tree.Save and Tree.Reset before scanning the
28805 current project. Call Tree.Restore afterwards. Set the various nodes
28806 for comment storage (Next_End, End_Of_Line, Previous_Line,
28809 * prj-part.ads (Parse): New Boolean parameter Store_Comments,
28810 defaulted to False.
28812 * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
28813 to False. When Truncated is True, truncate the string, never go to the
28815 (Write_End_Of_Line_Comment): New procedure
28816 (Print): Process comments for nodes N_With_Clause,
28817 N_Package_Declaration, N_String_Type_Declaration,
28818 N_Attribute_Declaration, N_Typed_Variable_Declaration,
28819 N_Variable_Declaration, N_Case_Construction, N_Case_Item.
28820 Process nodes N_Comment.
28822 * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
28823 without comments and there are some comments, set the flag
28824 Unkept_Comments to True.
28825 (Scan): If there are comments, set the flag Unkept_Comments to True and
28826 clear the comments.
28827 (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
28828 (Next_End_Nodes: New table
28829 (Comment_Zones_Of): New function
28830 (Scan): New procedure; moved from Prj. Accumulate comments in the
28831 Comments table and set end of line comments, comments after, after end
28833 (Add_Comments): New procedure
28834 (Save, Restore, Seset_State): New procedures
28835 (There_Are_Unkept_Comments): New function
28836 (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
28837 (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
28839 (First_Comment_After, First_Comment_After_End): New functions
28840 (First_Comment_Before, First_Comment_Before_End): New functions
28841 (Next_Comment): New function
28842 (End_Of_Line_Comment, Follows_Empty_Line,
28843 Is_Followed_By_Empty_Line): New functions
28844 (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
28845 (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
28846 (Set_Next_Comment): New procedure
28847 (Default_Project_Node): Associate comment before if the node can store
28850 * scans.ads (Token_Type): New enumeration value Tok_Comment
28851 (Comment_Id): New global variable
28853 * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
28854 defaulted to False.
28855 (Scan): Store position of start of comment. If comments are tokens, set
28856 Comment_Id and set Token to Tok_Comment when scanning a comment.
28857 (Set_Comment_As_Token): New procedure
28859 * sinput-p.adb: Update Copyright notice
28860 (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
28861 that no longer exists.
28863 2003-12-08 Javier Miranda <miranda@gnat.com>
28865 * sem_aggr.adb: Add dependence on Exp_Tss package
28866 Correct typo in comment
28867 (Resolve_Aggregate): In case of array aggregates set the estimated
28868 type of the aggregate before calling resolve. This is needed to know
28869 the name of the corresponding IP in case of limited array aggregates.
28870 (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
28871 in case of default initialized array components.
28873 * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
28874 types. Required to give support to limited aggregates in generic
28877 2003-12-08 Ed Schonberg <schonberg@gnat.com>
28879 * sem_ch3.adb (Check_Initialization): For legality purposes, an
28880 inlined body functions like an instantiation.
28881 (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
28882 until bounds are analyzed, to diagnose premature use of type.
28884 * sem_util.adb (Wrong_Type): Improve error message when the type of
28885 the expression is used prematurely.
28887 2003-12-08 GNAT Script <nobody@gnat.com>
28889 * Make-lang.in: Makefile automatically updated
28891 2003-12-08 Arnaud Charlet <charlet@act-europe.fr>
28893 * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
28894 they are automatically generated by Make-lang.in and cause nothing but
28895 maintenance troubles.
28897 2003-12-05 Thomas Quinot <quinot@act-europe.fr>
28899 * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
28900 version of this unit).
28902 2003-12-05 Olivier Hainque <hainque@act-europe.fr>
28904 * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
28905 5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
28906 5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
28907 the body of System.Interrupt_Management common to several targets.
28908 Update copyright notice when appropriate.
28910 * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
28913 * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
28914 to ensure that the kernel fills in the interrupted context structure
28915 before calling a signal handler, which is necessary to be able to
28916 unwind past it. Update the copyright notice.
28918 2003-12-05 Jerome Guitton <guitton@act-europe.fr>
28920 * a-elchha.ads: New file.
28922 * a-elchha.adb: New default last chance handler. Contents taken from
28923 Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
28925 * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
28926 is moved to a-elchha.adb to provide a target-independent default last
28929 * Makefile.rtl: Add a-elchha.o
28931 * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
28933 2003-12-05 Ed Schonberg <schonberg@gnat.com>
28935 * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
28936 declared in an instance, do not inline the call if the instance is not
28937 frozen yet, to prevent order of elaboration problems.
28939 * sem_prag.adb: Add comments for previous fix.
28941 2003-12-05 Samuel Tardieu <tardieu@act-europe.fr>
28943 * g-table.adb: Use the right variable in Set_Item.
28944 Update copyright notice.
28946 2003-12-05 Arnaud Charlet <charlet@act-europe.fr>
28948 * Makefile.in: Remove unused rules.
28950 2003-12-05 Vincent Celier <celier@gnat.com>
28952 * switch-c.adb (Scan_Front_End_Switches): Remove processing of
28953 -nostdlib. Not needed here after all.
28955 2003-12-03 Thomas Quinot <quinot@act-europe.fr>
28958 * adaint.h, adaint.c, g-os_lib.ads:
28959 Do not assume that the offset argument to lseek(2) is a 32 bit integer,
28960 on some platforms (including FreeBSD), it is a 64 bit value.
28961 Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
28963 2003-12-03 Arnaud Charlet <charlet@act-europe.fr>
28965 * gnatvsn.ads (Library_Version): Now contain only the relevant
28967 (Verbose_Library_Version): New constant.
28969 * g-spipat.adb, g-awk.adb, g-debpoo.adb,
28970 g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
28971 s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
28973 * gnatlbr.adb: Clean up: replace Library_Version by
28974 Verbose_Library_Version.
28976 * make.adb, lib-writ.adb, exp_attr.adb:
28977 Clean up: replace Library_Version by Verbose_Library_Version.
28979 * 5lintman.adb: Removed.
28982 Update and simplify computation of LIBRARY_VERSION.
28983 Fix computation of GSMATCH_VERSION.
28984 5lintman.adb is no longer used: replaced by 7sintman.adb.
28986 2003-12-03 Robert Dewar <dewar@gnat.com>
28989 (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
28990 name. Modified to consider small non-bit-packed arrays as troublesome
28991 and in need of component-by-component assigment expansion.
28993 2003-12-03 Vincent Celier <celier@gnat.com>
28995 * lang-specs.h: Process nostdlib as nostdinc
28997 * back_end.adb: Update Copyright notice
28998 (Scan_Compiler_Arguments): Process -nostdlib directly.
29000 2003-12-03 Jose Ruiz <ruiz@act-europe.fr>
29003 When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
29004 redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
29005 included in HIE_NONE_TARGET_PAIRS.
29007 2003-12-03 Ed Schonberg <schonberg@gnat.com>
29010 (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
29011 is legal in an instance, because legality is cheched in the template.
29014 (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
29015 appplied to an unchecked conversion of a formal parameter.
29018 (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
29021 2003-12-03 Olivier Hainque <hainque@act-europe.fr>
29023 * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
29024 routines. The second one is new functionality to deal with backtracing
29025 through signal handlers.
29026 (unwind): Split into the two separate subroutines above.
29027 Update the documentation, and deal properly with sizeof (REG) different
29028 from sizeof (void*).
29030 2003-12-01 Nicolas Setton <setton@act-europe.fr>
29032 * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
29033 so that the debugger can reliably access the value of the parameter,
29034 and therefore is able to display the exception name when an exception
29035 breakpoint is reached.
29037 2003-12-01 Thomas Quinot <quinot@act-europe.fr>
29039 * fmap.adb: Fix typo in warning message.
29041 * g-socket.ads, g-socket.adb: Make Free a visible instance of
29042 Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
29044 2003-12-01 Vincent Celier <celier@gnat.com>
29046 * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
29048 (Build_Library): Get the switches only if Default_Switches is declared
29051 2003-12-01 Ed Schonberg <schonberg@gnat.com>
29053 * exp_ch6.adb (Expand_Actuals): When applying validity checks to
29054 actuals that are indexed components, reanalyze actual to ensure that
29055 packed array references are properly expanded.
29057 * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
29058 attempted assignment to a discriminant.
29060 2003-12-01 Robert Dewar <dewar@gnat.com>
29062 * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
29065 * switch-c.adb: Minor reformatting of comments
29067 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
29069 * Makefile.in: Clean ups.
29071 2003-12-01 GNAT Script <nobody@gnat.com>
29073 * Make-lang.in: Makefile automatically updated
29075 2003-12-01 Arnaud Charlet <charlet@act-europe.fr>
29077 * 5wsystem.ads: Disable zero cost exception, not ready yet.
29079 2003-11-29 Ulrich Weigand <uweigand@de.ibm.com>
29081 * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
29082 to force serialization.
29084 2003-11-26 Thomas Quinot <quinot@act-europe.fr>
29086 * g-socket.ads, g-socket.adb:
29087 Clarify documentation of function Stream. Introduce a Free procedure
29088 to release the returned Stream once it becomes unused.
29090 * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
29092 2003-11-26 Arnaud Charlet <charlet@act-europe.fr>
29094 (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
29095 since NT 4 cannot handle timeout values that are too large,
29096 e.g. DWORD'Last - 1.
29098 2003-11-26 Ed Schonberg <schonberg@gnat.com>
29101 (Expand_N_Slice): Recognize all cases of slices that appear as actuals
29102 in procedure calls and whose expansion must be deferred.
29104 * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
29108 (Build_Derived_Array_Type): Create operator for unconstrained type
29109 if ancestor is unconstrained.
29111 2003-11-26 Vincent Celier <celier@gnat.com>
29113 * make.adb (Project_Object_Directory): New global variable
29114 (Change_To_Object_Directory): New procedure
29115 (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
29116 of Change_Dir directly. Do not change working directory to object
29117 directory of main project after each compilation.
29118 (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
29120 Change to object directory of main project before binding step.
29121 (Initialize): Initialize Project_Object_Directory to No_Project
29124 (Build_Library): Take into account Builder'Default_Switches ("Ada") when
29125 binding a Stand-Alone Library.
29127 * output.adb: Update Copyright notice
29128 (Write_Char): Output buffer when full
29130 2003-11-26 Robert Dewar <dewar@gnat.com>
29132 * sem_ch13.adb: (Check_Size): Reset size if size is too small
29135 (Check_Size): Fix documentation to include bit-packed array case
29137 * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
29139 * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
29141 * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
29143 2003-11-24 Arnaud Charlet <charlet@act-europe.fr>
29146 * utils.c (init_gigi_decls): Change name of built-in setjmp to
29147 __builtin_setjmp, since this is apparently needed by recent
29150 2003-11-24 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29152 * adadecode.c: Only include ctype.h if not IN_GCC.
29153 (__gnat_decode): Use ISDIGIT from safe-ctype.h.
29155 2003-11-24 Jose Ruiz <ruiz@act-europe.fr>
29158 Use 5zintman.ads for VxWorks targets. This file avoid confusion between
29159 signals and interrupts.
29161 * 5zintman.ads: New File.
29163 * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
29164 add exception signals to the set of unmasked signals.
29167 Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
29168 between signals and interrupts.
29169 Add to Unblocked_Signal_Mask the set of signals that are in
29173 Adding a check to see whether the Interrupt_ID we want to unmask is in
29174 the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
29175 reason is that the index type of the Keep_Unmasked array is not always
29176 Interrupt_ID; it may be a subtype of Interrupt_ID.
29178 2003-11-24 Gary Dismukes <dismukes@gnat.com>
29181 (Remove_Side_Effects): Condition constantness of object created for a
29182 an unchecked type conversion on the constantness of the expression
29183 to ensure the correct value for 'Constrained when passing components
29184 of view-converted class-wide objects.
29186 2003-11-24 Robert Dewar <dewar@gnat.com>
29188 * par-load.adb (Load): Improve handling of misspelled and missing units
29189 Removes several cases of compilation abandoned messages
29191 * lib.adb: (Remove_Unit): New procedure
29193 * lib.ads: (Remove_Unit): New procedure
29195 * lib-load.adb: Minor reformatting
29197 2003-11-24 Vincent Celier <celier@gnat.com>
29200 (Gnatmake, Initialize): Call Usage instead of Makeusg directly
29201 (Marking_Label): Label to mark processed source files. Incremented for
29203 (Gnatmake): Increase Marking_Labet for each executable
29204 (Is_Marked): Compare against marking label
29205 (Mark): Mark with marking label
29207 2003-11-24 Jerome Guitton <guitton@act-europe.fr>
29210 Move the declaration of the TSD for System.Threads to System.Soft_Links.
29213 * Makefile.in: Added target pair for s-thread.adb for cert runtime.
29214 (rts-cert): build a single relocatable object for the run-time lib.
29217 2003-11-24 Vasiliy Fofanov <fofanov@act-europe.fr>
29220 Use gnatls rather than gcc to obtain the location of GNAT RTL for
29223 2003-11-24 Sergey Rybin <rybin@act-europe.fr>
29225 * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
29226 can not use it as before (that is, as a variable) when dumping it into
29227 the tree file. Add a local variable to store the result of this
29228 function and to be used as the string to be written into the tree.
29230 * scn.adb (Initialize_Scanner): Add comments explaining the recent
29233 * sinput.adb (Source_First, Source_Last): In case of
29234 Internal_Source_File, replace returning attributes of
29235 Internal_Source_Ptr (which is wrong) with returning attributes of
29238 2003-11-24 Ed Schonberg <schonberg@gnat.com>
29241 (New_Concatenation_Op): Proper name for New_Binary_Operator, only
29242 used for implicit concatenation operators.
29246 (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
29247 task bodies that are in the scope of a Suppress pragma.
29248 (Check_A Call): Use the flag to prevent spurious elaboration checks.
29250 * sinfo.ads, sinfo.adb:
29251 New flag No_Elaboration_Check on function/procedure calls, to properly
29252 suppress checks on calls in task bodies that are within a local suppress
29256 (Expand_Concatenate_Other): Use the proper integer type for the
29257 expression for the upper bound, to avoid universal_integer computations
29260 2003-11-21 Kelley Cook <kcook@gcc.gnu.org>
29262 * .cvsignore: Delete.
29264 2003-11-21 Andreas Schwab <schwab@suse.de>
29266 * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
29268 2003-11-21 Vasiliy Fofanov <fofanov@act-europe.fr>
29270 * 5wsystem.ads: Enable zero cost exception.
29272 2003-11-21 Jerome Guitton <guitton@act-europe.fr>
29274 * 5ztiitho.adb: Remove an unreferenced variable.
29276 2003-11-21 Thomas Quinot <quinot@act-europe.fr>
29278 * adaint.c: For FreeBSD, use mkstemp.
29280 2003-11-21 Arnaud Charlet <charlet@act-europe.fr>
29282 * gnatlbr.adb: Now reference Gnat_Static_Version_String.
29284 2003-11-21 Robert Dewar <dewar@gnat.com>
29286 * bld.adb: Remove useless USE of gnatvsn
29288 * gnatchop.adb: Minor reformatting
29289 Clean up version handling to be more consistent
29291 * gnatxref.adb: Minor reformatting
29293 * gprcmd.adb: Minor reformatting
29294 Fix output of copyright to be more consistent with other tools
29296 2003-11-21 Vincent Celier <celier@gnat.com>
29298 * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
29300 2003-11-21 Sergey Rybin <rybin@act-europe.fr>
29302 * atree.adb (Initialize): Add initializations for global variables
29303 used in New_Copy_Tree.
29305 * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
29306 Internal_Source_File as the actual).
29307 Put the set of statements creating Any_Character before the set of
29308 statements creating Any_Array to have Any_Character fully initialized
29309 when it is used in creating Any_Array.
29311 * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
29312 not call Scan in case if the actual is Internal_Source_File
29313 Add 2003 to copyright note.
29315 * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
29316 processing Internal_Source_File.
29318 * types.ads: Add the constant Internal_Source_File representing the
29319 source buffer for artificial source-code-like strings created within
29320 the compiler (the definition of Source_File_Index is changed).
29322 2003-11-20 Arnaud Charlet <charlet@act-europe.fr>
29324 * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
29325 56system.ads: New file, FreeBSD version.
29327 2003-11-20 Joseph S. Myers <jsm@polyomino.org.uk>
29329 * Make-lang.in (ada.extraclean): Delete.
29331 2003-11-19 Arnaud Charlet <charlet@act-europe.fr>
29333 * gnatmem.adb: Clean up verbose output.
29335 * gprcmd.adb: Change copyright to FSF.
29337 2003-11-19 Vincent Celier <celier@gnat.com>
29339 * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
29340 and Version (ignored).
29342 * symbols.ads: (Policy): New type
29343 (Initialize): New parameter Reference, Symbol_Policy and
29345 Remove parameter Force.
29346 Minor reformatting.
29348 * snames.ads, snames.adbadb: New standard names
29349 Library_Reference_Symbol_File and Library_Symbol_Policy
29352 (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
29356 (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
29358 * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
29360 * prj.adb: (Project_Empty): New component Symbol_Data
29362 * prj.ads: (Policy, Symbol_Record): New types
29363 (Project_Data): New component Symbol_Data
29366 New attributes Library_Symbol_File, Library_Symbol_Policy and
29367 Library_Reference_Symbol_File.
29370 (Ada_Check): When project is a Stand-Alone library project, process
29371 attribute Library_Symbol_File, Library_Symbol_Policy and
29372 Library_Reference_Symbol_File.
29374 * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
29375 5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
29376 5sml-tgt.adb (Build_Dynamic_Library): New parameter
29377 Symbol_Data (ignored).
29379 * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
29380 (Build_Dynamic_Library): New parameter Symbol_Data. New internal
29381 functions Option_File_Name and Version_String. Set new options of
29382 gnatsym related to symbol file, symbol policy and reference symbol
29386 Extensive modifications to take into account the reference symbol file,
29387 the symbol policy, the library version and to put in the symbol file the
29388 minor and major IDs.
29390 * bld.adb (Process_Declarative_Items): Put second argument of
29391 gprcmd to_absolute between single quotes, to avoid problems with
29394 * bld-io.adb: Update Copyright notice.
29395 (Flush): Remove last character of a line, if it is a back slash, to
29396 avoid make problems.
29399 Implement new scheme with reference symbol file and symbol policy.
29401 * g-os_lib.ads: (Is_Directory): Clarify comment
29403 2003-11-19 Robert Dewar <dewar@gnat.com>
29405 * atree.adb: Move New_Copy_Tree global variables to head of package
29407 * errout.adb: Minor reformatting
29409 2003-11-19 Javier Miranda <miranda@gnat.com>
29411 * sem_ch4.adb: (Diagnose_Call): Improve error message.
29412 Add reference to Ada0Y (AI-50217)
29414 * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
29415 sem_util.adb: Add reference to AI-50217
29417 * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
29419 * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
29421 * sem_aggr.adb: Complete documentation of AI-287 changes
29423 * par-ch4.adb: Document previous changes.
29425 * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
29426 sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
29429 * exp_aggr.adb: Add references to AI-287 in previous changes
29431 2003-11-19 Ed Schonberg <schonberg@gnat.com>
29434 (Add_Call_By_Copy_Node): Do not original node of rewritten expression
29435 in the rewriting is the result of an inlined call.
29437 * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
29438 parameter is a type conversion, use original node to construct the
29439 post-call assignment, because expression may have been rewritten, e.g.
29440 if it is a packed array.
29443 (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
29444 body, just as it is in an instance.
29445 Categorization routines
29447 * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
29448 Instantiate_Object): Set proper sloc reference for message on missing
29451 2003-11-19 Thomas Quinot <quinot@act-europe.fr>
29453 * Makefile.in: Add FreeBSD libgnat pairs.
29455 * usage.adb: Fix typo in usage message.
29457 2003-11-19 Jerome Guitton <guitton@act-europe.fr>
29459 * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
29460 s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
29461 pragma Thread_Body.
29462 Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
29464 * s-thread.adb: This file is now a dummy implementation of
29467 2003-11-19 Sergey Rybin <rybin@act-europe.fr>
29469 * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
29471 2003-11-19 Emmanuel Briot <briot@act-europe.fr>
29473 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29474 instanciation references in the parent type description.
29476 2003-11-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29478 * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
29480 * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
29481 TYPE_PRECISION directly from esize.
29483 2003-11-18 Thomas Quinot <quinot@act-europe.fr>
29486 Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
29488 * init.c: Initialization routines for FreeBSD
29490 * link.c: Link info for FreeBSD
29492 * sysdep.c: Add the case of FreeBSD
29494 2003-11-17 Jerome Guitton <guitton@act-europe.fr>
29496 * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
29497 already called in System.Threads.
29499 * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
29500 environment task, as it has been moved to System.Threads.Initialization.
29502 2003-11-17 Arnaud Charlet <charlet@act-europe.fr>
29504 * adaint.c (__gnatlib_install_locks): Only reference
29505 __gnat_install_locks on VMS, since other platforms can avoid using
29506 --enable-threads=gnat
29508 2003-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29510 * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
29512 * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
29513 TYPE_PACKED_ARRAY_TYPE_P.
29514 (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
29516 Part of PR ada/12806
29517 * utils.c (float_type_for_precision): Renamed from float_type_for_size.
29518 Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
29520 2003-11-17 Vincent Celier <celier@gnat.com>
29522 * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
29524 Do not set exit status to Failure when Warning is True.
29525 (Gnatchop): Make errors "no compilation units found" and
29526 "no source files written" warnings only.
29528 * make.adb (Gnatmake): When using a project file, set
29529 Look_In_Primary_Dir to False.
29530 (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
29531 and Local_Configuration_Pragmas in the project where they are declared
29532 not an extending project which might have inherited them.
29534 * osint.adb (Locate_File): If Name is already an absolute path, do not
29535 look for a directory.
29537 * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
29538 -gnats (Check_Syntax) is used, issue only a warning, not an error.
29540 * prj.adb (Register_Default_Naming_Scheme): Add new component Project
29541 in objects of type Variable_Value.
29543 * prj.ads: (Variable_Value): New component Project
29545 * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
29546 is in a project extended by Project.
29548 * prj-proc.adb (Add_Attributes): New parameter Project. Set component
29549 Project of Variable_Values to this new parameter value.
29550 (Expression): Set component Project of Variable_Values.
29551 (Process_Declarative_Items): Call Add_Attributes with parameter Project.
29552 Set the component Project in array elements.
29554 2003-11-17 Sergey Rybin <rybin@act-europe.fr>
29556 * errout.adb: (Initialize): Add initialization for error nodes.
29558 * sem_ch12.adb (Initialize): Add missing initializations for
29559 Exchanged_Views and Hidden_Entities.
29561 2003-11-17 Ed Schonberg <schonberg@gnat.com>
29563 * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
29564 already instantiated tree for use in subsequent inlining.
29565 (Analyze_Associations, Instantiate_Formal_Subprogram,
29566 Instantiate_Object): improve error message for mismatch in
29569 * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
29570 instantiations of subprograms declared in instances.
29572 2003-11-17 Javier Miranda <miranda@gnat.com>
29574 * sem_ch4.adb (Analyze_Allocator): Previous modification must be
29575 executed only under the Extensions_Allowed flag.
29577 2003-11-17 Robert Dewar <dewar@gnat.com>
29579 * a-exexda.adb (Address_Image): Fix documentation to indicate leading
29581 (Address_Image): Fix bug of returning 0x instead of 0x0
29582 Minor reformatting (function specs).
29584 * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
29585 (missed case of 33-63)
29587 * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
29589 * s-thread.adb: Add comments for pragma Restriction
29591 * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
29592 sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
29594 2003-11-17 Ed Falis <falis@gnat.com>
29596 * s-thread.adb: Added No_Tasking restriction for this implementation.
29598 2003-11-17 Emmanuel Briot <briot@act-europe.fr>
29600 * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
29601 instanciation references in the parent type description.
29603 2003-11-17 GNAT Script <nobody@gnat.com>
29605 * Make-lang.in: Makefile automatically updated
29607 2003-11-16 Jason Merrill <jason@redhat.com>
29609 * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
29610 and TAGS files that include them for each front end.
29612 2003-11-14 Andreas Jaeger <aj@suse.de>
29614 * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
29615 is the canonical version.
29616 * misc.c (gnat_handle_option): Likewise.
29618 * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
29620 * 5nsystem.ads: New file for x86_64-linux-gnu.
29622 2003-11-14 Arnaud Charlet <charlet@act-europe.fr>
29624 * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
29626 * comperr.adb: Fix logic in previous change.
29628 2003-11-13 Vincent Celier <celier@gnat.com>
29630 * 5bml-tgt.adb (Build_Dynamic_Library): Use
29631 Osint.Include_Dir_Default_Prefix instead of
29632 Sdefault.Include_Dir_Default_Name.
29634 * gnatlbr.adb: Update Copyright notice
29635 (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
29636 Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
29637 instead of Sdefault.Object_Dir_Default_Name
29640 (Process_Binder_File): Never suppress the option following -Xlinker
29643 (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
29644 Sdefault.Object_Dir_Default_Name.
29646 * osint.ads, osint.adb:
29647 (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
29648 Minor reformatting.
29650 * vms_conv.ads: Minor reformating
29651 Remove GNAT STANDARD and GNAT PSTA
29654 Allow GNAT MAKE to have several files on the command line.
29655 (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
29656 Sdefault.Object_Dir_Default_Name.
29658 Remove data for GNAT STANDARD
29661 Add new compiler qualifier /PRINT_STANDARD (-gnatS)
29662 Remove data for GNAT STANDARD
29663 Remove options and documentation for -gnatwb/-gnatwB: these warning
29664 options no longer exist.
29666 2003-11-13 Ed Falis <falis@gnat.com>
29668 * 5zthrini.adb: (Init_RTS): Made visible
29671 (Register): Removed unnecessary call to taskVarGet that checked whether
29672 an ATSD was already set as a task var for the argument thread.
29675 Updated comment to reflect that this is a VxWorks version
29676 Added context clause for System.Threads.Initialization
29677 Added call to System.Threads.Initialization.Init_RTS
29679 2003-11-13 Jerome Guitton <guitton@act-europe.fr>
29682 (Init_RTS): New procedure, for the initialization of the run-time lib.
29685 Remove dependancy on System.Init, so that this file can be used in the
29686 AE653 sequential run-time lib.
29688 2003-11-13 Robert Dewar <dewar@gnat.com>
29690 * bindgen.adb: Minor reformatting
29692 2003-11-13 Ed Schonberg <schonberg@gnat.com>
29695 (Apply_Discriminant_Check): Do no apply check if target type is derived
29696 from source type with no applicable constraint.
29699 (Ensure_System_Dependency): Do not apply the style checks that may have
29700 been specified for the main unit.
29703 (Find_Selected_Component): Further improvement in error message, with
29707 (Resolve): Handle properly the case of an illegal overloaded protected
29710 2003-11-13 Javier Miranda <miranda@gnat.com>
29713 (Has_Default_Init_Comps): New function to check the presence of
29714 default initialization in an aggregate.
29715 (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
29716 extension aggregate of a limited record. In addition, a new formal
29717 was added to do not initialize the record controller (if any) during
29718 this recursive expansion of ancestors.
29719 (Init_Controller): Add support for limited record components.
29720 (Expand_Record_Aggregate): In case of default initialized components
29721 convert the aggregate into a set of assignments.
29723 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
29724 describing the new syntax.
29725 Nothing else needed to be done because this subprogram delegates part of
29726 its work to P_Precord_Or_Array_Component_Association.
29727 (P_Record_Or_Array_Component_Association): Give support to the new
29728 syntax for default initialization of components.
29731 (Resolve_Aggregate): Relax the strictness of the frontend in case of
29732 limited aggregates.
29733 (Resolve_Record_Aggregate): Give support to default initialized
29735 (Get_Value): In case of default initialized components, duplicate
29736 the corresponding default expression (from the record type
29737 declaration). In case of default initialization in the *others*
29738 choice, do not check that all components have the same type.
29739 (Resolve_Extension_Aggregate): Give support to limited extension
29743 (Check_Initialization): Relax the strictness of the front-end in case
29744 of aggregate and extension aggregates. This test is now done in
29745 Get_Value in a per-component manner.
29747 * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
29748 expression corresponds to a limited aggregate. This test is now done
29751 * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
29754 * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
29755 present in an N_Component_Association node
29757 2003-11-13 Thomas Quinot <quinot@act-europe.fr>
29759 * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
29760 type-conformant entry only if they are homographs.
29762 2003-11-13 GNAT Script <nobody@gnat.com>
29764 * Make-lang.in: Makefile automatically updated
29766 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29768 * adadecode.c: Use <> form of include for ctype.h.
29769 * sysdep.c [IN_RTS]: Use <> form of include for time.h.
29771 2003-11-12 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
29773 * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
29774 Works around PR middle-end/6552.
29776 2003-11-10 Ed Falis <falis@gnat.com>
29778 * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
29780 * 5zinit.adb: (Install_Handler): Moved back to spec
29781 (Install_Signal_Handlers): Deleted
29783 * 5zthrini.adb: Added context clause for System.Storage_Elements
29784 (Register): Only handles creation of taskVar; initialization moved to
29786 (Reset_TSD): Deleted; replaced by Thread_Body_Enter
29787 Added declaration of environment task secondary stack and
29790 * s-thread.adb: Implement bodies for thread body processing
29793 Added comment identifying supported targets for pragma Thread_Body.
29795 2003-11-10 Pascal Obry <obry@gnat.com>
29797 * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
29801 (Open): Properly check for string length before copying into the buffer.
29802 Raises Name_Error if buffer is too small. Note that this was a potential
29805 2003-11-10 Romain Berrendonner <berrendo@act-europe.fr>
29807 * bindgen.adb, comperr.adb: Code clean ups.
29808 * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
29810 2003-11-10 Sergey Rybin <rybin@act-europe.fr>
29812 * gnat1drv.adb: Add call to Sem_Elim.Initialize.
29814 2003-11-10 Vincent Celier <celier@gnat.com>
29817 (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
29820 * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
29822 * prj.adb: (Project_Empty): Add new boolean component Virtual
29824 * prj.ads: (Virtual_Prefix): New constant string
29825 (Project_Data): New boolean component Virtual
29827 * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
29828 a library project is extended by a virtual extending project.
29831 Modifications throughout to implement extending-all project, including:
29832 (Virtual_Hash, Processed_Hash): New hash tables
29833 (Create_Virtual_Extending_Project): New procedure
29834 (Look_For_Virtual_Projects_For): New procedure
29837 (Process): After checking the projects, if main project is an
29838 extending-all project, set the object directory of all virtual extending
29839 project to the object directory of the main project.
29840 Adjust error message when a virtual extending project has the same
29841 object directory as an project being extended.
29842 (Recursive_Process): If name starts with the virtual prefix, set Virtual
29843 to True in the project data.
29846 (Default_Project_Node): Add new boolean component Extending_All
29847 (Is_Extending_All): New function
29848 (Set_Is_Extending_All): New procedure
29850 * prj-tree.ads: (Is_Extending_All): New function
29851 (Set_Is_Extending_All): New procedure
29852 (Project_Node_Record): New boolean component Extending_All
29854 * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
29857 Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
29859 * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
29860 "gprcmd prefix" to define it.
29862 2003-11-10 Thomas Quinot <quinot@act-europe.fr>
29864 * einfo.ads: Fix a typo and remove an extraneous word in comments.
29867 (Create_Dummy_Package_Unit): Set the scope of the entity for the
29868 created dummy package to Standard_Standard, not to itself, to
29869 defend other parts of the front-end against encoutering a cycle in
29873 (Analyze_With_Clause): When setting the entities for the successive
29874 N_Expanded_Names that constitute the name of a child unit, do not
29875 attempt to go further than Standard_Standard in the chain of scopes.
29876 This case arises from the placeholder units created by
29877 Create_Dummy_Package_Unit in the case of a with_clause for a
29878 nonexistent child unit.
29880 2003-11-10 Ed Schonberg <schonberg@gnat.com>
29883 (Expand_Thread_Body): Place subprogram on scope stack, so that new
29884 declarations are given the proper scope.
29887 (Check_Expr_Constants): Reject an expression that contains a constant
29888 created during expansion, and that appears after the object to which
29889 the address clause applies.
29891 * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
29892 Analyze_Iteration_Scheme, to rewrite a loop parameter specification
29893 that uses 'Range of a function call with controlled components, so
29894 that the function result can be finalized before starting the loop.
29897 (Find_Selected_Component): Improve error message when prefix is
29898 an implicit dereference of an incomplete type.
29900 2003-11-10 Robert Dewar <dewar@gnat.com>
29902 * opt.ads: New Print_Standard flag for -gnatS switch
29904 * sem_ch13.adb: Remove some additional checks for unaligned arrays
29906 * cstand.adb (Create_Standard): Print out package standard if -gnatS
29909 * debug.adb: Update doc for -gnatds to discuss relationship with new
29912 * sinfo.adb: Add new field Entity_Or_Associated_Node
29914 * sinfo.ads: Add new field Entity_Or_Associated_Node
29915 Update documentation for Associated_Node and Entity fields to clarify
29916 relationship and usage.
29919 (Write_Id): Properly process Associated_Node field in generic template
29922 Recognize new -gnatS switch for printing package Standard
29923 This replaces gnatpsta
29926 Add line for new -gnatS switch for printing package Standard
29927 This replaces gnatpsta
29929 2003-11-10 Andreas Jaeger <aj@suse.de>
29931 * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
29934 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
29936 * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
29939 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
29941 * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
29944 * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
29946 * sysdep.c: Add handling of cygwin.
29948 2003-11-10 GNAT Script <nobody@gnat.com>
29950 * Make-lang.in: Makefile automatically updated
29952 2003-11-10 Arnaud Charlet <charlet@act-europe.fr>
29955 * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
29956 functions. Used to handle dynamic prefix relocation, via set_std_prefix.
29957 Replace GNAT_ROOT by GCC_ROOT.
29959 * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
29961 2003-11-06 Zack Weinberg <zack@codesourcery.com>
29963 * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
29964 and update for changed meaning of GET_MODE_BITSIZE.
29966 2003-11-04 Doug Rupp <rupp@gnat.com>
29968 * sysdep.c: Problem discovered during IA64 VMS port.
29969 [VMS] #include <unixio.h> to get proper prototypes.
29972 Issues discovered/problems fixed during IA64 VMS port.
29973 [VMS] #define _POSIX_EXIT for proper semantics.
29974 [VMS] #include <unixio.h> for proper prototypes.
29975 [VMS] (fork): #define IA64 version.
29976 (__gnat_os_exit): Remove unnecessary VMS specific code.
29978 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
29980 Part of PR ada/12806
29981 * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
29985 (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
29988 * targtyps.c, decl.c, misc.c,
29989 gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
29990 routines to work around change in FP sizing semantics in GCC.
29993 (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
29995 * gigi.h: (enumerate_modes): New function.
29997 * Make-lang.in: (ada/misc.o): Add real.h.
29999 * misc.c: (enumerate_modes): New function.
30001 2003-11-04 Robert Dewar <dewar@gnat.com>
30003 * 3vtrasym.adb: Minor reformatting
30004 Use terminology encoded/decoded name, rather than C++ specific notion
30005 of mangling (this is the terminology used throughout GNAT).
30007 * einfo.h: Regenerated
30009 * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
30012 (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
30014 * par-prag.adb: Add dummy entry for Thread_Body pragma
30017 Add entries for System.Threads entities for thread body processing
30020 (Analyze_Pragma, Access attributes): Check these are not applied to a
30021 thread body, since this is not permitted
30023 * sem_prag.adb: Add processing for Thread_Body pragma.
30027 (Resolve_Call): Check for incorrect attempt to call a thread body
30028 procedure with a direct call.
30030 * snames.ads, snames.adb: Add entry for Thread_Body pragma
30031 Add names associated with thread body expansion
30033 * snames.h: Add entry for Thread_Body pragma
30035 * s-thread.adb: Add entries for thread body processing
30036 These are dummy bodies so far
30038 * s-thread.ads: Add documentation on thread body handling.
30039 Add entries for thread body processing.
30041 2003-11-04 Javier Miranda <miranda@gnat.com>
30044 (Build_Limited_Views): Return after posting an error in case of limited
30045 with_clause on subprograms, generics, instances or generic renamings
30046 (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
30047 on subprograms, generics, instances or generic renamings
30049 2003-11-04 Arnaud Charlet <charlet@act-europe.fr>
30051 * raise.c (setup_to_install): Correct mistake in last revision; two
30052 arguments out of order.
30054 * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
30055 gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
30056 notice, missed in previous change.
30057 Remove trailing blanks and other style errors introduced in previous
30060 2003-11-04 Olivier Hainque <hainque@act-europe.fr>
30062 * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
30063 rid of the wrapper for a LJM type, ensuring we don't do that if the
30064 field is addressable. This avoids potential low level type view
30065 mismatches later on, for instance in a by-reference argument passing
30068 2003-11-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30070 * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
30071 aligned at byte boundary.
30073 2003-11-04 Joel Brobecker <brobecker@gnat.com>
30075 * decl.c (components_to_record): Do not delete the empty variants from
30076 the end of the union type.
30078 2003-11-04 Ed Schonberg <schonberg@gnat.com>
30080 * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
30081 operation for a derived type, an explicit declaration may use a local
30082 subtype of Boolean.
30084 2003-11-04 Vincent Celier <celier@gnat.com>
30086 * make.adb (Gnatmake): Allow main sources on the command line with a
30087 library project when it is only for compilation (no binding or
30090 2003-11-04 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30092 * Makefile.in: Remove many duplicate variables.
30094 2003-11-03 Kelley Cook <kcook@gcc.gnu.org>
30096 * Make-lang.in (dvi): Move targets to $(docobjdir).
30097 (gnat_ug_vms.dvi): Simplify rule and adjust target.
30098 (gnat_ug_wnt.dvi): Likewise.
30099 (gnat_ug_unx.dvi): Likewise.
30100 (gnat_ug_vxw.dvi): Likewise.
30101 (gnat_rm.dvi): Likewise.
30102 (gnat-style.dvi): Likewise.
30104 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
30106 * gigi.h: Missed commit from update for C90.
30108 2003-10-31 Kelley Cook <kcook@gcc.gnu.org>
30110 * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
30112 2003-10-31 Andreas Schwab <schwab@suse.de>
30114 * raise.c (get_action_description_for): Fix typo in last change.
30116 2003-10-31 Nathanael Nerode <neroden@gcc.gnu.org>
30119 * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
30120 T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
30122 2003-10-30 Kelley Cook <kcook@gcc.gnu.org>
30124 * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
30125 ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
30126 gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
30127 sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
30128 trans.c, utils.c, utils2.c: Convert function prototypes to C90.
30130 2003-10-30 Vasiliy Fofanov <fofanov@act-europe.fr>
30133 Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
30134 numbers when symbol name is too long.
30136 2003-10-30 Ed Falis <falis@gnat.com>
30138 * g-signal.ads, g-signal.adb: New files
30140 * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
30142 * Makefile.rtl: Introduce GNAT.Signals
30144 2003-10-30 Robert Dewar <dewar@gnat.com>
30146 * freeze.adb: Minor reformatting
30148 * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
30150 * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
30151 par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
30152 New handling of Id_Check parameter to improve recognition of keywords
30153 used as identifiers.
30154 Update copyright notice to include 2003
30156 2003-10-29 Robert Dewar <dewar@gnat.com>
30158 * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
30159 sem_ch10.adb: Minor reformatting
30161 * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
30162 (Expand_Assign_Record): Test right hand side for bit unaligned as well
30164 2003-10-29 Vasiliy Fofanov <fofanov@act-europe.fr>
30166 * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
30167 Support for TBK$SYMBOLIZE-based symbolic traceback.
30169 2003-10-29 Jose Ruiz <ruiz@act-europe.fr>
30172 Revert previous change, that did not work well when pragma No_Run_Time
30173 was used in conjunction with a run-time other than ZFP.
30175 2003-10-29 Vincent Celier <celier@gnat.com>
30178 (Gnatmake): When there are no Ada mains in attribute Main, disable the
30179 bind and link steps only is switch -z is not used.
30181 2003-10-29 Arnaud Charlet <charlet@act-europe.fr>
30183 * Makefile.generic: Remove duplicated setting of CC.
30185 * Makefile.prolog: Set CC to gcc by default, to override make's
30188 * einfo.h: Regenerated.
30190 2003-10-29 Ed Schonberg <schonberg@gnat.com>
30192 * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
30193 current body, after compiling subunit.
30195 * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
30196 when in deleted code, because gigi needs properly ordered freeze
30197 actions to annotate types.
30199 * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
30200 prevent the premature freezing of record type that contains
30201 subcomponents with a private type that does not yet have a completion.
30203 2003-10-29 Javier Miranda <miranda@gnat.com>
30206 (Analyze_Package_Instantiation): Check that instances can not be used in
30207 limited with_clauses.
30210 (Analyze_Package_Renaming): Check that limited withed packages cannot
30211 be renamed. Improve text on error messages related to limited
30214 * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
30216 * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
30217 Update copyright notice.
30219 * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
30220 (Install_Limited_Context_Clauses): New subprogram that isolates all the
30221 checks required for limited context_clauses and installs the limited
30223 (Install_Limited_Withed_Unit): Complete its documentation.
30224 (Analyze_Context): Check that limited with_clauses are only allowed in
30226 (Install_Context): Call Install_Limited_Context_Clauses after the
30227 parents have been installed.
30228 (Install_Limited_Withed_Unit): Add documentation. Mark the installed
30229 package as 'From_With_Type'; this mark indicates that the limited view
30230 is installed. Used to check bad usages of limited with_clauses.
30231 (Build_Limited_Views): Do not add shadow entities to the scope's list
30232 of entities. Do not add real entities to the Non_Limited_Views chain.
30233 Improve error notification.
30234 (Remove_Context_Clauses): Remove context clauses in two phases:
30235 limited views first and regular views later (to maintain the
30237 (Remove_Limited_With_Clause): If the package is analyzed then reinstall
30238 its visible entities.
30240 2003-10-29 Thomas Quinot <quinot@act-europe.fr>
30242 * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
30243 with any type that Is_Fixed_Point_Type.
30245 * sinfo.ads: Fix documentation for Associated_Node attribute.
30247 2003-10-29 Sergey Rybin <rybin@act-europe.fr>
30249 * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
30250 both '-gnatc' and '-gnatt' are specified.
30252 * atree.adb (Initialize): Add initialization for Node_Count (set to
30255 2003-10-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30257 * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
30258 do not consider as Pure.
30260 Part of implementation of function-at-a-time:
30262 * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
30263 (tree_transform): Add new argument to build_component_ref.
30264 (tree_transform, case N_Assignment_Statement): Make and return an
30266 (tree_transform): If result IS_STMT, set flags and return it.
30267 (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30269 * utils2.c (build_simple_component_ref, build_component_ref): Add new
30271 (build_binary_op, case EQ_EXPR): Pass additional arg to it.
30272 (build_allocator): Likewise.
30274 * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
30275 Add new arg to build_component_ref.
30276 (maybe_unconstrained_array, unchecked_convert): Likewise.
30278 * ada-tree.def (EXPR_STMT): New code.
30280 * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
30282 * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
30283 build_component_ref calls.
30285 * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
30287 * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
30288 (build_component_ref): Add new argument, NO_FOLD_P.
30290 2003-10-27 Arnaud Charlet <charlet@act-europe.fr>
30292 * Makefile.generic: Add missing substitution on object_deps handling.
30295 * Make-lang.in (check-ada): Enable ACATS test suite.
30297 2003-10-27 Robert Dewar <dewar@gnat.com>
30300 (Freeze_Array_Type): We do not need an initialization routine for types
30301 derived from String or Wide_String. They should be treated the same
30302 as String and Wide_String themselves. This caused problems with the
30303 use of Initialize_Scalars.
30306 (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
30307 composites. This allows use of component clauses that are not byte
30311 (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
30312 is an attempt to pack an array of atomic objects.
30314 * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
30316 2003-10-27 Pascal Obry <obry@gnat.com>
30319 (Basename): Check for drive letters in a pathname only on DOS based OS.
30321 2003-10-27 Vincent Celier <celier@gnat.com>
30324 (Gnatmake): When unable to change dir to the object dir, display the
30325 content of the parent dir of the obj dir, to try to understand why this
30328 2003-10-27 GNAT Script <nobody@gnat.com>
30330 * Make-lang.in: Makefile automatically updated
30332 2003-10-27 Ed Schonberg <schonberg@gnat.com>
30335 (Inline_Instance_Body): Indicate that the save/restore of use_clauses
30336 should not be done in Save/Restore_Scope_Stack, because it is performed
30340 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30341 whether use clauses should be removed/restored.
30344 (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
30345 whether use clauses should be removed/restored.
30347 2003-10-26 Andreas Jaeger <aj@suse.de>
30349 * Makefile.in: Remove duplicated lines.
30351 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
30353 * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
30354 minimize the differences with ACT tree.
30356 * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
30357 gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
30358 Gnatvsn.Gnat_Static_Version_String to reduce differences between
30361 2003-10-24 Pascal Obry <obry@gnat.com>
30364 * adadecode.c (ostrcpy): New function.
30365 (__gnat_decode): Use ostrcpy of strcpy.
30366 (has_prefix): Set first parameter a const.
30367 (has_suffix): Set first parameter a const.
30368 Update copyright notice. Fix source name in header.
30369 Removes a trailing space.
30371 2003-10-24 Jose Ruiz <ruiz@act-europe.fr>
30374 Remove the test against being in No_Run_Time_Mode before generating a
30375 call to Register_Tag. It is redundant with the test against the
30376 availability of the function Register_Tag.
30378 2003-10-24 Vincent Celier <celier@gnat.com>
30380 * g-catiio.adb: (Month_Name): Correct spelling of February
30382 * make.adb: (Mains): New package
30383 (Initialize): Call Mains.Delete
30384 (Gnatmake): Check that each main on the command line is a source of a
30385 project file and, if there are several mains, each of them is a source
30386 of the same project file.
30387 (Gnatmake): When a foreign language is specified in attribute Languages,
30388 no main is specified on the command line and attribute Mains is not
30389 empty, only build the Ada main. If there is no Ada main, just compile
30390 the Ada sources and their closure.
30391 (Gnatmake): If a main is specified on the command line with directory
30392 information, check that the source exists and, if it does, that the path
30393 is the actual path of a source of a project.
30396 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
30397 Full_Path is True, return the full path instead of the simple file name.
30398 (Project_Of): New function
30401 (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
30402 defaulted to False.
30403 (Project_Of): New function
30405 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
30407 * Makefile.generic:
30408 Ensure objects of main project are always checked and rebuilt if needed.
30409 Set CC to gcc by default.
30410 Prepare new handling of link by creating a global archive (not activated
30413 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30414 stringt.h: Update copyright notice. Remove trailing blanks.
30415 Fix source name in header.
30417 2003-10-24 Robert Dewar <dewar@gnat.com>
30419 * sem_ch12.adb: Minor reformatting
30422 Minor reformatting (including new function return style throughout)
30425 Minor reformatting (including new function return style throughout)
30427 2003-10-24 Arnaud Charlet <charlet@act-europe.fr>
30429 * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
30430 stringt.h: Update copyright notice. Remove trailing blanks.
30431 Fix source name in header.
30433 2003-10-24 GNAT Script <nobody@gnat.com>
30435 * Make-lang.in: Makefile automatically updated
30437 2003-10-23 Nathanael Nerode <neroden@gcc.gnu.org>
30439 * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
30440 stringt.h: Convert to ISO C90 declarations and definitions.
30442 2003-10-23 Thomas Quinot <quinot@act-europe.fr>
30445 * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
30446 External_Tag attribute definition clauses.
30448 2003-10-23 Ed Schonberg <schonberg@gnat.com>
30451 * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
30452 child unit, generate a fully qualified name to avoid spurious errors
30453 when the context contains renamings of different child units with
30454 the same simple name.
30456 * exp_dbug.ads: Add documentation on name qualification for renamings
30459 2003-10-23 Robert Dewar <dewar@gnat.com>
30461 * g-regpat.ads, g-regpat.adb: Minor reformatting
30463 2003-10-23 Jose Ruiz <ruiz@act-europe.fr>
30465 * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
30467 2003-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
30469 * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
30472 * urealp.h: (Machine): Update to proper definition.
30474 2003-10-23 Arnaud Charlet <charlet@act-europe.fr>
30476 * init.c, adaint.c: Minor reformatting.
30478 2003-10-23 Danny Smith <dannysmith@users.sourceforge.net>
30480 * adaint.c (w32_epoch_offset): Define static const at file level.
30481 (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
30482 rather than t_create, t_access in call to GetFileTime. Use union
30483 to convert between FILETIME and unsigned long long.
30484 (__gnat_file_time_name): Test for invalid file handle.
30485 (__gnat_set_filetime_name): Support win32 targets using
30486 w32api SetFileTime.
30488 2003-10-22 Danny Smith <dannysmith@users.sourceforge.net>
30490 * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
30492 * ctrl_c.c (__gnat_int_handler): Remove declaration.
30494 * decl.c (creat_concat_name): Const-ify prefix.
30496 * adaint.c: Include ctype.h if __MINGW32__.
30497 (__gnat_readlink): Mark arguments as possibly unused.
30498 (__gnat_symlink): Likewise.
30499 (__gnat_is_symbolic_link): Likewise.
30500 (__gnat_portable_spawn): Likewise. Cast last arg of spawnvp to match
30502 (__gnat_file_time_name): Don't declare struct stat statbuf when
30504 (__gnat_is_absolute_path): Add parenthesis around condition of
30505 'if' statement to avoid warning.
30506 (__gnat_plist_init): Specify void as parameter.
30507 (plist_enter): Likewise.
30508 (plist_leave): Likewise.
30509 (remove_handle): Make static. Initialize prev.
30511 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
30514 * Makefile.in: Disable build of gnatpsta.
30515 * cstreams.c (__gnat_full_name): Minor improvements and clean up
30516 of previous change.
30518 2003-10-22 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
30520 * tracebak.c (MAX): Avoid redefinition warning.
30522 * init.c [sgi] (__gnat_error_handler): Remove i, unused.
30523 Change msg to const char *.
30524 (__gnat_install_handler): Remove ss, unused.
30525 [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
30527 * cstreams.c (__gnat_full_name): Declare p only when used.
30528 (__gnat_full_name) [sgi] Return buffer.
30530 2003-10-22 Arnaud Charlet <charlet@act-europe.fr>
30532 * mingw32.h: New file.
30533 * gnat_wrapper.adb: New file.
30535 2003-10-22 Jerome Roussel <roussel@act-europe.fr>
30537 * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
30538 string match a pre compiled regular expression (the corresponding
30539 version of the function working on a raw regular expression)
30540 Fix typos in various comments
30541 Update copyright notice in spec
30543 2003-10-21 Gary Dismukes <dismukes@gnat.com>
30546 (Component_Needs_Simple_Initialization): Return False when the type is a
30547 packed bit array. Revise spec comments to document this case.
30550 (Expand_Pragma_Import): Set any expression on the imported object to
30551 empty to avoid initializing imported objects (in particular this
30552 covers the case of zero-initialization of bit arrays).
30553 Update copyright notice.
30555 2003-10-21 Ed Schonberg <schonberg@gnat.com>
30558 (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
30559 a subunit is missing.
30560 (Instantiate_Subprogram_Body): If body of function is missing, set type
30561 of return expression explicitly in dummy body, to prevent cascaded
30562 errors when a subunit is missing.
30566 (Access_Subprogram_Declaration): Verify that return type is valid.
30570 (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
30575 (Corresponding_Discriminant): If the scope of the discriminant is a
30576 private type without discriminant, use its full view.
30579 2003-10-21 Arnaud Charlet <charlet@act-europe.fr>
30581 * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
30582 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
30583 3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
30584 55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
30585 56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
30586 59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
30587 5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
30588 5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
30589 5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
30590 5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
30591 5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
30592 5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
30593 5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
30594 5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
30595 7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
30596 a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
30597 a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
30598 a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
30599 bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
30600 erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
30601 err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
30602 g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
30603 g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
30604 g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
30605 g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
30606 g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
30607 g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
30608 gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
30609 g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
30610 g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
30611 i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
30612 prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
30613 prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
30614 s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
30615 s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
30616 s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
30617 s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
30618 s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
30619 s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
30620 s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
30621 s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
30622 socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
30623 s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
30624 s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
30625 s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
30626 styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
30627 s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
30628 tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
30629 vms_conv.ads, vms_conv.adb, vms_data.ads,
30630 vxaddr2line.adb: Files added. Merge with ACT tree.
30632 * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
30633 5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
30634 5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
30635 5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
30636 g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
30637 s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
30638 s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
30639 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
30640 s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
30641 s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
30643 * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
30644 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
30645 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
30646 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
30647 4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
30648 4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
30649 4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
30650 4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
30651 51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
30652 53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
30653 5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
30654 5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
30655 5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
30656 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
30657 5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
30658 5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
30659 5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
30660 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
30661 5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
30662 5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
30663 5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
30664 5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
30665 5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
30666 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
30667 5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
30668 5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
30669 5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
30670 5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
30671 5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
30672 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
30673 5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
30674 5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
30675 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
30676 5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
30677 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
30678 7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
30679 7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
30680 a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
30681 a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
30682 a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
30683 a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
30684 a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
30685 ali.adb, ali.ads, ali-util.adb, ali-util.ads,
30686 a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
30687 a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
30688 a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
30689 a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
30690 a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
30691 a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
30692 a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
30693 a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
30694 a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
30695 a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
30696 a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
30697 a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
30698 atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
30699 a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
30700 a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
30701 bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
30702 checks.adb, checks.ads, cio.c, comperr.adb,
30703 comperr.ads, csets.adb, cstand.adb, cstreams.c,
30704 debug_a.adb, debug_a.ads, debug.adb, decl.c,
30705 einfo.adb, einfo.ads, errout.adb, errout.ads,
30706 eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
30707 expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
30708 exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
30709 exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
30710 exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
30711 exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
30712 exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
30713 exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
30714 exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
30715 fe.h, fmap.adb, fmap.ads, fname.adb,
30716 fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
30717 freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
30718 g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
30719 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
30720 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
30721 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
30722 g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
30723 g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
30724 g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
30725 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
30726 g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
30727 g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
30728 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
30729 g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
30730 gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
30731 gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
30732 gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
30733 gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
30734 gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
30735 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
30736 g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
30737 g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
30738 g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
30739 g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
30740 g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
30741 g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
30742 g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
30743 i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
30744 i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
30745 inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
30746 itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
30747 layout.adb, lib.adb, lib.ads, lib-list.adb,
30748 lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
30749 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
30750 link.c, live.adb, make.adb, make.ads,
30751 Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
30752 mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
30753 mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
30754 misc.c, mkdir.c, mlib.adb, mlib.ads,
30755 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
30756 mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
30757 namet.adb, namet.ads, namet.h, nlists.ads,
30758 nlists.h, nmake.adt, opt.adb, opt.ads,
30759 osint.adb, osint.ads, osint-b.adb, osint-c.adb,
30760 par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
30761 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
30762 par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
30763 par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
30764 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
30765 prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
30766 prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
30767 prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
30768 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
30769 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
30770 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
30771 prj-util.adb, prj-util.ads, raise.c, raise.h,
30772 repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
30773 rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
30774 s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
30775 s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
30776 scans.ads, scn.adb, scn.ads, s-crc32.adb,
30777 s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
30778 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
30779 sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
30780 sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
30781 sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
30782 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
30783 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
30784 sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
30785 sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
30786 sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
30787 sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
30788 sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
30789 s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
30790 s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
30791 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
30792 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
30793 s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
30794 s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
30795 s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
30796 sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
30797 sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
30798 sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
30799 s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
30800 s-memory.adb, s-memory.ads, snames.adb, snames.ads,
30801 snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
30802 s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
30803 s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
30804 s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
30805 s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
30806 s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
30807 s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
30808 s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
30809 s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
30810 s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
30811 s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
30812 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
30813 s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
30814 s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
30815 s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
30816 s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
30817 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
30818 stringt.adb, stringt.ads, stringt.h, style.ads,
30819 stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
30820 s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
30821 s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
30822 switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
30823 s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
30824 table.adb, table.ads, targparm.adb, targparm.ads,
30825 targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
30826 trans.c, tree_io.adb, treepr.adb, treeprs.adt,
30827 ttypes.ads, types.ads, types.h, uintp.adb,
30828 uintp.ads, uintp.h, uname.adb, urealp.adb,
30829 urealp.ads, urealp.h, usage.adb, utils2.c,
30830 utils.c, validsw.adb, validsw.ads, widechar.adb,
30831 xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
30832 xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
30833 einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
30834 gnatvsn.ads: Merge with ACT tree.
30836 * gnatvsn.adb: Rewritten in a simpler and more efficient way.
30838 2003-10-20 Mark Mitchell <mark@codesourcery.com>
30840 * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
30841 (gnat_ug_vmx.info): Likewise.
30842 (gnat_ug_vxw.info): Likewise.
30843 (gnat_ug_wnt.info): Likewise.
30844 (gnat_rm.info): Likewise.
30845 (gnat-style.info): Likewise.
30847 * Make-lang.in (ada.install-info): Remove target.
30848 (info): New target.
30849 (install-info): Likewise.
30850 (gnat_ug_unx.info): Simplify rule.
30851 (gnat_ug_vmx.info): Likewise.
30852 (gnat_ug_vxw.info): Likewise.
30853 (gnat_ug_wnt.info): Likewise.
30854 (gnat_rm.info): Likewise.
30855 (gnat-style.info): Likewise.
30857 2003-10-14 Nathanael Nerode <neroden@gcc.gnu.org>
30859 * Make-lang.in: Replace uses of $(target_alias) with
30860 $(target_noncanonical).
30861 * ada/Makefile.in: Remove unused mention of $(target_alias).
30863 2003-10-06 Mark Mitchell <mark@codesourcery.com>
30865 * Make-lang.in (ada.info): Replace with ...
30867 (ada.dvi): Replace with ...
30870 2003-09-29 Zack Weinberg <zack@codesourcery.com>
30872 * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
30873 initialize dconstp5 and dconstmp5.
30875 2003-09-28 Richard Henderson <rth@redhat.com>
30877 * trans.c (tree_transform): Update call to expand_asm_operands.
30879 2003-09-21 Richard Henderson <rth@redhat.com>
30881 * trans.c, utils.c: Revert.
30883 2003-09-21 Richard Henderson <rth@redhat.com>
30885 * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
30888 2003-09-04 Michael Matz <matz@suse.de>
30890 * misc.c: Include "target.h".
30891 * Make-lang.in (misc.o): Add dependency on target.h.
30893 2003-09-03 DJ Delorie <dj@redhat.com>
30895 * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
30898 2003-08-30 Zack Weinberg <zack@codesourcery.com>
30900 * Makefile.in: Update substitutions to match changes to
30901 configure. Use include directives instead of @-insertions
30902 to read in host and target fragments. Add a rule to
30903 regenerate ada/Makefile.
30905 2003-07-18 Neil Booth <neil@daikokuya.co.uk>
30907 * lang-options.h: Remove.
30908 * lang.opt: Add help text.
30910 2003-07-07 Nathan Sidwell <nathan@codesourcery.com>
30912 * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
30915 2003-07-06 Neil Booth <neil@daikokuya.co.uk>
30917 * misc.c (gnat_handle_option): Don't handle filenames.
30919 2003-07-04 H.J. Lu <hongjiu.lu@intel.com>
30921 * Make-lang.in: Replace PWD with PWD_COMMAND.
30922 * Makefile.adalib: Likewise.
30923 * Makefile.in: Likewise.
30925 2003-07-04 Matt Kraai <kraai@alumni.cmu.edu>
30927 * misc.c (gnat_argv): Revert last change.
30928 (gnat_handle_option, gnat_init_options): Copy arguments.
30930 2003-07-03 Neil Booth <neil@daikokuya.co.uk>
30932 * misc.c (gnat_argv): Make const.
30934 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
30936 * misc.c (save_argc, save_argv): Keep non-static!
30938 2003-07-02 Neil Booth <neil@daikokuya.co.uk>
30940 * misc.c (save_argc, save_argv): Make static.
30941 (gnat_init_options): New prototype.
30942 (gnat_init_options): Update.
30944 2003-07-01 Matt Kraai <kraai@alumni.cmu.edu>
30946 * gnat_ug.texi: Remove unlikely characters from @vars.
30947 * gnat_ug_vms.texi: Regenerate.
30949 2003-06-27 Nathan Sidwell <nathan@codesourcery.com>
30951 * misc.c (record_code_position): Adjust emit_note call.
30953 2003-06-26 Neil Booth <neil@daikokuya.co.uk>
30955 * misc.c (gnat_handle_option): Don't check for missing arguments.
30957 2003-06-20 Nathan Sidwell <nathan@codesourcery.com>
30959 * utils.c (end_subprog_body): Adjust expand_function_end call.
30961 2003-06-16 Matt Kraai <kraai@alumni.cmu.edu>
30963 * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
30966 2003-06-15 Neil Booth <neil@daikokuya.co.uk>
30968 * lang.opt: Declare Ada.
30969 * misc.c (gnat_init_options): Update.
30971 2003-06-14 Nathan Sidwell <nathan@codesourcery.com>
30973 * utils.c (begin_subprog_body): Adjust init_function_start call.
30975 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
30977 * Make-lang.in: Update to use options.c and options.h.
30978 * misc.c: Include options.h not aoptions.h.
30979 (gnat_handle_option): Abort on unrecognized switch.
30980 (gnat_init_options): Request Ada switches.
30982 2003-06-14 Neil Booth <neil@daikokuya.co.uk>
30984 * lang.opt: Add -Wall.
30985 * misc.c (gnat_handle_option): Handle it.
30987 2003-06-12 Neil Booth <neil@daikokuya.co.uk>
30989 * misc.c (gnat_handle_option): Fix warnings.
30991 2003-06-11 Matt Kraai <kraai@alumni.cmu.edu>
30993 * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
30995 2003-06-11 Neil Booth <neil@daikokuya.co.uk>
30997 * Make-lang.in: Update to handle command-line options.
30998 * lang.opt: New file.
30999 * misc.c: Include aoptions.h.
31000 (cl_options_count, cl_options): Remove.
31001 (gnat_handle_option): New.
31002 (gnat_decode_option): Remove.
31003 (LANG_HOOKS_DECODE_OPTION): Remove.
31004 (LANG_HOOKS_HANDLE_OPTION): Override.
31006 2003-06-10 Nathanael Nerode <neroden@gcc.gnu.org>
31008 * init.c, misc.c, trans.c, utils.c: Remove dead code.
31010 2003-06-09 Nathanael Nerode <neroden@gcc.gnu.org>
31012 * Makefile.in: Replace "host_canonical" with "host" for autoconf
31015 2003-06-08 Neil Booth <neil@daikokuya.co.uk>
31017 * Make-lang.in: Update.
31018 * misc.c: Include opts.h. Define cl_options_count and cl_options.
31020 2003-06-07 Neil Booth <neil@daikokuya.co.uk>
31022 * misc.c (gnat_init_options): Update.
31024 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
31026 * Make-lang.in (ada/b_gnatb.o-warn): Remove.
31027 * bindgen.adb (Gen_Main_C): Mark ensure_reference with
31028 __attribute__ ((__unused__)).
31030 2003-06-05 Jan Hubicka <jh@suse.cz>
31032 * Make-lang.in: Add support for stageprofile and stagefeedback
31034 2003-06-05 Matt Kraai <kraai@alumni.cmu.edu>
31036 * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
31037 (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
31039 2003-06-04 Matt Kraai <kraai@alumni.cmu.edu>
31041 * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
31042 Remove non-VMS directive.
31043 (Switches for gnatlbr, Optimization Levels): Remove non-VMS
31045 (Examples of gnatls Usage): Remove VMS alternative.
31047 2003-06-04 Olivier Hainque <hainque@act-europe.fr>
31050 * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
31051 and turn ZCX_By_Default back to False since the underlying support
31052 is not quite there yet.
31054 2003-06-01 Andreas Jaeger <aj@suse.de>
31056 * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
31057 and ROUND_TYPE_SIZE_UNIT.
31059 2003-05-22 Geert Bosch <bosch@gnat.com>
31061 * gnat_rm.texi : Remove reference to Ada Core Technologies.
31063 2003-05-03 Nathan Sidwell <nathan@codesourcery.com>
31065 * trans.c (tree_transform): Use location_t and input_location
31067 (build_unit_elab): Likewise.
31068 * utils.c (create_label_decl): Likewise.
31070 2003-05-01 Nathan Sidwell <nathan@codesourcery.com>
31072 * trans.c (tree_transform, build_unit_elab,
31073 set_lineno): Rename lineno to input_line.
31074 * utils.c (pushdecl, create_label_decl, begin_subprog_body,
31075 end_subprog_body): Likewise.
31076 * utils2.c (build_call_raise): Likewise.
31078 2003-05-01 Laurent Guerby <guerby@acm.org>
31081 * 5iosinte.ads: Increase pthread_cond_t size to match recent
31082 LinuxThread and NPTL version, merge from ACT.
31084 2003-04-28 Zack Weinberg <zack@codesourcery.com>
31086 * utils.c (convert): No need to clear TREE_CST_RTL.
31088 2003-04-23 Geert Bosch <bosch@gnat.com>
31090 * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
31091 1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
31092 3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
31093 3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
31094 3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
31095 4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
31096 4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
31097 4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
31098 4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
31099 4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
31100 4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
31101 4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
31102 52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
31103 5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
31104 5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
31105 5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
31106 5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
31107 5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
31108 5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
31109 5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
31110 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
31111 5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
31112 5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
31113 5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
31114 5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
31115 5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
31116 5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
31117 5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
31118 5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
31119 5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
31120 5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
31121 5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
31122 5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
31123 5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
31124 5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
31125 5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
31126 5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
31127 5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
31128 5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
31129 5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
31130 5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
31131 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
31132 5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
31133 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
31134 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
31135 7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
31136 7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
31137 9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
31138 a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
31139 a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
31140 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
31141 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
31142 a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
31143 a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
31144 a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
31145 a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
31146 a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
31147 a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
31148 a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
31149 a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
31150 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
31151 a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
31152 a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
31153 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
31154 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
31155 a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
31156 a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
31157 a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
31158 a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
31159 a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
31160 a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
31161 a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
31162 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
31163 a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
31164 a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
31165 a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
31166 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
31167 a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
31168 a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
31169 a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
31170 a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
31171 a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
31172 a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
31173 a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
31174 a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
31175 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
31176 a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
31177 a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
31178 a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
31179 a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
31180 a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
31181 a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
31182 a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
31183 a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
31184 a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
31185 a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
31186 a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
31187 a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
31188 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
31189 a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
31190 a-wttest.ads, ada-tree.h, ada.ads, ada.h,
31191 adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
31192 ali.adb, ali.ads, alloc.ads, argv.c,
31193 atree.adb, atree.ads, atree.h, aux-io.c,
31194 back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
31195 binde.adb, binde.ads, binderr.adb, binderr.ads,
31196 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
31197 butil.adb, butil.ads, cal.c, calendar.ads,
31198 casing.adb, casing.ads, ceinfo.adb, checks.adb,
31199 checks.ads, cio.c, comperr.adb, comperr.ads,
31200 config-lang.in, csets.adb, csets.ads, csinfo.adb,
31201 cstand.adb, cstand.ads, cuintp.c, debug.adb,
31202 debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
31203 dec-io.ads, dec.ads, deftarg.c, directio.ads,
31204 einfo.adb, einfo.ads, elists.adb, elists.ads,
31205 elists.h, errno.c, errout.adb, errout.ads,
31206 eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
31207 exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
31208 exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
31209 exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
31210 exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
31211 exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
31212 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
31213 exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
31214 exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
31215 exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
31216 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
31217 exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
31218 exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
31219 exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
31220 exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
31221 fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
31222 fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
31223 freeze.adb, freeze.ads, frontend.adb, frontend.ads,
31224 g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
31225 g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
31226 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
31227 g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
31228 g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
31229 g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
31230 g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
31231 g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
31232 g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
31233 g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
31234 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
31235 g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
31236 g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
31237 g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
31238 g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
31239 g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
31240 g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
31241 g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
31242 g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
31243 g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
31244 g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
31245 g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
31246 get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
31247 gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
31248 gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
31249 gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
31250 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
31251 gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
31252 gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
31253 gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
31254 hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
31255 i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
31256 i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
31257 i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
31258 i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
31259 i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
31260 i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
31261 inline.adb, inline.ads, interfac.ads, ioexcept.ads,
31262 itypes.adb, itypes.ads, krunch.adb, krunch.ads,
31263 layout.adb, layout.ads, lib-list.adb, lib-load.adb,
31264 lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
31265 lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
31266 lib.adb, lib.ads, live.adb, live.ads,
31267 machcode.ads, make.adb, make.ads, makeusg.adb,
31268 makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
31269 mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
31270 memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
31271 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
31272 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
31273 mlib.ads, namet.adb, namet.ads, nlists.adb,
31274 nlists.ads, opt.adb, opt.ads, osint-b.adb,
31275 osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
31276 osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
31277 osint.ads, output.adb, output.ads, par-ch10.adb,
31278 par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
31279 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
31280 par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
31281 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
31282 par-tchk.adb, par-util.adb, par.adb, par.ads,
31283 prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
31284 prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
31285 prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
31286 prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
31287 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
31288 prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
31289 prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
31290 prj.adb, prj.ads, repinfo.adb, repinfo.ads,
31291 restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
31292 rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
31293 s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
31294 s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
31295 s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
31296 s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
31297 s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
31298 s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
31299 s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
31300 s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
31301 s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
31302 s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
31303 s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
31304 s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
31305 s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
31306 s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
31307 s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
31308 s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
31309 s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
31310 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
31311 s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
31312 s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
31313 s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
31314 s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
31315 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
31316 s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
31317 s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
31318 s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
31319 s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
31320 s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
31321 s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
31322 s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
31323 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
31324 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
31325 s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
31326 s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
31327 s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
31328 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
31329 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
31330 s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
31331 s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
31332 s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
31333 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
31334 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
31335 s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
31336 s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
31337 s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
31338 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
31339 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
31340 s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
31341 s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
31342 s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
31343 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
31344 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
31345 s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
31346 s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
31347 s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
31348 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
31349 s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
31350 s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
31351 s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
31352 s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
31353 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
31354 s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
31355 s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
31356 s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
31357 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
31358 s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
31359 s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
31360 s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
31361 s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
31362 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
31363 s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
31364 s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
31365 s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
31366 s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
31367 s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
31368 s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
31369 s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
31370 s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
31371 s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
31372 s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
31373 s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
31374 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
31375 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
31376 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
31377 s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
31378 s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
31379 s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
31380 s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
31381 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
31382 s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
31383 s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
31384 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
31385 s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
31386 scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
31387 sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
31388 sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
31389 sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
31390 sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
31391 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
31392 sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
31393 sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
31394 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
31395 sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
31396 sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
31397 sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
31398 sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
31399 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
31400 sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
31401 sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
31402 sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
31403 sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
31404 sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
31405 sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
31406 sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
31407 snames.ads, sprint.adb, sprint.ads, stand.adb,
31408 stand.ads, stringt.adb, stringt.ads, style.adb,
31409 style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
31410 switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
31411 switch-m.ads, switch.adb, switch.ads, system.ads,
31412 table.adb, table.ads, targparm.adb, targparm.ads,
31413 tbuild.adb, tbuild.ads, text_io.ads, trans.c,
31414 tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
31415 tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
31416 ttypef.ads, ttypes.ads, types.adb, types.ads,
31417 uintp.adb, uintp.ads, uname.adb, uname.ads,
31418 unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
31419 usage.adb, usage.ads, validsw.adb, validsw.ads,
31420 widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
31421 xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
31422 xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
31423 formatting and other trivial changes from ACT.
31425 2003-04-12 Zack Weinberg <zack@codesourcery.com>
31427 * gigi.h, utils2.c (build_constructor):
31428 Rename gnat_build_constructor. Use build_constructor.
31429 * decl.c (gnat_to_gnu_entity)
31430 * trans.c (tree_transform, pos_to_constructor, extract_values)
31431 * ada/utils.c (build_template, convert_to_fat_pointer, convert)
31432 (unchecked_convert)
31433 * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
31434 (fill_vms_descriptor):
31437 2003-04-06 Zack Weinberg <zack@codesourcery.com>
31439 * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
31440 * misc.c (gnat_tree_size): New function.
31441 (LANG_HOOKS_TREE_SIZE): Override.
31443 2003-04-03 Jason Merrill <jason@redhat.com>
31445 * misc.c (gnat_adjust_rli): #if 0.
31447 2003-03-31 Geert Bosch <bosch@gnat.com>
31450 * link.c : Fix misspelled "const" keyword
31452 2003-03-23 Mark Mitchell <mark@codesourcery.com>
31455 * utils2.c: Adjust calls to put_var_into_stack.
31457 2003-03-12 Nathanael Nerode <neroden@gcc.gnu.org>
31459 * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
31461 2003-03-08 Neil Booth <neil@daikokuya.co.uk>
31463 * misc.c (gnat_init): Update for new prototype.
31465 2003-03-05 Olivier Hainque <hainque@gnat.com>
31468 * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
31469 warning, and fix return type for the IN_RTS && !SJLJ case.
31471 2003-03-04 Tom Tromey <tromey@redhat.com>
31473 * Make-lang.in (ada.tags): New target.
31475 2003-03-04 Olivier Hainque <hainque@act-europe.fr>
31478 * a-except.adb (Unwind_RaiseException): Import a GNAT specific
31479 wrapper, which name remains constant whatever underlying GCC
31482 * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
31483 the stable interface needed for a-except.
31485 2003-03-02 Andreas Jaeger <aj@suse.de>
31487 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31488 gnat_ug_wnt.texi: Regenerate.
31490 2003-03-02 Laurent Guerby <guerby@acm.org>
31492 * Makefile.in (install-gnatlib): Match previous change there
31495 2003-02-28 Andreas Schwab <schwab@suse.de>
31497 * Make-lang.in (install-gnatlib): Change to ada directory before
31498 running make instead of using ada/Makefile directly.
31500 2003-02-18 Ben Elliston <bje@redhat.com>
31502 Part of PR ada/9406
31503 * gnat_ug.texi (Binder output file): Grammar fix.
31505 2003-02-18 Ben Elliston <bje@redhat.com>
31508 * 5qtaprop.adb (Sleep): Fix typo in comment.
31510 2003-02-04 Joseph S. Myers <jsm@polyomino.org.uk>
31512 * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
31513 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31514 gnat_ug_wnt.texi: Regenerate.
31516 2003-02-03 Christian Cornelssen <ccorn@cs.tu-berlin.de>
31518 * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
31519 be created if necessary.
31520 (ada.install-common): Let $(DESTDIR)$(bindir) be created
31521 if necessary. Remove erroneous and redundant gnatchop
31522 installation commands. Test for gnatdll before attempting
31524 (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
31525 and gnatdll from all plausible locations.
31527 2003-02-01 Richard Sandiford <rsandifo@redhat.com>
31529 * utils2.c (build_unary_op): Don't check flag_volatile.
31530 * gnat_ug.texi: Remove -fvolatile from example.
31531 * gnat_ug_vxw.texi: Likewise.
31533 2003-01-29 Laurent Guerby <guerby@acm.org>
31536 * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
31537 * Makefile.in: match previous change.
31538 * Make-lang.in: match previous change.
31540 2003-01-29 Joel Sherrill <joel@OARcorp.com>
31542 * 5rosinte.ads: Add SIGXCPU.
31543 * 5rtpopsp.adb: New file.
31544 * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
31545 * Makefile.in: Recognize more RTEMS targets and add the RTEMS
31546 specific file 5rtpopsp.adb.
31547 * adaint.h: Add include of <stdio.h> when target is RTEMS. This
31548 is likely needed for all newlib targets.
31549 * init.c: Add RTEMS specific version of __gnat_initialize().
31551 2003-01-28 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
31553 * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
31555 2003-01-27 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
31557 * init.c (__gnat_error_handler): Make msg const.
31559 * gmem.c (convert_addresses): Move declaration ...
31560 * adaint.h: ... here.
31561 * adaint.c (convert_addresses): Adapt addrs type to match
31564 * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
31566 2003-01-24 Andreas Schwab <schwab@suse.de>
31568 * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
31569 size_t to avoid warning.
31571 2003-01-21 Zack Weinberg <zack@codesourcery.com>
31573 * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
31575 2003-01-09 Geoffrey Keating <geoffk@apple.com>
31577 * gnat_rm.texi: Remove RCS version number.
31579 * ada-tree.h (union lang_tree_node): Add chain_next option.
31581 2003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
31583 * Make-lang.in (ada.install-info, ada.install-common,
31584 ada.uninstall): Prepend $(DESTDIR) to the destination
31585 directory in all (un)installation commands.
31586 * Makefile.in (install-gnatlib, install-rts): Ditto.
31588 2002-12-28 Joseph S. Myers <jsm@polyomino.org.uk>
31590 * gnat_rm.texi, gnat_ug.texi: Use @copying.
31591 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
31592 gnat_ug_wnt.texi: Regenerate.
31594 2002-12-23 Joseph S. Myers <jsm@polyomino.org.uk>
31596 * gnat_rm.texi: Include gcc-common.texi. Use GCC version number
31598 * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
31599 $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
31600 $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
31601 ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
31602 ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
31603 $(srcdir)/doc/include/gcc-common.texi.
31605 2002-12-15 Geert Bosch <bosch@gnat.com>
31607 * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
31609 2002-12-14 Geert Bosch <bosch@gnat.com>
31612 * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
31613 case of a body created for a Renaming_As_Body, on which
31614 conformance checks are not performed.
31616 2002-11-30 Zack Weinberg <zack@codesourcery.com>
31618 * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
31619 utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
31620 not already included.
31621 * Make-lang.in: Update dependencies.
31623 2002-11-18 Nathanael Nerode <neroden@gcc.gnu.org>
31624 * adaint.c (__gnat_tmp_name): Better, but good enough for now,
31625 solution to buffer overflow bug on GNU/Linux.
31627 2002-11-14 Nathanael Nerode <neroden@gcc.gnu.org>
31631 * bindgen.adb: Remove all references to Public_Version.
31632 * comperr.adb: Remove all references to Public_Version and
31633 GNATPRO_Version; correct bug reporting instructions.
31634 * comperr.ads: Change to match bug box.
31635 * gnatvsn.ads: Remove all references to Public version and
31638 2002-11-13 Nathanael Nerode <neroden@gcc.gnu.org>
31641 * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
31645 * config-lang.in: Remove diff_excludes.
31647 2002-11-05 Graham Stott <graham.stott@btinternet.com>
31650 * trans.c (gnu_pending_elaboration_lists): New GC root.
31651 (build_unit_elab): Use..
31653 2002-10-30 Geert Bosch <bosch@gnat.com>
31656 * misc.c : Include optabs.h
31658 * Make-lang.in (misc.o): Add dependency on optabs.h
31660 2002-10-29 Geert Bosch <bosch@gnat.com>
31663 * Make-lang.in (gnatbind): Depend on CONFIG_H
31665 2002-10-29 Geert bosch <bosch@gnat.com>
31668 * misc.c: Unrevert misc.c (1.13)
31670 2002-10-28 Nathanael Nerode <neroden@gcc.gnu.org>
31672 * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
31673 maintainership comments.
31675 2002-09-25 Nathanael Nerode <neroden@gcc.gnu.org>
31678 * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
31679 5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
31680 5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
31681 7staprop.adb: Correct statements in comments about
31682 maintainership of GNAT.
31685 * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
31686 gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
31687 osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
31688 osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
31689 s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
31690 s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
31691 sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
31692 switch-c.ads switch-m.adb switch-m.ads: Correct statements in
31693 comments about maintainership of GNAT.
31695 PR ada/6919 (forward port of patch for PR ada/5904)
31696 * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
31697 4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
31698 4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
31699 4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
31700 4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
31701 4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
31702 4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
31703 52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
31704 5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
31705 5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
31706 5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
31707 5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
31708 5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
31709 5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
31710 5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
31711 5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
31712 5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
31713 5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
31714 5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
31715 5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
31716 5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
31717 5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
31718 5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
31719 5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
31720 5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
31721 5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
31722 5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
31723 5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
31724 7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
31725 a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
31726 a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
31727 a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
31728 a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
31729 a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
31730 a-except.adb a-except.ads a-excpol.adb a-exctra.adb
31731 a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
31732 a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
31733 a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
31734 a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
31735 a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
31736 a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
31737 a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
31738 a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
31739 a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
31740 a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
31741 a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
31742 a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
31743 a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
31744 a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
31745 a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
31746 a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
31747 a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
31748 a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
31749 a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
31750 a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
31751 a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
31752 a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
31753 a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
31754 a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
31755 a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
31756 a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
31757 a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
31758 a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
31759 a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
31760 a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
31761 a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
31762 a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
31763 a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
31764 adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
31765 alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
31766 back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
31767 binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
31768 bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
31769 ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
31770 csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
31771 cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
31772 debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
31773 einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
31774 errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
31775 exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
31776 exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
31777 exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
31778 exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
31779 exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
31780 exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
31781 exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
31782 exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
31783 exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
31784 exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
31785 exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
31786 exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
31787 exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
31788 final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
31789 fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
31790 freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
31791 g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
31792 g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
31793 gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
31794 gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
31795 gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
31796 gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
31797 gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
31798 gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
31799 i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
31800 i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
31801 i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
31802 i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
31803 impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
31804 itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
31805 lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
31806 lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
31807 lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
31808 lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
31809 makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
31810 namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
31811 nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
31812 osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
31813 par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
31814 par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
31815 par-endh.adb par-labl.adb par-load.adb par-prag.adb
31816 par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
31817 prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
31818 prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
31819 prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
31820 prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
31821 prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
31822 prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
31823 repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
31824 rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
31825 s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
31826 s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
31827 s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
31828 s-direio.adb s-direio.ads s-except.ads s-exctab.adb
31829 s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
31830 s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
31831 s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
31832 s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
31833 s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
31834 s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
31835 s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
31836 s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
31837 s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
31838 s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
31839 s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
31840 s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
31841 s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
31842 s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
31843 s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
31844 s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
31845 s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
31846 s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
31847 s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
31848 s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
31849 s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
31850 s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
31851 s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
31852 s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
31853 s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
31854 s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
31855 s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
31856 s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
31857 s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
31858 s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
31859 s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
31860 s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
31861 s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
31862 s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
31863 s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
31864 s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
31865 s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
31866 s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
31867 s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
31868 s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
31869 s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
31870 s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
31871 s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
31872 s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
31873 s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
31874 s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
31875 s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
31876 s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
31877 s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
31878 s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
31879 s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
31880 s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
31881 s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
31882 s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
31883 s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
31884 s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
31885 s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
31886 s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
31887 s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
31888 s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
31889 s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
31890 s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
31891 s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
31892 s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
31893 s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
31894 s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
31895 s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
31896 s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
31897 s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
31898 s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
31899 s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
31900 s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
31901 s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
31902 s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
31903 s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
31904 s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
31905 s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
31906 s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
31907 scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
31908 sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
31909 sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
31910 sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
31911 sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
31912 sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
31913 sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
31914 sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
31915 sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
31916 sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
31917 sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
31918 sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
31919 sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
31920 sem_type.adb sem_type.ads sem_util.adb sem_util.ads
31921 sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
31922 sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
31923 sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
31924 sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
31925 snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
31926 stringt.ads stringt.h style.adb style.ads stylesw.adb
31927 stylesw.ads switch.adb switch.ads sysdep.c system.ads
31928 table.adb table.ads targparm.adb targparm.ads targtyps.c
31929 tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
31930 tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
31931 treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
31932 types.adb types.ads types.h uintp.adb uintp.ads uintp.h
31933 uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
31934 usage.ads utils.c utils2.c validsw.adb validsw.ads
31935 widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
31936 xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
31937 xtreeprs.adb: Correct statements in comments about maintainership
31940 2002-09-23 Zack Weinberg <zack@codesourcery.com>
31942 * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
31943 * Makefile.in (TOOLS_LIBS): Add ../../version.o.
31944 * gnatvsn.ads: Gnat_Version_String is now a function.
31945 * gnatvsn.adb: New file. When asked for Gnat_Version_String,
31946 copy the C version_string into a String and return it.
31947 * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
31948 gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
31949 Remove pragma Ident (Gnat_Version_String). If this was the
31950 sole use of package Gnatvsn, remove the with statement too.
31951 * gnat1drv.adb: Tweak -gnatv output.
31953 2002-09-17 Richard Henderson <rth@redhat.com>
31955 * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
31956 * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
31957 * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
31958 (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
31959 * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
31960 and real_2expN instead of a loop.
31961 * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
31962 (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
31964 2002-08-25 Andre Leis <a.leis@gmx.net>
31965 David Billinghurst (David.Billinghurst@riotinto.com>
31967 * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
31969 2002-08-13 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
31971 * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
31972 Remove $(CONFIG_H) dependency.
31974 2002-08-08 Nathan Sidwell <nathan@codesourcery.com>
31976 * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
31978 2002-07-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
31980 * adadecode.c (ada_demangle): Use xstrdup in lieu of
31982 * misc.c (gnat_decode_option): Likewise.
31984 2002-07-15 Florian Weimer <fw@deneb.enyo.de>
31986 * make.adb (Add_Switch): Make Generic_Position a procedure. The
31987 function approach did not work well because of a side effect (the
31988 function call could reallocate the table which was being indexed
31989 using its result). Fixes ada/4851. [RESURRECTED]
31991 2002-07-01 Roger Sayle <roger@eyesopen.com>
31993 * ada/utils.c (builtin_function): Accept an additional parameter.
31995 2002-06-28 Andreas Jaeger <aj@suse.de>
31998 * Makefile.in: Fix typo in comment, patch by Adrian Knoth
32001 2002-06-24 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
32003 * Makefile.in (SHELL): Set to @SHELL@.
32005 2002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
32007 * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
32008 array size calculation.
32010 2002-06-04 Andreas Jaeger <aj@suse.de>
32012 * Make-lang.in (gnatbind): Readd rule that has been lost in last
32015 2002-06-03 Geoffrey Keating <geoffk@redhat.com>
32017 Merge from pch-branch:
32019 * config-lang.in (gtfiles): Add ada-tree.h.
32020 * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
32021 (SET_TYPE_MODULUS): New.
32022 (SET_TYPE_INDEX): New.
32023 (SET_TYPE_DIGITS_VALUE): New.
32024 (SET_TYPE_RM_SIZE): New.
32025 (SET_TYPE_UNCONSTRAINED_ARRAY): New.
32026 (SET_TYPE_ADA_SIZE): New.
32027 (SET_TYPE_ACTUAL_BOUNDS): New.
32028 (SET_DECL_CONST_CORRESPONDING_VAR): New.
32029 (SET_DECL_ORIGINAL_FIELD): New.
32030 (TREE_LOOP_ID): Correct typo.
32031 * decl.c: Use new macros.
32032 * utils.c: Include debug.h, use new macros.
32033 * utils2.c: Use new macros.
32035 * ada-tree.h: Update all macros for new tree description.
32036 (struct tree_loop_id): New.
32037 (union lang_tree_node): New.
32038 (struct lang_decl): New.
32039 (struct lang_type): New.
32040 * misc.c (gnat_mark_tree): Delete.
32041 (LANG_HOOKS_MARK_TREE): Delete.
32042 * trans.c (tree_transform): No longer any need to cast
32045 * utils.c (struct language_function): New dummy structure.
32047 * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
32048 (misc.o): Likewise.
32049 (utils.o): Likewise; also gtype-ada.h.
32050 * Make-lang.in (gnat1): Add dependency on s-gtype.
32051 (gnatbind): Add dependency on $(CONFIG_H).
32052 * utils.c: Correct last #include.
32053 (stuct e_stack): Remove unnecessary 'static'.
32054 (mark_e_stack): Remove unused prototype.
32056 * scn-nlit.adb: Remove whitespace after version number to
32057 keep lines under 80 chars.
32058 * snames.adb: Likewise.
32059 * treepr.ads: Likewise.
32061 * Makefile.in (decl.o): Include gt-ada-<filename>.h.
32062 (misc.o): Likewise.
32063 (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
32064 * config-lang.in (gtfiles): New.
32065 * decl.c: Use gengtype for roots.
32066 * gigi.h: Use gengtype for roots.
32067 * trans.c: Use gengtype for roots.
32068 * utils.c: Use gengtype for roots, marking. Include gtype-ada.h.
32070 2002-06-02 Gabriel Dos Reis <gdr@codesourcery.com>
32072 * misc.c (gnat_init): Adjust setting of internal_error_function.
32074 2002-06-01 Joseph S. Myers <jsm28@cam.ac.uk>
32076 * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
32077 * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
32078 gnat_ug_wnt.texi: Regenerate.
32080 2002-05-31 Florian Weimer <fw@deneb.enyo.de>
32082 * 5ntaprop.adb (with System.OS_Primitives): Remove.
32084 * cstreams.c (max_path_len): Move from here ...
32085 * adaint.c (__gnat_max_path_len): ... to here.
32086 * adaint.c (__gnat_max_path_len): Declare.
32087 * g-dirope.adb (Max_Path): Adjust.
32088 * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
32089 * i-cstrea.ads (max_path_len): Adjust.
32090 * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
32091 * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
32093 * Makefile.in, Make-lang.in: Documentation is now built in
32094 Make-lang.in. Store Info and generated Texinfo files in the
32096 * gnat_ug.texi: Remove CVS keywords, correct version number.
32097 Set file name correctly.
32099 * gnat_ug_*.texi: Add.
32100 * .cvsignore: Ignore generated Texinfo files.
32102 2002-05-30 Zack Weinberg <zack@codesourcery.com>
32104 * ada.h: Add MI guard macro.
32105 (SUBTYPE): Define constants with an anonymous enum, not static
32107 (IN): Cast constants to appropriate type before use.
32109 2002-05-26 Joseph S. Myers <jsm28@cam.ac.uk>
32111 * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
32114 2002-05-23 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32116 * Make-lang.in (CP, ECHO): Copy from Makefile.in.
32117 (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
32118 (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
32119 (ALL_ADA_CFLAGS): Likewise.
32120 (ADA_INCLUDES): Likewise.
32121 Adapt for new working dir.
32122 (GNATBIND): Use Makefile.in version.
32123 (.SUFFIXES): Copy from Makefile.in.
32124 (ada-warn): Define.
32125 (.adb.o, .ads.o): Copy from Makefile.in.
32126 Added $(OUTPUT_OPTION).
32127 (GNAT1_C_OBJS): Moved from Makefile.in.
32128 Prefix with ada subdir.
32129 (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
32130 (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
32131 Adapt for new working dir.
32132 (EXTRA_GNATBIND_OBJS): Likewise.
32133 (ADA_BACKEND): Moved from Makefile.in.
32134 Renamed to avoid conflict with global BACKEND.
32136 (TARGET_ADA_SRCS): Moved from Makefile.in.
32137 (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
32139 (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
32140 (ada_extra_files): Moved from Makefile.in.
32141 Prefix with ada subdir.
32142 (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
32143 (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
32144 (ada/nmake.ads): Likewise.
32145 (update-sources): Moved from Makefile.in.
32146 Prefix with ada subdir.
32147 (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
32148 (ADA_TREE_H): Likewise.
32149 (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
32150 (ada/memtrack.o): Likewise.
32151 (ada/adadecode.o): Likewise.
32152 Update dependencies.
32153 (ada/adaint.o): New.
32154 (ada/argv.o): Moved from Makefile.in.
32155 Prefix with ada subdir.
32156 Update dependencies.
32157 (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
32158 (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
32159 (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
32160 Prefix with ada subdir.
32161 (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
32162 (GNAT DEPENDENCIES): Regenerate.
32163 * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
32164 toplevel Makefile.in.
32165 (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
32166 (TARGET_ADA_SRCS): Removed.
32167 (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
32168 (GNATBIND_OBJS): Likewise.
32169 (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
32170 (BACKEND): Removed.
32171 (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
32172 (TREE_H): Likewise.
32173 (ada_extra_files): Likewise.
32174 (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
32175 (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
32176 (update-sources): Likewise.
32177 (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
32178 (ADA_TREE_H): Likewise.
32179 (adadecoce.o): Likewise.
32180 (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
32181 (GNAT DEPENDENCIES): Likewise.
32183 2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32185 * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
32186 * Makefile.in: Likewise.
32188 2002-05-14 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
32190 * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
32191 Restore $(CONFIG_H) and prefix.o dependencies.
32192 (ada.stage[1-4]): Depend on stage?-start.
32194 * Makefile.in (b_gnatb.c): Depend on interfac.o.
32196 2002-05-02 Jim Wilson <wilson@redhat.com>
32198 * utils.c (finish_record_type): Change record_size to record_type.
32200 2001-05-02 John David Anglin <dave@hiauly1.hia.nrc.ca>
32202 * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
32203 (ALL_ADA_CFLAGS): Define. Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
32204 ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
32206 2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
32208 * misc.c (gnat_parse_file): Update.
32210 2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
32212 * misc.c (gnat_init): Don't set lang_attribute_common.
32214 2002-04-21 Joseph S. Myers <jsm28@cam.ac.uk>
32216 * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
32218 2002-04-21 Florian Weimer <fw@deneb.enyo.de>
32220 * gnat_ug.texi: New file.
32222 * gnat_rm.texi: Do not include texiplus.texi. Include fdl.texi
32223 instead of gfdl.texi
32225 * xgnatug.adb, ug_words: New files.
32227 * Makefile.in (doc, dvi): New targets. Build gnat_ug_*,
32228 gnat_rm and gnat-style manuals.
32230 2002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
32232 * gigi.h (incomplete_type_error): Remove.
32233 * utils.c (incomplete_type_error): Remove.
32235 2002-04-16 Mark Mitchell <mark@codesourcery.com>
32237 * trans.c (tree_transform): Add has_scope argument to
32238 expand_start_stmt_expr.
32240 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
32242 * gigi.h (truthvalue_conversion): Rename.
32243 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
32244 * trans.c (tree_transform): Update.
32245 * utils2.c (truthvalue_conversion): Rename, update.
32246 (build_binary_op, build_unary_op): Update.
32248 2002-04-04 Laurent Guerby <guerby@acm.org>
32250 * make.adb: Implement -margs, remove restriction about file name placement.
32251 * makeusg.adb: Documentation update.
32252 * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
32253 * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
32255 2002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
32257 * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
32258 (builtin_function): Similarly.
32260 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
32262 * decl.c (gnat_to_gnu_entity): Update.
32263 * gigi.h (mark_addressable): Rename.
32264 * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
32265 * trans.c (tree_transform): Update.
32266 * utils.c (create_var_decl): Update.
32267 * util2.c (build_binary_op, build_unary_op,
32268 fill_vms_descriptor): Update.
32269 (mark_addressable): Rename, update.
32271 2002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
32273 * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
32275 * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
32276 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
32277 * trans.c (tree_transform, convert_with_check): Update.
32278 * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
32281 2002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
32283 * gigi.h (finish_incomplete_decl): Rename.
32284 * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
32285 * utils.c (gnat_init_decl_processing): Don't set hook.
32286 (finish_incomplete_decl): Rename.
32288 2002-03-29 Andreas Schwab <schwab@suse.de>
32290 * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
32293 2001-03-28 Robert Dewar <dewar@gnat.com>
32296 (Remove_Checks): New procedure
32299 (Remove_Checks): New procedure
32302 Use new Duplicate_Subexpr functions
32303 (Duplicate_Subexpr_No_Checks): New procedure
32304 (Duplicate_Subexpr_No_Checks_Orig): New procedure
32305 (Duplicate_Subexpr): Restore original form (checks duplicated)
32306 (Duplicate_Subexpr): Call Remove_Checks
32309 (Duplicate_Subexpr_No_Checks): New procedure
32310 (Duplicate_Subexpr_No_Checks_Orig): New procedure
32311 Add 2002 to copyright notice
32313 * sem_util.adb: Use new Duplicate_Subexpr functions
32316 (Eval_Indexed_Component): This is the place to call
32317 Constant_Array_Ref and to replace the value. We simply merge
32318 the code of this function in here, since it is now no longer
32319 used elsewhere. This fixes the problem of the back end not
32320 realizing we were clever enough to see that this was
32322 (Expr_Val): Remove call to Constant_Array_Ref
32323 (Expr_Rep_Val): Remove call to Constant_Array_Ref
32325 (Constant_Array_Ref): Deal with string literals (patch
32326 suggested by Zack Weinberg on the gcc list)
32328 2001-03-28 Ed Schonberg <schonber@gnat.com>
32330 * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
32331 Duplicate_Subexpr_Move_Checks.
32333 * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
32334 Duplicate_Subexpr_Move_Checks.
32336 * sem_eval.adb: (Constant_Array_Ref): Verify that constant
32337 value of array exists before retrieving it (it may a private
32338 protected component in a function).
32340 2002-03-28 Geert Bosch <bosch@gnat.com>
32342 * prj-pp.adb : New file.
32344 * prj-pp.ads : New file.
32346 2002-03-28 Andreas Jaeger <aj@suse.de>
32348 * Makefile.in (stamp-sdefault): Fix path for Makefile.
32350 2002-03-28 Neil Booth <neil@daikokuya.demon.co.uk>
32352 * misc.c (gnat_expand_expr): Move prototype.
32354 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
32356 * misc.c (insert_default_attributes): Remove.
32358 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
32360 * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
32361 (gnat_init): Don't set hook.
32362 (gnat_expand_expr): Fix prototype.
32364 2002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
32366 * misc.c (ggc_p): Remove.
32368 2002-03-27 Geert Bosch <bosch@gnat.com>
32370 * prj-makr.ads, prj-makr.adb : New files.
32372 2002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
32374 * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
32375 (lang_mark_tree): Make static, rename.
32377 2002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
32379 * misc.c (maybe_build_cleanup): Remove.
32381 2002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
32383 * gigi.h (yyparse): Remove.
32385 2002-03-23 Florian Weimer <fw@deneb.enyo.de>
32387 * gnat_rm.texi: Sync with ACT version.
32388 (From Ben Brosgol <brosgol@gnat.com>)
32390 2002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
32392 * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
32393 (gnat_init): Remove old hook.
32395 2002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
32397 * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
32398 (yyparse): Rename gnat_parse_file.
32400 2002-03-14 Geoffrey Keating <geoffk@redhat.com>
32402 Delete all lines containing "$Revision:".
32403 * xeinfo.adb: Don't look for revision numbers.
32404 * xnmake.adb: Likewise.
32405 * xsinfo.adb: Likewise.
32406 * xsnames.adb: Likewise.
32407 * xtreeprs.adb: Likewise.
32409 2002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
32411 * misc.c (gnat_tree_code_type, gnat_tree_code_length,
32412 gnat_tree_code_name): Delete.
32413 (tree_code_type, tree_code_length, tree_code_name): Define.
32414 (gnat_init): Don't try to copy into the various tree_code
32417 2002-03-11 Richard Henderson <rth@redhat.com>
32419 * Makefile.in (.NOTPARALLEL): Add fake tag.
32421 2002-03-07 Geert Bosch <bosch@gnat.com>
32423 * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
32424 s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
32425 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
32426 switch-m.adb, switch-m.ads : New files.
32428 2002-03-07 Geert Bosch <bosch@gnat.com>
32430 * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
32431 4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
32432 4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
32433 4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
32434 5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
32435 5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
32436 5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
32437 5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
32438 5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
32439 5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
32440 5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
32441 5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
32442 5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
32443 5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
32444 5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
32445 5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
32446 5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
32447 5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
32448 5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
32449 5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
32450 7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
32451 Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
32452 a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
32453 a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
32454 a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
32455 a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
32456 a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
32457 a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
32458 a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
32459 adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
32460 atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
32461 bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
32462 csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
32463 einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
32464 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
32465 exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
32466 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
32467 exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
32468 exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
32469 exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
32470 expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
32471 freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
32472 g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
32473 g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
32474 g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
32475 g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
32476 g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
32477 g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
32478 gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
32479 gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
32480 gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
32481 i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
32482 impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
32483 lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
32484 lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
32485 memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
32486 mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
32487 nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
32488 output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
32489 par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
32490 prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
32491 prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
32492 prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
32493 rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
32494 s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
32495 s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
32496 s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
32497 s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
32498 s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
32499 s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
32500 s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
32501 s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
32502 s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
32503 s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
32504 s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
32505 s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
32506 s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
32507 s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
32508 s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
32509 sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
32510 sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
32511 sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
32512 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
32513 sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
32514 sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
32515 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
32516 sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
32517 sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
32518 sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
32519 snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
32520 stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
32521 table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
32522 tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
32523 treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
32524 types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
32525 utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
32526 xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
32528 * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
32529 g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
32530 mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
32531 osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
32533 * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
32534 5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
32536 * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
32537 to mdll-fil.ad[bs] and mdll-util.ad[bs]
32539 * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
32540 from mdllfile.ad[bs] and mdlltool.ad[bs]
32542 2002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
32544 * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
32545 lieu of explicit sizeof/sizeof.
32547 2002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
32549 * misc.c (copy_lang_decl): Remove.
32551 2002-02-27 Zack Weinberg <zack@codesourcery.com>
32553 * misc.c: Delete traditional-mode-related code copied from the
32554 C front end but not used, or used only to permit the compiler
32557 2002-02-07 Richard Henderson <rth@redhat.com>
32559 * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
32560 * adaint.h (__gnat_to_gm_time): Update prototype.
32562 2002-01-30 Richard Henderson <rth@redhat.com>
32564 * trans.c (tree_transform) [N_Loop_Statement]: Use
32565 expand_exit_loop_top_cond.
32567 2001-12-23 Richard Henderson <rth@redhat.com>
32569 * utils.c (end_subprog_body): Push GC context around
32570 rest_of_compilation for nested functions.
32572 2001-12-23 Richard Henderson <rth@redhat.com>
32574 * 5nosinte.ads: Get definition of "int" from Interfaces.C.
32576 2001-12-23 Florian Weimer <fw@deneb.enyo.de>
32578 * gnat-style.texi (Declarations and Types): Remove ancient style
32579 rule which was mandated by code generation issues.
32581 * gnat-style.texi (header): Add @dircategory, @direntry.
32582 (title page): Remove date.
32583 (general) Add @./@: where approriate, and two spaces after the
32584 full stop at the end of a sentence. Use @samp markup when
32585 referring concrete lexical entities (keywords, attribute names
32586 etc.), and @syntax for ARM grammar elements. Use @r for English
32587 text in comments. Use @emph for emphasis. Change "if-statements"
32588 etc. to "if statements" (without @samp). Break long lines. Make
32589 casing of section names consistent.
32590 (Identifiers): Use @samp markup for variable names.
32591 (Comments): Use @samp markup for comment characters. Line-end
32592 comments may follow any Ada code, not just statements. Fix
32593 misspelling of "Integer" as "integer".
32594 (Loop statements): Do not use variable name "I", use "J".
32595 (Subprogram Declarations): Document alignment.
32596 (Subprogram Bodies, Block statements): Document empty line before
32599 2001-12-22 Florian Weimer <fw@deneb.enyo.de>
32601 * make.adb (Add_Switch): Make Generic_Position a procedure. The
32602 function approach did not work well because of a side effect (the
32603 function call could reallocate the table which was being indexed
32604 using its result). Fixes ada/4851.
32606 2001-12-19 Robert Dewar <dewar@gnat.com>
32608 * bindgen.adb: Minor reformatting
32610 * cstand.adb: Minor reformatting
32612 * fmap.adb: Minor reformatting
32613 Change name from Add for Add_To_File_Map (Add is much too generic)
32614 Change Path_Name_Of to Mapped_Path_Name
32615 Change File_Name_Of to Mapped_File_Name
32616 Fix copyright dates in header
32619 Change name from Add for Add_To_File_Map (Add is much too generic)
32620 Change Path_Name_Of to Mapped_Path_Name
32621 Change File_Name_Of to Mapped_File_Name
32622 Fix copyright dates in header
32624 * fname-uf.adb: Minor reformatting. New names of stuff in Fmap.
32625 Add use clause for Fmap.
32627 * make.adb: Minor reformatting
32629 * osint.adb: Minor reformatting. Change of names in Fmap.
32630 Add use clause for Fmap.
32632 * prj-env.adb: Minor reformatting
32634 * prj-env.ads: Minor reformatting
32636 * switch.adb: Minor reformatting. Do proper raise of Bad_Switch if
32637 error found (there were odd exceptions to this general rule in
32638 -gnatec/-gnatem processing)
32640 2001-12-19 Olivier Hainque <hainque@gnat.com>
32642 * raise.c (__gnat_eh_personality): Exception handling personality
32643 routine for Ada. Still in rough state, inspired from the C++ version
32644 and still containing a bunch of debugging artifacts.
32645 (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
32646 inspired from the C++ library.
32648 * raise.c (eh_personality): Add comments. Part of work for the GCC 3
32649 exception handling integration.
32651 2001-12-19 Arnaud Charlet <charlet@gnat.com>
32653 * Makefile.in: Remove use of 5smastop.adb which is obsolete.
32654 (HIE_SOURCES): Add s-secsta.ad{s,b}.
32655 (HIE_OBJS): Add s-fat*.o
32656 (RAVEN_SOURCES): Remove files that are no longer required. Add
32657 interrupt handling files.
32658 (RAVEN_MOD): Removed, no longer needed.
32660 2001-12-19 Robert Dewar <dewar@gnat.com>
32662 * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
32663 Add 2001 to copyright date
32665 * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
32666 need to force universal inlining for these cases.
32668 2001-12-19 Arnaud Charlet <charlet@gnat.com>
32670 * s-taprob.adb: Minor clean ups so that this unit can be used in
32673 * exp_ch7.adb: Allow use of secondary stack in HI mode.
32674 Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
32676 2001-12-19 Vincent Celier <celier@gnat.com>
32678 * prj-tree.ads (Project_Node_Record): Add comments for components
32679 Pkg_Id and Case_Insensitive.
32681 2001-12-19 Pascal Obry <obry@gnat.com>
32683 * g-socket.adb: Minor reformatting. Found while reading code.
32685 2001-12-19 Robert Dewar <dewar@gnat.com>
32687 * prj-tree.ads: Minor reformatting
32689 2001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
32691 * config-lang.in (diff_excludes): Remove.
32693 2001-12-17 Ed Schonberg <schonber@gnat.com>
32695 * sem_res.adb (Resolve_Selected_Component): do not generate a
32696 discriminant check if the selected component is a component of
32697 the argument of an initialization procedure.
32699 * trans.c (tree_transform, case of arithmetic operators): If result
32700 type is private, the gnu_type is the base type of the full view,
32701 given that the full view itself may be a subtype.
32703 2001-12-17 Robert Dewar <dewar@gnat.com>
32705 * sem_res.adb: Minor reformatting
32707 * trans.c (tree_transform, case N_Real_Literal): Add missing third
32708 parameter in call to Machine (unknown horrible effects from this
32711 * urealp.h: Add definition of Round_Even for call to Machine
32712 Add third parameter for Machine
32714 2001-12-17 Ed Schonberg <schonber@gnat.com>
32716 * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
32717 predefined units in No_Run_Time mode.
32719 2001-12-17 Richard Kenner <kenner@gnat.com>
32721 * misc.c (insn-codes.h): Now include.
32723 2001-12-17 Olivier Hainque <hainque@gnat.com>
32725 * a-except.adb: Preparation work for future integration of the GCC 3
32726 exception handling mechanism
32727 (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
32728 to factorize previous code sequences and make them externally callable,
32729 e.g. for the Ada personality routine when the GCC 3 mechanism is used.
32730 (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
32731 Use the new notification routines.
32733 2001-12-17 Emmanuel Briot <briot@gnat.com>
32735 * prj-tree.ads (First_Choice_Of): Document the when others case
32737 2001-12-17 Arnaud Charlet <charlet@gnat.com>
32739 * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
32740 HI-E mode, in order to support Ravenscar profile properly.
32742 * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
32743 mode on 32 bits targets.
32745 2001-12-17 Vincent Celier <celier@gnat.com>
32747 * fmap.adb: Initial version.
32749 * fmap.ads: Initial version.
32751 * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
32752 If search is successfully done, add to mapping.
32754 * frontend.adb: Initialize the mapping if a -gnatem switch was used.
32757 (Gnatmake): Add new local variable Mapping_File_Name.
32758 Create mapping file when using project file(s).
32759 Delete mapping file before exiting.
32761 * opt.ads (Mapping_File_Name): New variable
32763 * osint.adb (Find_File): Use path name found in mapping, if any.
32765 * prj-env.adb (Create_Mapping_File): New procedure
32767 * prj-env.ads (Create_Mapping_File): New procedure.
32769 * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
32772 * usage.adb: Add entry for new switch -gnatem.
32774 * Makefile.in: Add dependencies for fmap.o.
32776 2001-12-17 Ed Schonberg <schonber@gnat.com>
32778 * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
32779 is a package instantiation rewritten as a package body.
32780 (Install_Withed_Unit): Undo previous change, now redundant.
32782 2001-12-17 Gary Dismukes <dismukes@gnat.com>
32785 (Compute_Length): Move conversion to Unsigned to callers.
32786 (Get_Max_Size): Convert Len expression to Unsigned after calls to
32787 Compute_Length and Determine_Range.
32788 (Layout_Array_Type): Convert Len expression to Unsigned after calls to
32789 Compute_Length and Determine_Range.
32790 Above changes fix problem with length computation for supernull arrays
32791 where Max (Len, 0) wasn't getting applied due to the Unsigned
32792 conversion used by Compute_Length.
32794 2001-12-17 Arnaud Charlet <charlet@gnat.com>
32797 (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
32798 System.Secondary_Stack.
32799 (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
32801 Remove unused entity RE_Exception_Data.
32803 * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
32805 * rident.ads (No_Secondary_Stack): New restriction.
32807 2001-12-17 Joel Brobecker <brobecke@gnat.com>
32809 * gnat_rm.texi: Fix minor typos. Found while reading the section
32810 regarding "Bit_Order Clauses" that was sent to a customer.
32811 Very interesting documentation!
32813 2001-12-17 Robert Dewar <dewar@gnat.com>
32815 * sem_case.adb (Choice_Image): Avoid creating improper character
32816 literal names by using the routine Set_Character_Literal_Name. This
32817 fixes bombs in certain error message cases.
32819 2001-12-17 Arnaud Charlet <charlet@gnat.com>
32821 * a-reatim.adb: Minor reformatting.
32823 2001-12-17 Ed Schonberg <schonber@gnat.com>
32825 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
32826 case where the formal is an extension of another formal in the current
32827 unit or in a parent generic unit.
32829 2001-12-17 Arnaud Charlet <charlet@gnat.com>
32831 * s-tposen.adb: Update comments. Minor reformatting.
32832 Minor code clean up.
32834 * s-tarest.adb: Update comments. Minor code reorganization.
32836 2001-12-17 Gary Dismukes <dismukes@gnat.com>
32838 * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
32841 2001-12-17 Robert Dewar <dewar@gnat.com>
32843 * exp_attr.adb: Minor reformatting
32845 2001-12-17 Ed Schonberg <schonber@gnat.com>
32847 * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
32848 derivations nested within a child unit: verify that the parent
32849 type is declared in an outer scope.
32851 2001-12-17 Robert Dewar <dewar@gnat.com>
32853 * sem_ch12.adb: Minor reformatting
32855 2001-12-17 Ed Schonberg <schonber@gnat.com>
32857 * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
32858 warning if current unit is a predefined one, from which bodies may
32861 2001-12-17 Robert Dewar <dewar@gnat.com>
32863 * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
32864 Fix header format. Add 2001 to copyright date.
32866 * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
32867 which caused CE during compilation if checks were enabled.
32869 2001-12-17 Vincent Celier <celier@gnat.com>
32872 (Switches_Of): New function
32873 (Test_If_Relative_Path): New procedure
32874 (Add_Switches): Use new function Switches_Of
32875 (Collect_Arguments_And_Compile): Use new function Switches_Of.
32876 When using a project file, test if there are any relative
32877 search path. Fail if there are any.
32878 (Gnatmake): Only add switches for the primary directory when not using
32879 a project file. When using a project file, change directory to the
32880 object directory of the main project file. When using a project file,
32881 test if there are any relative search path. Fail if there are any.
32882 When using a project file, fail if specified executable is relative
32883 path with directory information, and prepend executable, if not
32884 specified as an absolute path, with the exec directory. Make sure
32885 that only one -o switch is transmitted to the linker.
32887 * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
32890 (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
32891 when using a non standard naming scheme.
32892 (Check_Ada_Naming_Scheme): Make sure that error messages
32893 do not raise exceptions.
32894 (Is_Illegal_Append): Return True if there is no dot in the suffix.
32895 (Language_Independent_Check): Check the exec directory.
32897 * prj.adb (Project_Empty): Add new component Exec_Directory
32900 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
32901 (Project_Data): Add component Exec_Directory
32903 * snames.adb: Updated to match snames.ads revision 1.215
32905 * snames.ads: Added Exec_Dir
32907 2001-12-17 Robert Dewar <dewar@gnat.com>
32909 * make.adb: Minor reformatting
32911 * prj-nmsc.adb: Minor reformatting
32913 * snames.adb: Updated to match snames.ads
32915 * snames.ads: Alphebetize entries for project file
32917 2001-12-17 Ed Schonberg <schonber@gnat.com>
32919 * trans.c (process_freeze_entity): Do nothing if the entity is a
32920 subprogram that was already elaborated.
32922 2001-12-17 Richard Kenner <kenner@gnat.com>
32924 * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
32925 and Esize if object is referenced via pointer.
32927 2001-12-17 Ed Schonberg <schonber@gnat.com>
32929 * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
32930 is discrete before analyzing choices.
32932 2001-12-17 Joel Brobecker <brobecke@gnat.com>
32934 * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
32935 containing the name of the Ada Main Program. This string is mainly
32936 intended for the debugger.
32937 (Gen_Output_File_C): Do the equivalent change when generating a C file.
32939 2001-12-17 Robert Dewar <dewar@gnat.com>
32941 * ali.adb: Set new Dummy_Entry field in dependency entry
32943 * ali.ads: Add Dummy_Entry field to source dependency table
32945 * bcheck.adb (Check_Consistency): Ignore dummy D lines
32947 * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
32949 * lib-writ.ads: Document dummy D lines for missing files.
32951 * types.ads: (Dummy_Time_Stamp): New value for non-existant files
32953 2001-12-17 Robert Dewar <dewar@gnat.com>
32955 * ali.adb: Type reference does not reset current file.
32957 * ali.adb: Recognize and scan renaming reference
32959 * ali.ads: Add spec for storing renaming references.
32961 * lib-xref.ads: Add documentation for handling of renaming references
32963 * lib-xref.adb: Implement output of renaming reference.
32966 (Determine_Range): Document local variables
32967 (Determine_Range): Make sure Hbound is initialized. It looks as though
32968 there could be a real problem here with an uninitialized reference
32969 to Hbound, but no actual example of failure has been found.
32971 2001-12-17 Laurent Pautet <pautet@gnat.com>
32974 Fix comment of Shutdown_Socket and Close_Socket. These functions
32975 should not fail silently because if they are called twice, this
32976 probably means that there is a race condition in the user program.
32977 Anyway, this behaviour is consistent with the rest of this unit.
32978 When an error occurs, an exception is raised with the error message
32979 as exception message.
32981 2001-12-17 Robert Dewar <dewar@gnat.com>
32983 * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
32984 that it happens before modification of Sloc values for -gnatD.
32986 * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
32987 so that it happens before modification of Sloc values for -gnatD.
32989 * switch.adb: Minor reformatting
32991 2001-12-15 Richard Henderson <rth@redhat.com>
32993 * sem_ch7.adb: Wrap comment.
32995 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
32997 * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
32998 5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
32999 5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
33000 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
33001 5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
33002 7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
33003 a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
33004 a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
33005 cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
33006 exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
33007 exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
33008 g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
33009 gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
33010 make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
33011 par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
33012 repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
33013 s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
33014 s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
33015 s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
33016 s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
33017 sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
33018 sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
33019 sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
33020 sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
33023 2001-12-14 Vincent Celier <celier@gnat.com>
33025 * osint.adb(Create_Debug_File): When an object file is specified,
33026 put the .dg file in the same directory as the object file.
33028 2001-12-14 Robert Dewar <dewar@gnat.com>
33030 * osint.adb: Minor reformatting
33032 * lib-xref.adb (Output_Instantiation): New procedure to generate
33033 instantiation references.
33035 * lib-xref.ads: Add documentation of handling of generic references.
33037 * ali.adb (Read_Instantiation_Ref): New procedure to read
33038 instantiation references
33040 * ali.ads: Add spec for storing instantiation references
33042 * bindusg.adb: Minor reformatting
33044 * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33046 * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33048 * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33050 * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
33054 Add 2001 to copyright date
33055 Add entry for Latin-5 (Cyrillic ISO-8859-5)
33057 2001-12-14 Matt Gingell <gingell@gnat.com>
33059 * adaint.c: mktemp is a macro on Lynx and can not be used as an
33062 2001-12-14 Richard Kenner <kenner@gnat.com>
33064 * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
33065 if operand is CONSTRUCTOR.
33067 2001-12-14 Ed Schonberg <schonber@gnat.com>
33069 * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
33070 before emiting check on right-hand side, so that exception information
33073 2001-12-14 Richard Kenner <kenner@gnat.com>
33075 * utils.c (create_var_decl): Throw away initializing expression
33076 if just annotating types and non-constant.
33078 2001-12-14 Vincent Celier <celier@gnat.com>
33080 * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
33083 * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
33085 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
33087 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
33089 (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
33091 2001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
33093 * ChangeLog: Remove piece of diff output.
33095 2001-12-14 Geert Bosch <bosch@gnat.com>
33097 * config-lang.in: Update copyright notice
33099 * layout.adb: Remove commented out code.
33101 * mdllfile.ads: Update copyright notice. Fix header format.
33103 * sem_case.ads: Likewise.
33105 * sem_ch3.adb: Minor reformatting.
33107 2001-12-12 Geert Bosch <bosch@gnat.com>
33109 * freeze.ads: Update copyright date.
33111 * g-comlin.ads: Minor reformatting.
33113 * gnat-style.texi: Fix typo.
33115 2001-12-12 Geert Bosch <bosch@gnat.com>
33117 * einfo.h: Regenerate.
33119 2001-12-12 Ed Schonberg <schonber@gnat.com>
33121 * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
33122 on known node types, rather than untyped fields. Further cleanups.
33124 2001-12-12 Robert Dewar <dewar@gnat.com>
33127 (Save_Entity_Descendant): Minor comment update.
33128 (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
33129 of an N_Attribute_Reference node. As per note below, this does not
33130 eliminate need for Associated_Node in attribute ref nodes.
33131 (Associated_Node): Documentation explicitly mentions attribute
33132 reference nodes, since this field is used in such nodes.
33134 * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
33136 2001-12-12 Robert Dewar <dewar@gnat.com>
33138 * s-stalib.adb: Add more comments on with statements being needed
33140 * par-ch12.adb: Minor reformatting
33142 * prj-dect.ads: Fix copyright header
33144 * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
33145 inputs fit in 32 bits, but the result still overflows.
33147 * s-fatgen.ads: Minor comment improvement
33149 2001-12-12 Ed Schonberg <schonber@gnat.com>
33151 * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
33152 formal derived type, look for an inherited component from the full
33153 view of the parent, if any.
33155 2001-12-12 Robert Dewar <dewar@gnat.com>
33157 * checks.ads (Apply_Alignment_Check): New procedure.
33159 * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
33160 ensure that the alignment of objects with address clauses is
33161 appropriate, and raise PE if not.
33163 * exp_util.ads (Must_Be_Aligned): Removed, replaced by
33164 Exp_Pakd.Known_Aligned_Enough
33166 * mdllfile.ads: Minor reformatting
33168 * mlib-fil.ads: Minor reformatting
33170 2001-12-12 Ed Schonberg <schonber@gnat.com>
33172 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
33173 fix to any component reference if enclosing record has non-standard
33176 2001-12-12 Vincent Celier <celier@gnat.com>
33178 * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
33181 2001-12-12 Ed Schonberg <schonber@gnat.com>
33183 * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
33186 2001-12-12 Robert Dewar <dewar@gnat.com>
33188 * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
33190 2001-12-12 Emmanuel Briot <briot@gnat.com>
33192 * g-regexp.adb: Remove all debug code, since it isn't required anymore,
33193 and it adds dependencies to system.io.
33195 2001-12-12 Pascal Obry <obry@gnat.com>
33197 * g-dirope.adb (Expand_Path.Var): Correctly detect end of
33200 2001-12-11 Ed Schonberg <schonber@gnat.com>
33202 * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
33203 that is the parent of other generics, the instance body replaces the
33204 instance node. Retrieve the instance of the spec, which is the one
33205 that is visible in clients and within the body.
33207 2001-12-11 Vincent Celier <celier@gnat.com>
33209 * gnatmain.adb: Initial version.
33211 * gnatmain.ads: Initial version.
33213 * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
33215 * snames.adb: Updated to match snames.ads.
33217 * snames.ads: Added Gnatstub.
33219 2001-12-11 Vincent Celier <celier@gnat.com>
33221 * prj-attr.adb (Initialization_Data): Change name from
33222 Initialisation_Data.
33224 2001-12-11 Emmanuel Briot <briot@gnat.com>
33226 * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
33227 + and * applied to backslashed expressions like \r.
33229 2001-12-11 Vasiliy Fofanov <fofanov@gnat.com>
33231 * g-os_lib.ads: String_List type added, Argument_List type is now
33232 subtype of String_List.
33234 2001-12-11 Robert Dewar <dewar@gnat.com>
33236 * g-os_lib.ads: Change copyright to FSF
33237 Add comments for String_List type
33239 2001-12-11 Vincent Celier <celier@gnat.com>
33241 * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
33242 string to the buffer).
33244 2001-12-11 Ed Schonberg <schonber@gnat.com>
33246 * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
33249 * sem_attr.adb: Simplify previous fix for Address.
33250 (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
33251 to avoid anomalies where the bound of the type appears to raise
33254 2001-12-11 Robert Dewar <dewar@gnat.com>
33256 * lib-xref.adb (Output_Refs): Make sure pointers are always properly
33259 2001-12-11 Ed Schonberg <schonber@gnat.com>
33261 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
33262 renamed unit before checking for recursive instantiations.
33264 2001-12-11 Emmanuel Briot <briot@gnat.com>
33266 * prj.ads: Add comments for some of the fields.
33268 2001-12-11 Robert Dewar <dewar@gnat.com>
33270 * lib-xref.adb (Output_Refs): Don't output type references outside
33271 the main unit if they are not otherwise referenced.
33273 2001-12-11 Ed Schonberg <schonber@gnat.com>
33275 * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
33276 code and diagnose additional illegal uses
33278 * sem_util.adb (Is_Object_Reference): An indexed component is an
33279 object only if the prefix is.
33281 2001-12-11 Vincent Celier <celier@gnat.com>
33283 * g-diopit.adb: Initial version.
33285 * g-diopit.ads: Initial version.
33288 (Expand_Path): Avoid use of Unbounded_String
33289 (Find, Wildcard_Iterator): Moved to child package Iteration
33291 * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
33293 2001-12-11 Robert Dewar <dewar@gnat.com>
33295 * sem_attr.adb: Minor reformatting
33297 2001-12-11 Ed Schonberg <schonber@gnat.com>
33299 * sem_ch3.adb: Clarify some ???.
33301 2001-12-11 Robert Dewar <dewar@gnat.com>
33303 * exp_util.adb (Must_Be_Aligned): Removed, replaced by
33304 Exp_Pakd.Known_Aligned_Enough
33306 * sem_ch13.adb (Check_Address_Alignment): Removed, extended
33307 version is moved to Exp_Ch13.
33309 2001-12-11 Robert Dewar <dewar@gnat.com>
33311 * einfo.ads: Minor reformatting
33313 * exp_ch5.adb: Add comment for previous.change
33315 * ali.adb: New interface for extended typeref stuff.
33317 * ali.ads: New interface for typeref stuff.
33319 * checks.adb (Apply_Alignment_Check): New procedure.
33321 * debug.adb: Add -gnatdM for modified ALI output
33323 * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
33325 * lib-xref.adb: Extend generation of <..> notation to cover
33326 subtype/object types. Note that this is a complete rewrite,
33327 getting rid of the very nasty quadratic algorithm previously
33328 used for derived type output.
33330 * lib-xref.ads: Extend description of <..> notation to cover
33331 subtype/object types. Uses {..} for these other cases.
33332 Also use (..) for pointer types.
33334 * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
33336 * exp_pakd.adb: Minor reformatting. Note that prevous RH should say:
33337 (Known_Aligned_Enough): Replaces Must_Be_Aligned.
33339 2001-12-11 Vincent Celier <celier@gnat.com>
33342 Changed /COMPILE_ONLY to /ACTIONS=COMPILE
33343 Changed /BIND_ONLY to /ACTIONS=BIND
33344 Changed /LINK_ONLY to /ACTIONS=LINK
33346 2001-12-11 Ed Schonberg <schonber@gnat.com>
33348 * sem_ch8.adb (Find_Selected_Component): improved search for a
33349 candidate package in case of error.
33351 * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
33352 chain back on scope stack before reinstalling use clauses.
33354 * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
33355 is enabled, do not kill the code for the condition, to preserve
33358 2001-12-11 Robert Dewar <dewar@gnat.com>
33360 * checks.adb (Insert_Valid_Check): Apply validity check to expression
33361 of conversion, not to result of conversion.
33363 2001-12-11 Ed Schonberg <schonber@gnat.com>
33365 * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
33366 before freezing parent. If the declarations are mutually recursive,
33367 an access to the current record type may be frozen before the
33368 derivation is complete.
33370 2001-12-05 Vincent Celier <celier@gnat.com>
33372 * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
33373 -c /COMPILE_ONLY, -l /LINK_ONLY
33376 (Bind_Only): New Flag
33377 (Link_Only): New flag
33379 * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
33382 * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
33385 (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
33386 (Gnatmake): Set the step flags. Only perform a step if the
33387 corresponding step flag is True.
33388 (Scan_Make_Arg): Reset the bind and link step flags when -u
33389 or -gnatc has been specified.
33391 2001-12-05 Ed Schonberg <schonber@gnat.com>
33393 * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
33394 get bounds from right operand.
33396 * sem_eval.adb: Minor reformatting
33398 * exp_util.adb (Make_Literal_Range): use bound of literal rather
33399 than Index'First, its lower bound may be different from 1.
33401 * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
33404 2001-12-05 Vincent Celier <celier@gnat.com>
33406 * prj-nmsc.adb Minor reformatting
33408 * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
33409 set and libraries are not supported.
33411 2001-12-05 Ed Schonberg <schonber@gnat.com>
33413 * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
33414 private view explicitly, so the back-end can treat as a global
33417 2001-12-05 Ed Schonberg <schonber@gnat.com>
33419 * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
33420 unit, always replace instance node with new body, for ASIS use.
33422 2001-12-05 Vincent Celier <celier@gnat.com>
33424 * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
33425 libraries are not supported and both attributes Library_Name and
33426 Library_Dir are specified.
33428 * prj-proc.adb (Expression): Set location of Result to location of
33431 * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
33432 (prj-nmsc is now importing MLib.Tgt)
33434 * prj-proc.adb: Put the change indicated above that was forgotten.
33436 2001-12-05 Robert Dewar <dewar@gnat.com>
33438 * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
33440 2001-12-05 Ed Schonberg <schonber@gnat.com>
33442 * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
33443 constraint, introduce explicit subtype declaration and derive from it.
33445 * sem_ch3.adb: Minor reformatting
33447 2001-12-05 Robert Dewar <dewar@gnat.com>
33449 * checks.adb (Determine_Range): Increase cache size for checks.
33452 * exp_ch6.adb: Minor reformatting
33453 (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
33454 a parameter whose root type is System.Address, since treating such
33455 subprograms as pure in the code generator is almost surely a mistake
33456 that will lead to unexpected results.
33458 * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
33459 change handling of conversions.
33461 * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
33463 2001-12-05 Ed Schonberg <schonber@gnat.com>
33465 * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
33466 aggregate with static wrong size, attach generated Raise node to
33469 2001-12-05 Robert Dewar <dewar@gnat.com>
33471 * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
33472 Fixes compilation abandoned bomb in B24009B.
33474 2001-12-05 Ed Schonberg <schonber@gnat.com>
33477 Document use of Associated_Node on Selected_Components.
33478 (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
33479 to clarify use of untyped descendant fields.
33481 2001-12-05 Robert Dewar <dewar@gnat.com>
33483 * prj-dect.ads: Add ??? comment
33484 Add 2001 to copyright notice (was not done in after all)
33486 * prj-part.adb: Minor reformatting. Reword one awkward error message.
33488 * prj.ads: Minor reformatting throughout, and add some ??? comments
33490 * snames.ads: Minor reformatting
33492 2001-12-05 Geert Bosch <bosch@gnat.com>
33494 * snames.adb: Autoupdate
33496 2001-12-05 Vincent Celier <celier@gnat.com>
33498 * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
33500 * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
33502 * prj-env.adb: Minor comment changes (modifying -> extends).
33504 * prj-nmsc.adb: Minor comment changes (modifying -> extends).
33506 * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
33509 * prj.adb (Initialize): Change Modifying to Extends.
33511 * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
33513 * prj.ads: Minor comment change (Modifying -> extending).
33515 * snames.ads: Change modifying to extends.
33517 2001-12-05 Robert Dewar <dewar@gnat.com>
33519 * sem_warn.adb: Remove stuff for conditionals, we are not going to
33522 * sem_warn.ads: Remove stuff for conditionals, we are not going to
33523 do this after all. Add 2001 to copyright notice
33525 2001-12-04 Geert Bosch <bosch@gnat.com>
33527 * einfo.h, sinfo.h, treeprs.ads: Regenerate.
33529 2001-12-04 Robert Dewar <dewar@gnat.com>
33531 * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
33532 location if we already have errors. Stops some cases of cascaded
33535 * errout.adb: Improve comment.
33537 2001-12-04 Robert Dewar <dewar@gnat.com>
33540 (Analyze_Formal_Type_Definition): Defend against Error.
33541 (Analyze_Formal_Subprogram): Defend against Error.
33543 * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
33544 remove following semicolon if present. Removes cascaded error.
33546 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
33549 (Gen_Exception_Table_Ada): Write "begin" and then return if Num
33550 exceptions equals 0.
33551 (Gen_Exception_Table_C): Return if Num exceptions equals 0.
33552 Fixes PIWG E tests (which have to be run with -gnatL).
33554 2001-12-04 Robert Dewar <dewar@gnat.com>
33556 * einfo.ads: Minor reformatting
33558 2001-12-04 Ed Schonberg <schonber@gnat.com>
33560 * einfo.ads: Block_Node points to the identifier of the block, not to
33561 the block node itself, to preserve the link when the block is
33562 rewritten, e.g. within an if-statement with a static condition.
33564 * inline.adb (Cleanup_Scopes): recover block statement from block
33565 entity using new meaning of Block_Node.
33567 * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
33568 identifier of block node, rather than to node itself.
33570 2001-12-04 Gary Dismukes <dismukes@gnat.com>
33573 (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
33574 (Discrimify): Go back to setting the Etypes of the selected component
33575 because the Vname component does not exist at this point and will
33576 fail name resolution. Also set Analyzed.
33577 Remove with and use of Sem_Res.
33579 2001-12-04 Arnaud Charlet <charlet@gnat.com>
33581 * Makefile.in: (HIE_SOURCES): add s-fat*.
33583 2001-12-04 Robert Dewar <dewar@gnat.com>
33586 (Compile_Time_Known_Attribute): New procedure.
33587 (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
33588 proper range check.
33590 2001-12-04 Ed Schonberg <schonber@gnat.com>
33592 * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
33593 processing discriminants to diagnose illegal default values.
33595 2001-12-04 Ed Schonberg <schonber@gnat.com>
33597 * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
33598 access discriminant within a type extension that constrains its
33599 parent discriminants.
33601 2001-12-04 Ed Schonberg <schonber@gnat.com>
33603 * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
33604 is malformed, use instance of Any_Id to allow analysis to proceed.
33606 * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
33607 type definition is illegal.
33608 (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
33611 2001-12-04 Ed Schonberg <schonber@gnat.com>
33613 * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
33616 2001-12-04 Robert Dewar <dewar@gnat.com>
33618 * errout.adb: Minor reformatting
33620 2001-12-04 Robert Dewar <dewar@gnat.com>
33622 * exp_util.adb: Minor reformatting from last change
33624 * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
33625 which is a rewriting of an expression, traverse the original
33626 expression to remove warnings that may have been posted on it.
33628 2001-12-04 Ed Schonberg <schonber@gnat.com>
33630 * exp_util.adb (Must_Be_Aligned): Return false for a component of a
33631 record that has other packed components.
33633 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
33635 * adaint.c: Minor cleanups.
33637 2001-12-04 Douglass B. Rupp <rupp@gnat.com>
33639 * adaint.c: Do not use utime.h on vxworks.
33641 2001-12-04 Arnaud Charlet <charlet@gnat.com>
33643 * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
33644 more confusion than it solves.
33646 2001-12-04 Geert bosch <bosch@gnat.com>
33648 * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
33650 2001-12-04 Geert Bosch <bosch@gnat.com>
33652 * Makefile.in (update-sources): New target.
33653 For use by gcc_release script.
33655 2001-12-04 Ed Schonberg <schonber@gnat.com>
33657 * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
33658 a configuration pragma, it is now legal wherever a pragma can appear.
33660 2001-12-04 Zack Weinberg <zack@codesourcery.com>
33662 * Makefile.in: Don't set ALL. Delete @cross_defines@,
33663 @cross_overrides@, @build_overrides@ stanzas. INTERNAL_CFLAGS
33664 is now @CROSS@ -DIN_GCC; update comment.
33666 2001-12-04 Robert Dewar <dewar@gnat.com>
33668 * einfo.adb (Has_Pragma_Pure_Function): New flag.
33669 Fix problem that stopped ceinfo from working
33671 * einfo.ads (Has_Pragma_Pure_Function): New flag.
33673 * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
33675 2001-12-04 Douglas B. Rupp <rupp@gnat.com>
33678 (File_Time_Stamp): New procedure.
33679 (Preserve_Mode): New boolean.
33680 (Write_Unit): Pass time stamp.
33681 Implement -p switch (preserve time stamps).
33683 * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
33685 * gnatchop.adb: Do usage info for -p switch
33687 * adaint.h (__gnat_set_file_time_name): New function
33689 * adaint.c (__gnat_set_file_time_name): Implement
33691 * adaint.h: Fix typo
33693 2001-12-03 Robert Dewar <dewar@gnat.com>
33695 * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
33696 have Associated_Node.
33698 2001-12-03 Robert Dewar <dewar@gnat.com>
33700 * prj-proc.adb: Minor reformatting
33702 * make.adb: Minor reformatting
33704 2001-12-03 Geert Bosch <bosch@gnat.com>
33706 * make.adb: Minor reformatting.
33708 2001-12-03 Robert Dewar <dewar@gnat.com>
33710 * sem_ch12.adb: Minor reformatting
33712 2001-12-03 Ed Schonberg <schonber@gnat.com>
33714 * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
33715 push Standard on the stack before analyzing the instance body,
33716 in order to have a clean visibility environment.
33718 * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
33720 2001-12-03 Ed Schonberg <schonber@gnat.com>
33722 * sem_ch12.adb (Instantiate_Package_Body): Protect against double
33723 instantiation of a body that contains an inlined body.
33725 2001-12-03 Ed Schonberg <schonber@gnat.com>
33728 (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
33729 to prevent freezing within formal packages.
33730 (Freeze_Subprogram_Body): If body comes from another instance that
33731 appeared before its own body, place freeze node at end of current
33732 declarative part, to prevent a back-end crash.
33733 (Inline_Instance_Body): Handle properly a package instance within
33734 a subprogram instance that is a child unit.
33736 2001-12-01 Graham Stott <grahams@redhat.com>
33738 * Makefile.in (misc.o): Add missing $(srcdir) prefix
33739 and add optabs.h dependency.
33741 * misc.c: Include optabs.h
33742 (gnat_tree_code_type): Make static and const.
33743 (gnat_tree_code_length): Likewise.
33744 (gnat_tree_code_name): Likewise.
33745 (update_setjmp_buf): Obtain operands mode from insn_data.
33747 2001-11-29 Richard Henderson <rth@redhat.com>
33749 * init.c: Remove obsolete dwarf2 frame.h section.
33751 2001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
33753 * Make-lang.in (ada.generated-manpages): New dummy target.
33755 2001-11-29 Ed Schonberg <schonber@gnat.com>
33757 * g-os_lib.adb (Add_To_Command): use explicit loop to move string
33758 into Command, an array conversion is illegal here. Uncovered by
33761 2001-11-28 Geert Bosch <bosch@gnat.com>
33763 * init.c: Minor whitespace changes.
33765 2001-11-28 Doug Rupp <rupp@gnat.com>
33767 * init.c: (__gnat_install_handler,VMS): Increase size of alternate
33770 2001-11-28 Zack Weinberg <zack@codesourcery.com>
33772 * misc.c (gnat_expand_constant): Move declaration above
33773 definition of lang_hooks.
33774 (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
33775 (gnat_init): lang_expand_constant no longer exists.
33777 (internal_error_function): Remove #ifdef HAVE_VPRINTF. We
33778 always have vprintf.
33779 (gnat_init): Always call set_internal_error_function.
33781 2001-11-27 Andreas Jaeger <aj@suse.de>
33783 * Makefile.in (stamp-tool_src_dir): Use symbolic link.
33785 2001-11-27 Laurent Guerby <guerby@acm.org>
33787 * Makefile.in: Regenerate Ada dependencies.
33789 2001-11-26 Richard Henderson <rth@redhat.com>
33791 * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
33792 gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
33793 gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
33795 2001-11-25 Laurent Guerby <guerby@acm.org>
33797 * sysdep.c (rts_get_*): Fix style.
33799 2001-11-19 Laurent Guerby <guerby@acm.org>
33801 * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
33802 since it is of no apparent use and cause warnings.
33804 2001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
33806 * misc.c (gnat_decode_option, gnat_init_options): Make definitions
33808 (gnat_init): Don't return NULL.
33809 (finish_parse): Remove.
33811 2001-11-17 Laurent Guerby <guerby@acm.org>
33813 * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
33814 * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
33815 * io-aux.c: Provide K&R prototypes to all functions, reformat code.
33816 * lang-spec.h: Add missing struct field to silence warnings.
33817 * sysdep.c (rts_get_*): Provide K&R prototype.
33818 * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
33819 * traceback.c (Unlock_Task, Lock_Task): Likewise.
33820 * tracebak.c (__gnat_backtrace): Remove unused variable.
33821 * utils.c (end_subprog_body): Move to K&R style.
33823 Thu Nov 15 18:16:17 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
33825 * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
33827 2001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
33829 * misc.c (gnat_init): Change prototype. Include the
33830 functionality of the old init_parse and init_decl_processing.
33831 (gnat_init_decl_processing): New prototype.
33832 (init_parse): Remove.
33833 * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
33835 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
33837 * misc.c (gnat_print_decl, gnat_print_type): Renamed.
33838 (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
33839 (print_lang_statistics, lang_print_xnode, print_lang_identifier,
33840 set_yydebug): Remove.
33842 2001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
33844 * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
33845 (struct lang_hooks): Constify.
33846 (language_string, lang_identify): Remove.
33847 * utils.c (init_decl_processing): Update.
33849 2001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
33851 * misc.c: Include langhooks-def.h.
33852 * Makefile.in: Update.
33854 2001-10-30 Robert Dewar <dewar@gnat.com>
33857 (Check_Identifier): Rewrite circuit to be compatible with use of letters
33858 in the upper half of ASCII.
33859 (Check_Identifier): Minor reformatting
33861 2001-10-30 Geert Bosch <bosch@gnat.com>
33863 * (Associated_Node, Set_Associated_Node): Do not check for
33866 2001-10-30 Robert Dewar <dewar@gnat.com>
33868 * a-reatim.ads: Minor reformatting
33870 2001-10-30 Robert Dewar <dewar@gnat.com>
33872 * gnatdll.adb: Minor reformatting throughout. Many ??? added for
33873 undocumented declarations.
33875 2001-10-30 Pascal Obry <obry@gnat.com>
33877 * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
33878 to the binder and linker.
33881 * mdll.ads: Fix layout. Update copyright notice.
33883 * mdll.adb: Fix layout. Update copyright notice.
33885 2001-10-30 Robert Dewar <dewar@gnat.com>
33887 * usage.adb: Minor fix to output for -gnaty.
33889 2001-10-30 Ed Schonberg <schonber@gnat.com>
33891 * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
33892 to accommodate all its possible values.
33894 * a-reatim.adb (Split): Special-case handling of Time_Span_First
33895 and of small absolute values of T.
33897 2001-10-30 Richard Kenner <kenner@gnat.com>
33899 * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
33900 set_mem_attributes since not needed and wrong if RESULT if a REG;
33901 fixes ACATS failures.
33903 2001-10-30 Geert Bosch <bosch@gnat.com>
33905 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
33906 s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
33908 2001-10-30 Robert Dewar <dewar@gnat.com>
33910 * bindusg.adb: Undocument -f switch.
33912 * gnatcmd.adb: Remove /FULL_ELABORATION.
33914 * opt.ads (Force_RM_Elaboration_Order): Document that this is
33917 * gnatbind.adb: Output new warning for use of obsolescent -f switch.
33919 * gnatbind.adb: Minor update of warning msg.
33921 2001-10-30 Vincent Celier <celier@gnat.com>
33923 * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
33924 for project file switches (-P (/PROJECT_FILE=),
33925 -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
33928 2001-10-30 Geert Bosch <bosch@gnat.com>
33930 * decl.c: Minor whitespace fixes.
33932 2001-10-30 Richard Kenner <kenner@gnat.com>
33934 * utils2.c (build_allocator): Test for SIZE overflow in array case too
33936 2001-10-30 Geert Bosch <bosch@gnat.com>
33938 * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
33939 Found due to GCC 3.0 warning of using uninitialized value.
33942 (Get_Max_Size): Use variant record for tracking value/expression.
33943 Makes logic clearer and prevents warnings for uninitialized variables.
33944 (Layout_Array_Type): Use variant record for tracking value/expression.
33945 Makes logic clearer and prevents warnings for uninitialized variables.
33947 2001-10-30 Robert Dewar <dewar@gnat.com>
33949 * lib.adb: Minor reformatting
33951 * s-taprop.ads: Minor reformatting
33953 2001-10-29 Laurent Guerby <guerby@acm.org>
33956 (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
33958 (_gnat_error_handler): Make MSG const.
33960 2001-10-29 Richard Kenner <kenner@gnat.com>
33962 * sysdep.c: Fix localtime_r problem on LynxOS.
33963 Also remove #elif to avoid warnings.
33965 * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
33968 * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
33970 2001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
33972 * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
33973 exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
33974 g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
33975 g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
33976 layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
33977 s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
33978 sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
33979 sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
33980 sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
33981 types.ads, urealp.adb: Fix spelling errors.
33983 2001-10-27 Laurent Guerby <guerby@acm.org>
33985 * trans.c (gigi): Fix non determinism leading to bootstrap
33986 comparison failures for debugging information.
33988 2001-10-26 Florian Weimer <fw@deneb.enyo.de>
33990 * gnat_rm.texi: Use @./@: where appropriate.
33992 2001-10-26 Robert Dewar <dewar@gnat.com>
33994 * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
33996 2001-10-26 Richard Kenner <kenner@gnat.com>
33998 * gmem.c (__gnat_gmem_read_next): Properly check for EOF
34000 2001-10-26 Richard Kenner <kenner@gnat.com>
34002 * decl.c (validate_size): Modify message for bad size to avoid
34003 implication that compiler is modifying the size.
34005 2001-10-26 Robert Dewar <dewar@gnat.com>
34007 * prj-util.adb: Minor reformatting. Fix bad header format.
34009 2001-10-26 Robert Dewar <dewar@gnat.com>
34011 * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
34013 * sinfo.ads: Clarify use of Associated_Node (documentation only).
34015 * sem_ch12.adb: Change Node4 to Associated_Node. Change
34016 Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
34017 much more narrowly in places where needed. These are cleanups.
34019 2001-10-26 Joel Brobecker <brobecke@gnat.com>
34021 * 5zosinte.ads (null_pthread): new constant.
34024 (Initialize_TCB): Initialize thread ID to null, to be able to verify
34025 later that this field has been set.
34026 (Finalize_TCB): ditto.
34027 (Suspend_Task): Verify that the thread ID is not null before using it.
34028 (Resume_Task): ditto.
34031 (Resume_All_Tasks): Lock the tasks list before using it.
34032 (Suspend_All_Tasks): ditto.
34034 2001-10-26 Richard Kenner <kenner@gnat.com>
34036 * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
34037 Make constant variant of designated type for Is_Access_Constant.
34038 Call update_pointer_to with main variant.
34040 * trans.c (process_freeze_entity, process_type):
34041 Call update_pointer_to on main variant.
34043 * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
34044 If main variant, update all other variants.
34046 * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
34049 2001-10-26 Robert Dewar <dewar@gnat.com>
34051 * prj-util.adb: Minor reformatting
34053 2001-10-26 Robert Dewar <dewar@gnat.com>
34055 * prj-util.adb: Minor reformatting
34057 2001-10-26 Robert Dewar <dewar@gnat.com>
34059 * prj-attr.adb: Minor reformatting throughout
34061 2001-10-26 Robert Dewar <dewar@gnat.com>
34063 * prj-attr.ads: Minor reformatting
34064 Add ??? comment (this whole spec has almost no comments)
34066 2001-10-26 Vincent Celier <celier@gnat.com>
34068 * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
34069 ("//") that precede the drive letter on Interix.
34071 2001-10-26 Geert Bosch <bosch@gnat.com>
34073 * gnat_rm.texi: Add GNAT Reference Manual.
34075 2001-10-25 Robert Dewar <dewar@gnat.com>
34077 * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
34078 is Error. Similar change for other renaming cases.
34080 2001-10-25 Robert Dewar <dewar@gnat.com>
34082 * s-atacco.ads: Add pragma Inline_Always for functions.
34083 Fix header format. Add copyright 2001
34085 2001-10-25 Ed Schonberg <schonber@gnat.com>
34087 * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
34088 return Error rather than Empty so that analysis can proceed.
34090 2001-10-25 Ed Schonberg <schonber@gnat.com>
34092 * sem_util.adb (Enter_Name): better handling of cascaded error
34093 messages when a unit appears in its own context.
34095 2001-10-25 Ed Schonberg <schonber@gnat.com>
34097 * sem_util.adb (Defining_Entity): in case of error, attach created
34098 entity to specification, so that semantic analysis can proceed.
34100 2001-10-25 Robert Dewar <dewar@gnat.com>
34103 (Defining_Entity): Deal with Error.
34104 (Process_End_Label): Deal with bad end label for.
34106 2001-10-25 Ed Schonberg <schonber@gnat.com>
34108 * sem_elab.adb (Check_A_Call): refine message when call is in an
34109 instance but callee is not declared in the generic unit.
34111 2001-10-25 Ed Schonberg <schonber@gnat.com>
34113 * sem_elab.adb (Check_A_Call): check for renaming before finding the
34114 enclosing unit, which may already be different from the calling unit.
34116 2001-10-25 Geert Bosch <bosch@gnat.com>
34118 * 4gintnam.ads: fix header format.
34120 2001-10-25 Ed Schonberg <schonber@gnat.com>
34122 * sem_res.adb (Resolve_Call): if the call is actually an indexing
34123 operation on the result of a parameterless call, perform elaboration
34124 check after the node has been properly rewritten.
34126 * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
34127 inlined within the generic tree, the defining identifier is not a
34130 2001-10-25 Ed Schonberg <schonber@gnat.com>
34132 * sem_res.adb (Resolve): special-case resolution of Null in an
34133 instance or an inlined body to avoid view conflicts.
34135 * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
34136 compatibility by retrieving the access type of the generic copy.
34138 2001-10-25 Robert Dewar <dewar@gnat.com>
34141 (Analyze_Number_Declaration): Handle error expression.
34142 (Signed_Integer_Type_Declaration): Handle error bound.
34143 (Analyze_Subtype_Indication): Handle error range.
34145 * sem_util.adb (Get_Index_Bounds): Check for Error.
34147 2001-10-25 Robert Dewar <dewar@gnat.com>
34149 * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
34150 in no run time mode.
34152 2001-10-25 Pascal Obry <obry@gnat.com>
34154 * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
34155 mode case for ALLOC case.
34157 * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
34158 all platforms. Improvement of last change.
34160 2001-10-25 Robert Dewar <dewar@gnat.com>
34162 * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
34164 2001-10-25 Geert Bosch <bosch@gnat.com>
34166 * osint.adb (Is_Relative): Remove duplicate.
34168 2001-10-25 Pascal Obry <obry@gnat.com>
34170 * osint.adb (Read_Default_Search_Dirs): correctly detect relative
34171 pathnames in UNIX and DOS style with drive letter.
34172 (Is_Relative): new routine.
34174 * osint.adb: Minor reformatting
34176 * osint.adb (Is_Relative): implementation using
34177 GNAT.OS_Lib.Is_Absolute_Path. Better fix.
34179 2001-10-25 Pascal Obry <obry@gnat.com>
34181 * g-dirope.adb (Basename): correctly compute offset between the
34182 original Path and the translated one.
34184 * g-dirope.adb: (Base_Name): add some comments.
34186 2001-10-25 Robert Dewar <dewar@gnat.com>
34188 * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
34189 in HIE mode, avoids compilation abandoned message
34191 * exp_imgv.adb: Correct typo in previous change
34193 * exp_imgv.adb: Correct typo in previous change (not my day!)
34195 2001-10-25 Robert Dewar <dewar@gnat.com>
34197 * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
34199 2001-10-25 Pascal Obry <obry@gnat.com>
34201 * g-awk.ads: Move all pragma inlines next to the routine
34202 declarations. This is more uniform with other GNAT spec.
34204 2001-10-22 Geert Bosch <bosch@gnat.com>
34206 * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
34208 2001-10-19 Geert Bosch <bosch@gnat.com>
34210 * Makefile.in (tools, gnattools): Remove gnatmem.
34212 2001-10-17 Richard Henderson <rth@redhat.com>
34214 * Makefile.in (misc.o): Depend on langhooks.h.
34215 * misc.c: Include it.
34216 (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
34217 (LANG_HOOKS_DECODE_OPTION): New.
34218 (lang_hooks): Use LANG_HOOKS_INITIALIZER.
34220 2001-10-16 Florian Weimer <fw@deneb.enyo.de>
34222 * trans.c (tree_transform): Adjust to recent change in
34223 expand_asm_operands to implement named asm operands.
34225 2001-10-11 Ed Schonberg <schonber@gnat.com>
34227 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
34228 renaming of discriminant for mutable record type.
34230 2001-10-11 Robert Dewar <dewar@gnat.com>
34232 * validsw.adb: Properly save -gnatVn status.
34234 2001-10-11 Robert Dewar <dewar@gnat.com>
34236 * usage.adb: Add lines for V switch.
34238 * gnatcmd.adb (COMPILE): Revise translations for -gnatV
34239 (/VALIDITY_CHECKING).
34241 2001-10-11 Ed Schonberg <schonber@gnat.com>
34243 * sem_type.adb (Add_One_Interp): an operator for a type declared in
34244 an extension of System is known to be visible.
34246 2001-10-11 Ed Schonberg <schonber@gnat.com>
34248 * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
34249 properly. Fixes regression on ACATS C34005G.
34251 2001-10-11 Robert Dewar <dewar@gnat.com>
34253 * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
34254 loop in generic instance, since this is likely not very useful.
34256 2001-10-11 Robert Dewar <dewar@gnat.com>
34258 * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
34259 the error message for high integrity mode.
34261 * rtsfind.adb (RTE): Give message if we try to find an entity that
34262 is not available in high integrity mode.
34265 (OK_To_Use_In_HIE_Mode): New array.
34266 (RTE): May return Empty in high integrity mode.
34268 * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
34269 OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
34271 * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
34272 unit if not inlined always and in no runtime mode. Fixes problem
34273 caused by new Rtsfind changes.
34275 * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
34278 * rtsfind.adb (RTE): Make sure we do not try to load unit after
34279 giving message for entity not available in high integrity mode.
34281 2001-10-11 Pascal Obry <obry@gnat.com>
34283 * impunit.adb: Add GNAT.CRC32.
34285 2001-10-11 Ed Schonberg <schonber@gnat.com>
34287 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
34288 properly the case where one universal operand in a non-static
34289 exponentiation of a real literal.
34291 2001-10-11 Ed Schonberg <schonber@gnat.com>
34293 * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
34294 clause, return the gobal finalization list, for lack of anthing else.
34296 2001-10-11 Ed Schonberg <schonber@gnat.com>
34298 * exp_ch7.adb (Make_Transient_Block): if statement is within
34299 exception handler, always use new transient scope to place Clean
34302 2001-10-11 Pascal Obry <obry@gnat.com>
34305 (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34306 (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
34307 (GNATLS_RTL_OBJS): add g-crc32.o
34308 (GNATMAKE_RTL_OBJS): add g-crc32.o
34311 (CRC_Match): new function.
34312 (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
34313 instead of the previous simple checksum algorithm.
34314 (Time_Stamp_Mismatch): use CRC_Match for comparison.
34315 (Set_Source_Table): idem.
34318 (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
34319 instead of simple checksum.
34320 (CRC_Match): new function.
34321 (CRC_Error): new constant.
34323 * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
34324 a CRC now and not a simple checksum. A CRC uses lower-case hex
34325 letters, fixes ambiguity in parsing.
34327 * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
34328 is what this variable will store.
34330 * bcheck.adb: Change reference to chechsum in comments by CRC.
34331 (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
34332 rename All_Checksum_Match to All_CRC_Match. Change due to API
34333 renaming since now GNAT does not use a simple checksum but a
34334 CRC using GNAT.CRC32.
34336 * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
34337 now and not anymore a simple checksum.
34339 * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
34342 * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
34345 (Restore_Scan_State): rename Checksum to CRC.
34346 (Save_Scan_State): idem.
34350 (Checksum): rename to CRC.
34351 (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
34353 * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
34354 GNAT.CRC32). Update copyright notice.
34356 * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
34357 GNAT.CRC32). Update copyright notice.
34360 (Accumulate_Checksum): removed.
34361 (Update): new procedure. Add a wide-character into the CRC.
34364 (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
34365 (Load_File): fix initialization of S (change Source_Checksum to
34368 * sinput-p.adb (Load_Project_File): rename Source_Checksum to
34369 Source_CRC in S initialization.
34371 * sinput.adb (Source_Checksum): renamed to Source_CRC.
34373 * sinput.ads (Source_Checksum): renamed to Source_CRC.
34374 Update comments for the CRC.
34376 * types.adb (Hex): Use lowercase for the letter part.
34378 * types.ads (Get_Hex_String): Returns the hexadecimal representation
34379 for a word. This is currently used only for CRC. In previous version,
34380 the checksum was using a representation with all letter being
34381 upper-case. With the new implementation (using CRC) we do not remove
34382 the 32th bit of the CRC, so we can have an upper-case starting letter
34383 in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
34384 It is ambigous since the CRC was optional and could be followed by
34385 options like EB, EE. So now this routines uses lower-case letter for
34386 the hexadecimal representation. Strange enough only lower case letters
34387 where checked in Scan_ALI (even if this was not a possible case).
34389 * gnatvsn.ads (Library_Version): changed to 3.15a.
34391 * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
34394 * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
34397 * ali-util.adb: Redo previous change to avoid using word CRC everywhere
34398 Add 2001 to copyright notice
34399 (Accumulate_Checksum): Modify to use System.CRC32.
34401 * ali-util.ads: Redo changes of previous revision to continue to use
34402 the word Checksum. Add 2001 to copyright notice.
34404 * ali.adb: Undo some of previous changes, not needed.
34405 Keep the change for lower case letters in the checksum.
34407 * ali.ads: Undo previous change not needed.
34409 * bcheck.adb: Undo most of previous change, not needed.
34410 But do use Checksums_Match for checksum comparison.
34412 * gnatls.adb: Undo most of previous change, not needed.
34413 But do use Checksums_Match for comparing checksums.
34415 * lib-load.adb: Undo previous change, not needed.
34417 * lib-writ.adb: Undo previous change, not needed.
34419 * lib-writ.ads: Document that checksums use lower case,
34420 not upper case letters.
34422 * scans.adb: Undo previous change, not needed
34424 * scans.ads: Undo previous change, not needed.
34426 * scn-nlit.adb: Undo previous changes, not needed.
34428 * scn-slit.adb: Undo previous change, not needed. Fix header format.
34431 (Accumulate_Checksum): Use System.CRC32.
34432 (Initialize_Checksum): New procedure.
34433 Remove other changes of previous revision.
34435 * sinput-p.adb: Undo previous change, not needed.
34437 * sinput.adb: Undo previous change, not needed.
34439 * sinput-l.adb: Undo previous change, not needed.
34441 * sinput.ads: Undo previous change, not needed. Keep only comment
34442 on new checksum algorithm
34444 * Makefile.in: Add s-crc32 as needed, remove g-crc32.
34445 Also remove a-tags and a-stream from GNAT sources.
34447 * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
34449 * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
34451 2001-10-11 Geert Bosch <bosch@gnat.com>
34453 * einfo.h: Regenerate.
34455 * nmake.ads: Regenerate.
34457 * nmake.adb: Regenerate.
34459 * sinfo.h: Regenerate.
34461 * treeprs.adb: Regenerate.
34463 2001-10-10 Geert Bosch <bosch@gnat.com>
34465 * gnat-style.texi: New file describing coding guidelines for Ada.
34467 2001-10-10 Ed Schonberg <schonber@gnat.com>
34469 * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
34472 2001-10-10 Geert Bosch <bosch@gnat.com>
34474 * snames.ads: Add new names for project facility.
34476 * snames.adb: Update to reflect snames.ads changes.
34478 * snames.h: Update to reflect snames.ads changes.
34480 2001-10-10 Vincent Celier <celier@gnat.com>
34483 (Add_Switches): reflect the changes for the switches attributes
34484 Default_Switches indexed by the programming language,
34485 Switches indexed by the file name.
34486 (Collect_Arguments_And_Compile): Idem.
34487 Reflect the attribute name changes.
34490 (Initialisation_Data): Change the names of some packages and
34492 (Initialize): process case insensitive associative arrays.
34495 (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
34498 (Parse_Attribute_Declaration): For case insensitive associative
34499 arrays, set the index string to lower case.
34502 Reflect the changes of the project attributes.
34505 Replace Check_Naming_Scheme by Ada_Check and
34506 Language_Independent_Check.
34509 Replaced Check_Naming_Scheme by 2 procedures:
34510 Ada_Check and Language_Independent_Check.
34513 (Process_Declarative_Items): For case-insensitive associative
34514 arrays, set the index string to lower case.
34515 (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
34516 Prj.Nmsc.Check_Naming_Scheme.
34519 (Case_Insensitive): New function
34520 (Set_Case_Insensitive): New procedure
34523 (Case_Insensitive): New function
34524 (Set_Case_Insensitive): New procedure
34525 (Project_Node_Record): New flag Case_Insensitive.
34528 (Value_Of): new function to get the string value of a single
34529 string variable or attribute.
34532 (Value_Of): new function to get the string value of a single
34533 string variable or attribute.
34536 (Ada_Default_Spec_Suffix): New function
34537 (Ada_Default_Impl_Suffix): New function
34538 Change definitions of several constants to reflect
34539 new components of record types.
34542 (Naming_Data): Change several components to reflect new
34543 elements of naming schemes.
34544 (Project_Data): New flags Sources_Present and
34545 Language_Independent_Checked.
34546 (Ada_Default_Spec_Suffix): New function.
34547 (Ada_Default_Impl_Suffix): New function.
34550 Modification of predefined names for project manager: added
34551 Implementation, Specification_Exceptions, Implementation_Exceptions,
34552 Specification_Suffix, Implementation_Suffix, Separate_Suffix,
34553 Default_Switches, _Languages, Builder, Cross_Reference,
34554 Finder. Removed Body_Part, Specification_Append, Body_Append,
34555 Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
34558 * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
34561 * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
34562 not that it is Nil_Variable_Value.
34564 * prj.ads: Add ??? for uncommented declarations
34566 2001-10-10 Ed Schonberg <schonber@gnat.com>
34568 * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
34569 constant, do not indicate possible modification, so that gigi can
34570 treat it as a bona fide constant.
34572 2001-10-10 Robert Dewar <dewar@gnat.com>
34574 * sem_prag.adb: Add processing for pragma External.
34576 * snames.ads: Add entry for pragma External.
34578 * par-prag.adb: Add pragma External.
34580 * snames.adb: Updated to match snames.ads.
34582 2001-10-10 Ed Schonberg <schonber@gnat.com>
34584 * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
34585 a dynamic task if the allocator appears in an indexed assignment
34586 or selected component assignment.
34588 * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
34589 For a dynamic task in an assignment statement, use target of
34590 assignment to generate meaningful name.
34592 2001-10-10 Ed Schonberg <schonber@gnat.com>
34594 * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
34597 * einfo.ads: Body_Entity is also defined for generic package.
34598 Documentation change only
34600 * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
34601 others_choice for a discriminated component initialization,
34602 convert discriminant references into the corresponding discriminals.
34604 * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
34605 only if original type is private and expression has to be wrapped
34609 (Apply_Constraint_Check): Do not perform length check
34610 if expression is an aggregate with only an others_choice.
34611 (Length_N_Cond): two references to the same in_parameter
34612 (typically the discriminal in an init_proc) denote the same value.
34613 Two useful optimization uncovered by bugfixes above.
34615 2001-10-10 Robert Dewar <dewar@gnat.com>
34617 * xeinfo.adb: Change int to char in translation of enumeration types.
34618 This fixes a problem in the C representation of component alignment.
34619 Add 2001 to copyright notice
34621 2001-10-10 Richard Kenner <kenner@gnat.com>
34623 * decl.c: (validate_size): Do check size of object of integral type
34624 if it is a packed array type.
34626 2001-10-10 Richard Kenner <kenner@gnat.com>
34628 * decl.c: (gnat_to_gnu_entity, case object): Also materialize
34629 VAR_DECL for constant if not Is_Public but -O0.
34631 2001-10-10 Richard Kenner <kenner@gnat.com>
34633 * misc.c (struct lang_hooks): Add new initializer to match GCC change.
34635 2001-10-10 Geert Bosch <bosch@gnat.com>
34637 * xnmake.adb (XNmake): Fix handling of -s/-b options. No longer
34638 use '/' as switch character, allowing for absolute file names.
34640 2001-10-09 Joseph S. Myers <jsm28@cam.ac.uk>
34642 * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
34645 2001-10-08 Geert Bosch <bosch@gnat.com>
34647 * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
34648 Automatically build utilities when files need to be regenerated.
34650 2001-10-08 Geert Bosch <bosch@gnat.com>
34652 * xsnames.adb: New utility for updating snames.ads and snames.adb
34654 2001-10-08 Zack Weinberg <zack@codesourcery.com>
34656 * Make-lang.in (ADAFLAGS): Add -W -Wall.
34657 (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
34658 (gnat1): Also depend on attribs.o.
34659 (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
34660 * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
34661 (ADAC): Set to @ADAC@ in stage1, $(CC) later.
34662 (ADAFLAGS): Add -W -Wall.
34663 (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
34666 (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
34667 s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
34668 s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
34669 Use $(ADAC), not $(CC), as compilation command.
34671 (gnattools): Depend directly on tools to build, don't use
34673 (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
34675 * einfo.h, sinfo.h: New files (autogenerated).
34677 2001-10-08 Richard Henderson <rth@redhat.com>
34679 * comperr.adb (Abort_In_Progress): New.
34680 (Compiler_Abort): Use it to prevent recursion.
34682 2001-10-08 Robert Dewar <dewar@gnat.com>
34684 * atree.adb: Set Error_Posted in Error node, helps error recovery.
34686 * par-endh.adb (Output_End_Expected): We should also not test
34687 Error_Posted on the Error node, since now it is always set.
34689 * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
34690 to help error recovery. Part of general work on 9407-004.
34692 * par.adb: Add ??? for misuse of error
34695 (Resolve): Defend against Error, fixes 9407-003.
34696 (Resolve_Discrete_Subtype_Indication): Defend against Error.
34698 * sinfo.ads (N_Error): Now has Etype field (which will be set
34699 to Any_Type to help error recovery).
34701 2001-10-08 Richard Kenner (kenner@gnat.com)
34703 * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
34704 Consistently set MEM attributes from expression; fixes
34705 bootstrap failure on x86.
34707 2001-10-08 Geert Bosch (bosch@gnat.com)
34709 * 5oosinte.adb: Add 2001 to copyright notice.
34711 2001-10-08 Geert Bosch (bosch@gnat.com)
34713 * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
34715 * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
34717 2001-10-07 Joseph S. Myers <jsm28@cam.ac.uk>
34719 * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
34721 2001-10-05 Geert Bosch (bosch@gnat.com)
34723 * adaint.h: Small formatting fix.
34725 2001-10-04 Geert Bosch <bosch@gnat.com>
34727 * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
34728 Arg is int, not FILE *, in dummy version of functions.
34730 * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
34731 Arg is int, not FILE *.
34733 2001-10-04 Geert Bosch <bosch@gnat.com>
34735 * 3lsoccon.ads: Added file, missed with initial check ins.
34737 * 4lintnam.ads: Fix header format.
34738 Change Linux to GNU/Linux.
34740 * 5iosinte.adb: Change Linux to GNU/Linux.
34742 * 5iosinte.ads: Change Linux to GNU/Linux.
34744 * 5itaprop.adb: Change Linux to GNU/Linux.
34746 * 5itaspri.ads: Change Linux to GNU/Linux.
34747 Update copyright notice.
34749 * 5lintman.adb: Change Linux to GNU/Linux.
34751 * 5lml-tgt.adb: Change Linux to GNU/Linux.
34753 * 5losinte.ads: Change Linux to GNU/Linux.
34755 * 5lsystem.ads: Change Linux to GNU/Linux.
34757 * 5qosinte.adb: Change Linux to GNU/Linux.
34759 * 5qosinte.ads: Change Linux to GNU/Linux.
34761 * 5qparame.ads: Change Linux to GNU/Linux.
34763 * 5qtaprop.adb: Change Linux to GNU/Linux.
34765 * 5qtaspri.ads: Change Linux to GNU/Linux.
34766 Add 2001 to copyright notice.
34768 * 5vintman.ads: Change Linux to GNU/Linux.
34769 Fix header format. Add 2001 to copyright notice.
34771 * g-soccon.ads: Change Linux to GNU/Linux.
34773 * g-trasym.ads: Change Linux to GNU/Linux.
34774 Add 2001 to copyright notice.
34776 * memtrack.adb: Change Linux to GNU/Linux.
34778 * s-intman.ads: Change Linux to GNU/Linux.
34779 Add 2001 to copyright notice. Fix header format.
34781 * s-stache.adb: Change Linux to GNU/Linux.
34783 * adaint.c: Change Linux to GNU/Linux.
34785 * cio.c: Change Linux to GNU/Linux.
34787 * cstreams.c: Change Linux to GNU/Linux.
34789 * init.c: Change Linux to GNU/Linux.
34791 * gmem.c: Change Linux to GNU/Linux.
34793 * tracebak.c: Change Linux to GNU/Linux.
34796 2001-10-02 Geert Bosch <bosch@gnat.com>
34798 * misc.c (insert_default_attributes): Add dummy version.