PR testsuite/79036 - gcc.dg/tree-ssa/builtin-sprintf.c fails starting with r244037
[official-gcc.git] / gcc / ada / ChangeLog-2006
blobb43e0106f666eeabd14370658a73cb24d90f3fed
1 2006-12-07  Geoffrey Keating  <geoffk@apple.com>
3         * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
4         * adaint.c: Likewise.
6 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
8         Merge from gimple-tuples-branch:
9         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
11         * ada-tree.h (lang_tree_node): Handle gimple tuples.
12         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
13         GIMPLE_MODIFY_STMT.
15 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
17         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
18         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
19         Fix typos.
21 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
23         PR ada/27936
24         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
25         if the initializer takes into account the padding.
27 2006-11-11  Richard Guenther  <rguenther@suse.de>
29         * trans.c (maybe_stabilize_reference): Remove handling of
30         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
32 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
34         PR ada/29707
35         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
36         (To_Target_Priority): New function.
38 2006-10-31  Robert Dewar  <dewar@adacore.com>
40         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
41         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
42         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
43         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
44         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
45         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
46         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
47         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
48         a-szbzha.adb: Minor reformatting. Fix header.
50         * a-numaux-x86.adb: Add parentheses for use of unary minus
51         * a-ngcefu.adb: Supply missing parentheses for unary minus
52         * a-ngcoty.adb: Add parens for use of unary minus
53         * a-ngelfu.adb: Add missing parens for unary minus
54         * a-tifiio.adb: Add parentheses for uses of unary minus
56 2006-10-31  Robert Dewar  <dewar@adacore.com>
57             Bob Duff  <duff@adacore.com>
58             Ed Schonberg  <schonberg@adacore.com>
60         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
61         with multiplying operator.
62         (Expected_Type_Is_Any_Real): New function to determine from the Parent
63         pointer whether the context expects "any real type".
64         (Resolve_Arithmetic_Op): Do not give an error on calls to the
65         universal_fixed "*" and "/" operators when they are used in a context
66         that expects any real type. Also set the type of the node to
67         Universal_Real in this case, because downstream processing requires it
68         (mainly static expression evaluation).
69         Reword some continuation messages
70         Add some \\ sequences to continuation messages
71         (Resolve_Call): Refine infinite recursion case. The test has been
72         sharpened to eliminate some false positives.
73         Check for Current_Task usage now includes entry barrier, and is now a
74         warning, not an error.
75         (Resolve): If the call is ambiguous, indicate whether an interpretation
76         is an inherited operation.
77         (Check_Aggr): When resolving aggregates, skip associations with a box,
78         which are priori correct, and will be replaced by an actual default
79         expression in the course of expansion.
80         (Resolve_Type_Conversion): Add missing support for conversion from
81         a class-wide interface to a tagged type. Minor code cleanup.
82         (Valid_Tagged_Converion): Add support for abstact interface type
83         conversions.
84         (Resolve_Selected_Component): Call Generate_Reference here rather than
85         during analysis, and use May_Be_Lvalue to distinguish read/write.
86         (Valid_Array_Conversion): New procedure, abstracted from
87         Valid_Conversion, to incorporate accessibility checks for arrays of
88         anonymous access types.
89         (Valid_Conversion): For a conversion to a numeric type occurring in an
90         instance or inlined body, no need to check that the operand type is
91         numeric, since this has been checked during analysis of the template.
92         Remove legacy test for scope name Unchecked_Conversion.
94         * sem_res.ads: Minor reformatting
96         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
97         (PE_Current_Task_In_Entry_Body): New exception code
98         (SE_Restriction_Violation): Removed, not used
100         * a-except.ads:  Update comments.
102         * types.h, types.ads: Add definition for Validity_Check
103         (PE_Current_Task_In_Entry_Body): New exception code
104         (SE_Restriction_Violation): Removed, not used
106 2006-10-31  Thomas Quinot  <quinot@adacore.com>
108         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
109         error status.
111 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
112             Jose Ruiz  <ruiz@adacore.com>
114         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
115         part of Ada.Calendar: all subprogram raise Unimplemented.
116         (Split_W_Offset): Temp function body, raising Unimplemented
118         * a-calend.ads, a-calend-vms.ads:
119         Add imported variable Invalid_TZ_Offset used to designate targets unable
120         to support time zones.
121         (Unimplemented): Temporary function raised by the body of new
122         subprograms below.
123         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
124         unit provides handling of leap seconds and is used by the new Ada 2005
125         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
126         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
127         version returns an extra value which is the offset to UTC.
129         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
130         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
131         (Split_W_Offset): New function body.
132         (Time_Of): When a date is close to UNIX epoch, compute the time for
133         that date plus one day (that amount is later substracted after
134         executing mktime) so there are no problems with time zone adjustments.
136         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
138         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
139         a-catizo.ads, a-catizo.adb: New files.
141         * impunit.adb: Add new Ada 2005 entries
143         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
144         Rename all occurences of "__gnat_localtime_r" to
145         "__gnat_localtime_tzoff".
146         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
147         zone data and calculate the GMT offset.
148         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
149         Use the field "tm_gmtoff" to extract the GMT offset.
150         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
151         the external variable "timezone" to calculate the GMT offset.
153 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
154             Jose Ruiz  <ruiz@adacore.com>
156         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb,
157         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads,
158         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
159         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
160         System.Any_Priority to a POSIX priority on the target.
162         * system-linux-ia64.ads:
163         Extend range of Priority types on Linux to use the whole range made
164         available by the system.
166         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
167         function maps from System.Any_Priority to a POSIX priority on the
168         target.
169         (PTHREAD_PRIO_PROTECT): Set real value.
170         (PTHREAD_PRIO_INHERIT): Now a function.
171         (SIGCPUFAIL): New signal.
172         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
173         are documented as reserved by the OS.
175         * system-aix.ads: Use the full range of priorities provided by the
176         system on AIX.
178         * s-taprop-posix.adb: Call new function To_Target_Priority.
179         (Set_Priority): Take into account Task_Dispatching_Policy and
180         Priority_Specific_Dispatching pragmas when determining if Round Robin
181         must be used for scheduling the task.
183         * system-linux-x86_64.ads, system-linux-x86.ads,
184         system-linux-ppc.ads: Extend range of Priority types on Linux to use
185         the whole range made available by the system.
187         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb,
188         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb,
189         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
190         when deallocating the TCB in order to avoid potential references to
191         deallocated data.
192         (Set_Priority): Take into account Task_Dispatching_Policy and
193         Priority_Specific_Dispatching pragmas when determining if Round Robin
194         or FIFO within priorities must be used for scheduling the task.
196         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
197         the Thread field (to be used internally by the run-time system) and the
198         kernel-level task id in the LWP field (to be used by the debugger).
199         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
200         instance, and propagate the current task options to the spawned task.
201         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
202         (Initialize): Set Round Robin dispatching when the corresponding pragma
203         is in effect.
205 2006-10-31  Robert Dewar  <dewar@adacore.com>
207         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
208         system-linux-hppa.ads, system-hpux-ia64.ads,
209         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads,
210         system-vxworks-sparcv9.ads, system-solaris-x86.ads,
211         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads,
212         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads,
213         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
214         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
215         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
216         Default_Bit_Order) to kill constant condition warnings for references
217         to this switch.
219 2006-10-31  Vincent Celier  <celier@adacore.com>
220             Eric Botcazou  <ebotcazou@adacore.com>
222         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
223         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
224         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
225         Ext_To, when building the library file name
227         * mlib-tgt-vxworks.adb: ditto.
228         (Get_Target_Suffix): Add support for x86 targets.
230         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
232         * mlib-tgt-darwin.adb:
233         Use Append_To, instead of Ext_To, when building the library file name
234         (Flat_Namespace): New global variable.
235         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
236         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
237         (Link_Shared_Libgcc): Delete.
238         (Build_Dynamic_Library): Adjust for above changes.
239         Use Opt package.
240         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
242 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
244         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
245         (Initialize): Add type conversions required by above change.
247 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
249         * s-osinte-vxworks.ads, s-osinte-vxworks.adb:
250         (getpid): New body for this function that uses the underlying taskIdSelf
251         function for VxWorks 5 and VxWorks 6 in kernel mode.
252         (unsigned_int): New type, modular to allow logical bit operations.
253         (taskOptionsGet): New imported function.
255         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
256         field to be compliant with the type used by the corresponding operating
257         system primitive.
259 2006-10-31  Pascal Obry  <obry@adacore.com>
260             Eric Botcazou  <ebotcazou@adacore.com>
261             Vincent Celier  <celier@adacore.com>
263         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
264         ASCII version of the registry API. This is needed as the GNAT runtime
265         is now UNICODE by default.
266         Include version.h.
267         (get_gcc_version): Do not hardcode the return value.
268         (__gnat_file_time_name): On Windows properly set the default returned
269         value to -1 which corresponds to Invalid_Time.
270         (__gnat_fopen): New routine. A simple wrapper on all plateforms
271          except on Windows where it does conversion for unicode support.
272         (__gnat_freopen): Idem.
273         (__gnat_locate_exec_on_path): If environment variable PATH does not
274         exist, return a NULL pointer
276         * adaint.h: (__gnat_fopen): Declare.
277         (__gnat_freopen): Likewise.
279         * mingw32.h (_tfreopen): Define this macro here for older MingW
280         version.
281         Activate the unicode support on platforms using a MingW runtime
282         version 3.9 or newer.
284         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
285         This is needed for proper unicode support on Windows.
286         (freopen): Idem.
288 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
289             Nicolas Setton  <setton@adacore.com>
290             Olivier Hainque  <hainque@adacore.com>
291             Gary Dismukes  <dismukes@adacore.com>
293         * gigi.h: (tree_code_for_record_type): Declare.
294         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
295         (get_global_renaming_pointers): Rename to
296         invalidate_global_renaming_pointers.
297         (static_ctors): Delete.
298         (static_dtors): Likewise.
299         (gnat_write_global_declarations): Declare.
300         (create_var_decl): Adjust descriptive comment to indicate that the
301         subprogram may return a CONST_DECL node.
302         (create_true_var_decl): Declare new function, similar to
303         create_var_decl but forcing the creation of a VAR_DECL node.
304         (get_global_renaming_pointers): Declare.
305         (add_global_renaming_pointer): Likewise.
307         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
309         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
310         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
311         processing.
312         (gnat_to_gnu_entity): Remove From_With_Type from computation for
313         imported_p.
314         <E_Access_Type>: Use the Non_Limited_View as the full view of the
315         designated type if the pointer comes from a limited_with clause.  Make
316         incomplete designated type if it is in the main unit and has a freeze
317         node.
318         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
319         Underlying_Full_View similarly.  Return earlier if the full view already
320         has an associated tree.
321         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
322         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
323         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
324         reference type built for objects with an address clause.
325         Use create_true_var_decl with const_flag set for
326         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
327         TREE_READONLY set.
328         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
329         for Character and Wide_Character types. This info is read by the
330         dwarf-2 writer, and is needed to be able to use the command "ptype
331         character" in the debugger.
332         (gnat_to_gnu_entity): When generating a type representing
333         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
334         so that debug writers can distinguish it from ordinary integers.
335         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
336         addition to TREE_READONLY to assert the constantness of variables for
337         elaboration purposes.
338         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
339         parameters to call new Einfo function First_Formal_With_Extras.
340         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
341         protected type with its corresponding discriminant, to obtain a usable
342         declaration
343         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
344         for a multiple elaboration of the "equivalent" type.
345         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
346         into record_global_renaming_pointer.
347         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
348         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
349         <E_Array_Subtype>: Likewise.
350         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
351         incomplete subtypes and incomplete subtypes of incomplete types visible
352         through a limited with clause.
353         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
354         the base index type for the maximum size of the array only if they are
355         constant.
356         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
357         expression into a SAVE_EXPR if stabilization failed.
359         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
360         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
361         by lower level compilation passes.
362         (gnat_genericize): New function, lowering a function body to GENERIC.
363         Turn the type of RESULT_DECL into a real reference type if the decl
364         has been marked DECL_BY_REFERENCE, and adjust references to the latter
365         accordingly.
366         (gnat_genericize_r): New function. Tree walking callback for
367         gnat_genericize.
368         (convert_from_reference, is_byref_result): New functions. Helpers for
369         gnat_genericize_r.
370         (create_type_decl): Call gnat_pushdecl before calling
371         rest_of_decl_compilation, to make sure that field TYPE_NAME of
372         type_decl is properly set before calling the debug information writers.
373         (write_record_type_debug_info): The heuristics which compute the
374         alignment of a field in a variant record might not be accurate. Add a
375         safety test to make sure no alignment is set to a smaller value than
376         the alignment of the field type.
377         (make_dummy_type): Use the Non_Limited_View as the underlying type if
378         the type comes from a limited_with clause. Do not loop on the full view.
379         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
380         (dummy_node_table): New global variable, moved from decl.c.
381         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
382         (save_gnu_tree): Use above macros.
383         (get_gnu_tree): Likewise.
384         (present_gnu_tree): Likewise.
385         (init_dummy_type): New function, moved from decl.c. Use above macros.
386         (make_dummy_type): Likewise.
387         (tree_code_for_record_type): New function extracted from make_dummy_type
388         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
389         (static_ctors): Change it to a vector, make static.
390         (static_dtors): Likewise.
391         (end_subprog_body): Adjust for above change.
392         (build_global_cdtor): Moved from trans.c.
393         (gnat_write_global_declarations): Emit global constructor and
394         destructor, and call cgraph_optimize before emitting debug info for
395         global declarations.
396         (global_decls): New global variable.
397         (gnat_pushdecl): Store the global declarations in global_decls, for
398         later use.
399         (gnat_write_global_declarations): Emit debug information for global
400          declarations.
401         (create_var_decl_1): Former create_var_decl, with an extra argument to
402          state whether the creation of a CONST_DECL is allowed.
403         (create_var_decl): Behavior unchanged. Now a wrapper around
404         create_var_decl_1 allowing CONST_DECL creation.
405         (create_true_var_decl): New function, similar to create_var_decl but
406         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
407         (create_field_decl): Do not always mark the field as addressable
408         if its type is an aggregate.
409         (global_renaming_pointers): New static variable.
410         (add_global_renaming_pointer): New function.
411         (get_global_renaming_pointers): Likewise.
413         * misc.c (gnat_dwarf_name): New function.
414         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
415         (gnat_post_options): Add comment about structural alias analysis.
416         (gnat_parse_file): Do not call cgraph_optimize here.
417         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
419         * trans.c (process_freeze_entity): Don't abort if we already have a
420         non dummy GCC tree for a Concurrent_Record_Type, as it might
421         legitimately have been elaborated while processing the associated
422         Concurrent_Type prior to this explicit freeze node.
423         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
424         exception handler volatile if it is of variable size.
425         (process_type): Remove bypass for types coming from a limited_with
426         clause.
427         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
428         actual, convert the corresponding gnu_actual to the real destination
429         type when necessary.
430         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
431         originally TREE_READONLY but whose elaboration cannot be performed
432         statically.
433         Part of fix for F504-021.
434         (tree_transform, subprogram cases): Change loops on formal parameters to
435         call new Einfo function First_Formal_With_Extras.
436         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
437         stemming from type conversion for the lhs.
438         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
439         number of bits per unit for components of records.
440         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
441         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
442         with At_End_Proc after the SJLJ EH cleanup.
443         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
444         compilation unit.
445         (elaborate_all_entities): Do not retest type_annotate_only.
446         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
447         result type of an abstract subprogram, which may be an itype associated
448         with an anonymous access result (related to AI-318-02).
449         (build_global_cdtor): Move to utils.c.
450         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
451         this choice is not a null tree nor an integer constant.
452         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
453         on the body of elaboration routines instead of mark_unvisited.
454         (add_stmt): Do not mark the tree.
455         (add_decl_expr): Tweak comment.
456         (mark_unvisited): Delete.
457         (unshare_save_expr): New static function.
458         (call_to_gnu): Issue an error when making a temporary around a
459         procedure call because of non-addressable actual parameter if the
460         type of the formal is by_reference.
461         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
462         after building the elaboration routine.
464 2006-10-31  Bob Duff  <duff@adacore.com>
466         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
467         as finalization-started, so we can raise Program_Error on 'new'.
469         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
470         collection has already started.
472         * s-finimp.ads (Collection_Finalization_Started): Added new special
473         flag value for indicating that a collection's finalization has started.
475         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
476         create a task whose master has already waited for dependent tasks.
478 2006-10-31  Robert Dewar  <dewar@adacore.com>
480         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
482         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads,
483         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads,
484         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads,
485         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads,
486         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads,
487         a-except-2005.ads: Add pragma Preelaborable_Warning
489 2006-10-31  Robert Dewar  <dewar@adacore.com>
490             Jose Ruiz  <ruiz@adacore.com>
492         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
494         * ali.adb (Get_Name): Properly handle scanning of wide character names
495         encoded with brackets notation.
496         (Known_ALI_Lines): Add S lines to this list.
497         (Scan_ALI): Acquire S (priority specific dispatching) lines.
498         New flag Elaborate_All_Desirable in unit table
500         * ali.ads (Priority_Specific_Dispatching): Add this range of
501         identifiers to be used for Priority_Specific_Dispatching table entries.
502         (ALIs_Record): Add First_Specific_Dispatching and
503         Last_Specific_Dispatching that point to the first and last entries
504         respectively in the priority specific dispatching table for this unit.
505         (Specific_Dispatching): Add this table for storing each S (priority
506         specific dispatching) line encountered in the input ALI file.
507         New flag Elaborate_All_Desirable in unit table
509         * bcheck.adb: (Check_Configuration_Consistency): Add call to
510         Check_Consistent_Dispatching_Policy.
511         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
512         verifying that the use of Priority_Specific_Dispatching,
513         Task_Dispatching_Policy, and Locking_Policy is consistent across the
514         partition.
516         * bindgen.adb: (Public_Version_Warning): function removed.
517         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
518         required information from ALI files in order to initialize the table
519         containing the specific dispatching policy.
520         (Gen_Adainit_Ada): Generate the variables required for priority specific
521         dispatching entries (__gl_priority_specific_dispatching and
522         __gl_num_specific_dispatching).
523         (Gen_Adainit_C): Generate the variables required for priority specific
524         dispatching entries (__gl_priority_specific_dispatching and
525         __gl_num_specific_dispatching).
526         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
527         pragma entries.
528         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
529         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
530         (Tab_To): Removed.
531         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
532         a call to gnat_set_globals.
533         Generate a string containing settings from
534         Priority_Specific_Dispatching pragma entries.
535         (Gen_Object_Files_Options): Do not include the runtime libraries when
536         pragma No_Run_Time is specified.
538         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
539         consistency with s-intman-posix.adb.
540         (__gnat_error_handler, case FreeBSD): Account for the fact that the
541         handler is installed with SA_SIGINFO.
542         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
543         FreeBSD ZCX support, copied from Linux version.
544         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
545         sigfillset, and sigemptyset so the routines defined by MaRTE.
546         (__gl_priority_specific_dispatching): Add this variable that stores the
547         string containing priority specific dispatching policies in the
548         partition.
549         (__gl_num_specific_dispatching): Add this variable that indicates the
550         highest priority for which a priority specific dispatching pragma
551         applies.
552         (__gnat_get_specific_dispatching): Add this routine that returns the
553         priority specific dispatching policy, as set by a
554         Priority_Specific_Dispatching pragma appearing anywhere in the current
555         partition. The input argument is the priority number, and the result
556         is the upper case first character of the policy name.
557         (__gnat_set_globals): Now a dummy function.
558         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
559         mechargs instead of sigargs, as the latter can be retrieved from the
560         former and sigargs is not what we want on ia64.
561         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
562         mechargs argument.
563         (__gnat_adjust_context_for_raise, ia64-vms): New function.
564         (tasking_error): Remove unused symbol.
565         (_abort_signal): Move this symbol to the IRIX specific part since this
566         is the only target that uses this definition.
567         (Check_Abort_Status): Move this symbol to the IRIX specific part since
568         this is the only target that uses this definition.
569         (Lock_Task): Remove unused symbol.
570         (Unlock_Task): Remove unused symbol.
572         * lib-writ.adb (Write_ALI): Output new S lines for
573         Priority_Specific_Dispatching pragmas.
574         Implement new flag BD for elaborate body desirable
576         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
577         (Specific_Dispatching): Add this table for storing the entries
578         corresponding to Priority_Specific_Dispatching pragmas.
579         Document new BD flag for elaborate body desirable
581         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
582         of known pragmas.
584 2006-10-31  Javier Miranda  <miranda@adacore.com>
586         * a-tags.ads, a-tags.adb:
587         (Predefined_DT): New function that improves readability of the code.
588         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
589         Inherit_DT): Use the new function Predefined_DT to improve code
590         readability.
591         (Register_Interface_Tag): Update assertion.
592         (Set_Interface_Table): Update assertion.
593         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
594         determining progenitor interfaces in Tags.
595         (Inherit_CPP_DT): New subprogram.
597         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
598         analysis of the thunk code.
599         (Expand_Interface_Conversion): Handle run-time conversion of
600         access to class wide types.
601         (Expand_Dispatching_Call): When generating the profile for the
602         subprogram itype for a dispatching operation, properly terminate the
603         formal parameters chaind list (set the Next_Entity of the last formal
604         to Empty).
605         (Collect_All_Interfaces): Removed. This routine has been moved to
606         sem_util and renamed as Collect_All_Abstract_Interfaces.
607         (Set_All_DT_Position): Hidden entities associated with abstract
608         interface primitives are not taken into account in the check for
609         3.9.3(10); this check is done with the aliased entity.
610         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
611         interfacing with CPP by default.
612         (Expand_Interface_Conversion): Add missing support for static conversion
613         from an interface to a tagged type.
614         (Collect_All_Interfaces): Add new out formal containing the list of
615         abstract interface types to cleanup the subprogram Make_DT.
616         (Make_DT): Update the code to generate the table of interfaces in case
617         of abstract interface types.
618         (Is_Predefined_Dispatching_Alias): New function that returns true if
619         a primitive is not a predefined dispatching primitive but it is an
620         alias of a predefined dispatching primitive.
621         (Make_DT): If the ancestor of the type is a CPP_Class and we are
622         compiling under full ABI compatibility mode we avoid the generation of
623         calls to run-time services that fill the dispatch tables because under
624         this mode we currently inherit the dispatch tables in the IP subprogram.
625         (Write_DT): Emit an "is null" indication for a null procedure primitive.
626         (Expand_Interface_Conversion): Use an address as the type of the formal
627         of the internally built function that handles the case in which the
628         target type is an access type.
630 2006-10-31  Robert Dewar  <dewar@adacore.com>
632         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
634 2006-10-31  Robert Dewar  <dewar@adacore.com>
636         * bindusg.ads, bindusg.adb:
637         Change to package and rename procedure as Display, which
638         now ensures that it only outputs usage information once.
640 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
642         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
643         using RTPs.
645         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
646         when using RTPs.
648 2006-10-31  Robert Dewar  <dewar@adacore.com>
649             Ed Schonberg  <schonberg@adacore.com>
651         * treepr.adb: Use new subtype N_Membership_Test
653         * checks.ads, checks.adb: Add definition for Validity_Check
654         (Range_Or_Validity_Checks_Suppressed): New function
655         (Ensure_Valid): Test Validity_Check suppressed
656         (Insert_Valid_Check): Test Validity_Check suppressed
657         (Insert_Valid_Check): Preserve Do_Range_Check flag
658         (Validity_Check_Range): New procedure
659         (Expr_Known_Valid): Result of membership test is always valid
660         (Selected_Range_Checks): Range checks cannot be applied to discriminants
661         by themselves. Disabling those checks must also be done for task types,
662         where discriminants may be used for the bounds of entry families.
663         (Apply_Address_Clause_Check): Remove side-effects if address expression
664         is non-static and is not the name of a declared constant.
665         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
666         Code cleanup and new error messages.
667         (Enable_Range_Check): Test for some cases of suppressed checks
668         (Generate_Index_Checks): Suppress index checks if index checks are
669         suppressed for array object or array type.
670         (Apply_Selected_Length_Checks): Give warning for compile-time detected
671         length check failure, even if checks are off.
672         (Ensure_Valid): Do not generate a check on an indexed component whose
673         prefix is a packed boolean array.
674         * checks.adb: (Alignment_Checks_Suppressed): New function
675         (Apply_Address_Clause_Check): New procedure, this is a completely
676         rewritten replacement for Apply_Alignment_Check
677         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
678         we request a discriminal value only in case of discriminants.
679         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
680         assignments where the target subtype is unconstrained and the target
681         object is a parameter or dereference (other aliased cases are known
682         to be unconstrained).
684 2006-10-31  Robert Dewar  <dewar@adacore.com>
686         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
687         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
688         vms_conv.adb: Fix bad table increment values (much too small)
690         * table.adb (Realloc): Make sure we get at least some new elements
691         Defends against silly small values for table increment
693 2006-10-31  Robert Dewar  <dewar@adacore.com>
694             Ed Schonberg  <schonberg@adacore.com>
695             Bob Duff  <duff@adacore.com>
697         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
698         entities. Move other fields around to make this possible
699         (Is_Derived_Type): Add missing call to Is_Type.
700         (Extra_Formals): New function for subprograms, entries, subprogram
701         types.
702         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
703         (First_Formal_With_Extras): New function for subprogs, entries, subp
704         types.
705         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
706         Add node information for E_Return_Statement.
707         (Elaborate_Body_Desirable): New flag
708         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
709         to be Is_Inherently_Limited_Type, because return-by-reference has
710         no meaning in Ada 2005.
711         (E_Return_Statement): New entity kind.
712         (Return_Applies_To): Field of E_Return_Statement.
713         (Is_Return_Object): New flag in object entities.
714         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
715         (Must_Have_Preelab_Init): New flag
716         (Known_To_Have_Preelab_Init): New flag
717         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
718         (Is_Visible_Formal): New flag on entities in formal packages.
719         (Low_Bound_Known): New flag
720         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
721         Incomplete_Kind.
722         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
723         output when Id is an incomplete subtype.
725 2006-10-31  Robert Dewar  <dewar@adacore.com>
727         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
728         Avoid abbreviation Creat
729         (Finalize): List all sources in extended mail source if -gnatl
730         switch is active.
731         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
732         (Finalize): Implement new -gnatl=xxx switch to output listing to file
733         (Set_Specific_Warning_On): New procedure
734         (Set_Specific_Warning_Off): New procedure
735         Add implementation of new insertion \\
736         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
737         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
738         types.
739         (Error_Msg_Internal): Make sure that we set Last_Killed to
740         True when a message from another package is suppressed.
741         Implement insertion character ~ (insert string)
742         (First_Node): Minor adjustments to get better placement.
744         * frontend.adb:
745         Implement new -gnatl=xxx switch to output listing to file
747         * gnat1drv.adb:
748         Implement new -gnatl=xxx switch to output listing to file
750         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
751         (Commands_To_Stdout): New flag
752         Implement new -gnatl=xxx switch to output listing to file
753         New switch Dump_Source_Text
754         (Warn_On_Deleted_Code): New warning flag for -gnatwt
755         Define Error_Msg_Line_Length
756         (Warn_On_Assumed_Low_Bound): New switch
758         * osint.ads, osint.adb
759         (Normalize_Directory_Name): Fix bug.
760         Implement new -gnatl=xxx switch to output listing to file
761         (Concat): Removed, replaced by real concatenation
762         Make use of concatenation now allowed in compiler
763         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
764         we find the 'lib' or 'bin' directory even when the tool has been
765         invoked with a relative path.
766         (Executable_Name): New function taking string parameters.
768         * osint-c.ads, osint-c.adb:
769         Implement new -gnatl=xxx switch to output listing to file
771         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
773         * switch-c.adb:
774         Implement new -gnatl=xxx switch to output listing to file
775         Recognize new -gnatL switch
776         (no longer keep in old warning about old style usage)
777         Use concatenation to simplify code
778         Recognize -gnatjnn switch
779         (Scan_Front_End_Switches): Clean up handling of -gnatW
780         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
782 2006-10-31  Robert Dewar  <dewar@adacore.com>
784         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
785         (Set_Specific_Warning_Off): New procedure
786         (Warning_Specifically_Suppressed): New function
787         (Validate_Specific_Warnings): New procedure
788         (Output_Msg_Text): Complete rewrite to support -gnatjnn
790         * err_vars.ads: Implement insertion character ~ (insert string)
792 2006-10-31  Bob Duff  <duff@adacore.com>
793             Ed Schonberg  <schonberg@adacore.com>
795         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
796         the parent part is a build-in-place function call, generate assignments.
797         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
798         are build-in-place function calls.
799         (Replace_Self_Reference): New subsidiary of
800         Make_OK_Assignment_Statement, to replace an access attribute that is a
801         self-reference into an access to the appropriate component of the
802         target object. Generalizes previous mechanism to handle self-references
803         nested at any level.
804         (Is_Self_Referential_Init): Remove, not needed.
805         (Is_Self_Referential_Init): New predicate to simplify handling of self
806         referential components in record aggregates.
807         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
808         check for presence of entity before checking for self-reference.
809         (Has_Default_Init_Comps): Return True if a component association is a
810         self-reference to the enclosing type, which can only come from a
811         default initialization.
812         (Make_OK_Assignment_Statement): If the expression is of the form
813         Typ'Acc, where Acc is an access attribute, the expression comes from a
814         default initialized self-referential component.
815         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
816         that has been derived from several abstract interfaces we must also
817         initialize the tags of the secondary dispatch tables.
819 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
820             Thomas Quinot  <quinot@adacore.com>
821             Javier Miranda  <miranda@adacore.com>
822             Robert Dewar  <dewar@adacore.com>
824         * exp_attr.adb:
825         (Expand_Access_To_Protected_Op): If the context indicates that an access
826         to a local operation may be transfered outside of the object, create an
827         access to the wrapper operation that must be used in an external call.
828         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
829         target, pass the Valid attribute applied to a floating-point prefix on
830         to the back end without expansion.
831         (Storage_Size): Use the new run-time function Storage_Size to retrieve
832         the allocated storage when it is specified by a per-object expression.
833         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
834         Nothing to do here, the attribute has been rewritten during semantic
835         analysis.
836         (Expand_Attribute_Reference): Handle expansion of the new Priority
837         attribute
838         (Find_Fat_Info): Handle case of universal real
839         (Expand_Access_To_Protected_Op): Fix use of access to protected
840         subprogram from inside the body of a protected entry.
841         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
842         'Access and 'Unrestricted_Access, to transform the attribute reference
843         into a fat pointer.
844         (Is_Constrained_Aliased_View): New predicate to help determine whether a
845         subcomponent's enclosing variable is aliased with a constrained subtype.
846         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
847         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
848         an aliased prefix must be known to be constrained in order to use True
849         for the attribute value, and now it's possible for some aliased views
850         to be unconstrained.
852 2006-10-31  Robert Dewar  <dewar@adacore.com>
854         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
855         (Expand_Entity_Reference): Correct error of not handling subprogram
856         formals in current_value processing.
858 2006-10-31  Javier Miranda  <miranda@adacore.com>
859             Robert Dewar  <dewar@adacore.com>
860             Ed Schonberg  <schonberg@adacore.com>
861             Gary Dismukes  <dismukes@adacore.com>
863         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
864         register in the final list objects containing class-wide interfaces;
865         otherwise we incorrectly register the tag of the interface in the final
866         list.
867         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
868         generate the wrapper if the parent primitive is abstract. This is
869         required to report the correct error message.
870         (Expand_N_Subtype_Indication): Do validity checks on range
871         (Clean_Task_Names): If an initialization procedure includes a call to
872         initialize a task (sub)component, indicate that the procedure will use
873         the secondary stack.
874         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
875         compatibility for interfacing with CPP by default.
876         (Expand_N_Object_Declaration): Only build an Adjust call when the
877         object's type is a nonlimited controlled type.
878         * exp_ch3.adb: Add with and use of Exp_Ch6.
879         (Expand_N_Object_Declaration): Check for object initialization that is a
880         call to build-in-place function and apply Make_Build_In_Place_Call_In_
881         Object_Declaration to the call.
882         (Freeze_Type): When the designated type of an RACW was not frozen at the
883         point where the RACW was declared, validate the primitive operations
884         with respect to E.2.2(14) when it finally is frozen.
885         (Build_Initialization_Call,Expand_Record_Controller): Rename
886         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
887         return-by-reference has no meaning in Ada 2005.
888         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
889         to register tag of the immediate ancestor interfaces in the
890         run-time structure.
891         (Init_Secondary_Tags): Moved to the specification to allow the
892         initialization of extension aggregates with abstract interfaces.
893         (Build_Master_Renaming): Make public, for use by function declarations
894         whose return type is an anonymous access type.
895         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
896         Insert_List_Before_And_Analyze after the generation of the specs
897         associated with null procedures.
898         (Expand_Tagged_Root): Update documentation in its specification.
899         (Init_Secondary_Tags): Update documentation.
900         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
901         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
902         then generate code to inherit the contents of the dispatch table
903         directly from the ancestor.
904         (Expand_Record_Controller): Insert controller component after tags of
905         implemented interfaces.
906         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
907         create null procedure overridings when null procedures are inherited
908         from interfaces.
909         (Make_Null_Procedure_Specs): New procedure to generate null procedure
910         declarations for overriding null primitives inherited from interfaces.
911         (Is_Null_Interface_Procedure): New function in
912         Make_Null_Procedure_Specs.
913         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
914         immediate ancestor of a tagged type is an abstract interface type we
915         must generate the specification of the predefined primitives associated
916         with controlled types (because the dispatch table of the ancestor is
917         null and hence these entries cannot be inherited). This is required to
918         elaborate well the dispatch table.
920 2006-10-31  Javier Miranda  <miranda@adacore.com>
921             Ed Schonberg  <schonberg@adacore.com>
922             Bob Duff  <duff@adacore.com>
923             Gary Dismukes  <dismukes@adacore.com>
924             Robert Dewar  <dewar@adacore.com>
926         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
927         conversion.
928         (Expand_N_In): Do validity checks on range
929         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
930         (Expand_N_Allocator): For "new T", if the object is constrained by
931         discriminant defaults, allocate the right amount of memory, rather than
932         the maximum for type T.
933         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
934         when the allocator is initialized by a build-in-place call, since the
935         allocator is already rewritten as a reference to the function result,
936         and this prevents an unwanted duplication of the function call.
937         Add with and use of Exp_Ch6.
938         (Expand_Allocator_Expresssion): Check for an allocator whose expression
939         is a call to build-in-place function and apply
940         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
941         untagged designated types).
942         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
943         optimization if source or target is biased.
944         (Expand_N_Allocator): Add comments for case of an allocator within a
945         function that returns an anonymous access type designating tasks.
946         (Expand_N_Allocator): apply discriminant checks for access
947         discriminants of anonymous access types (AI-402, AI-416)
949 2006-10-31  Bob Duff  <duff@adacore.com>
950             Robert Dewar  <dewar@adacore.com>
951             Gary Dismukes  <dismukes@adacore.com>
952             Ed Schonberg  <schonberg@adacore.com>
954         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
956         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
957         (Expand_N_Assignment_Statement): Call
958         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
959         build-in-place function call. Currently, this can happen only for
960         assignments that come from aggregates.
961         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
962         in order to alleviate the upward compatibility introduced by AI-318.
963         (Expand_N_Extended_Return_Statement): Add support for handling the
964         return object as a build-in-place result.
965         (Expand_Non_Function_Return): Implement simple return statements nested
966         within an extended return.
967         (Enable_New_Return_Processing): Turn on the new processing of return
968         statements.
969         (Expand_Non_Function_Return): For a return within an extended return,
970         don't raise Program_Error, because Sem_Ch6 now gives a warning.
971         (Expand_N_Extended_Return_Statement): Implement AI-318
972         (Expand_Simple_Function_Return): Ditto.
973         (Expand_N_If_Statement): Handle new -gnatwt warning
974         (Expand_N_Case_Statement): Handle new -gnatwt warning
975         (Expand_N_Assignment): Handle assignment to the Priority attribute of
976         a protected object.
977         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
978         validity checking of assignments to elementary record components.
979         (Expand_N_Return_Statement): return Class Wide types on the secondary
980         stack independantly of their controlled status since with HIE runtimes,
981         class wide types are not potentially controlled anymore.
983         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
984         node kind.
986         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
987         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
988         it expects a block, procedure, or task. The return statement will get
989         turned into a block, and Expand_Cleanup_Actions will happen then.
991 2006-10-31  Robert Dewar  <dewar@adacore.com>
992             Ed Schonberg  <schonberg@adacore.com>
993             Bob Duff  <duff@adacore.com>
994             Gary Dismukes  <dismukes@adacore.com>
996         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
997         capability.
998         (Expand_Inlined_Call): Tagged types are by-reference types, and
999         therefore should be replaced by a renaming declaration in the expanded
1000         body, as is done for limited types.
1001         (Expand_Call): If this is a call to a function with dispatching access
1002         result, propagate tag from context.
1003         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
1004         CPP by default.
1005         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
1006         build-in-place when the right-hand side of an assignment is a
1007         build-in-place function call.
1008         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
1009         of the explicit dereference of the allocator to the result subtype of
1010         the build-in-place function. This is needed to satisfy type checking
1011         in cases where the caller's return object is created by an allocator for
1012         a class-wide access type and the type named in the allocator is a
1013         specific type.
1014         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
1015         conversion of the reference to the declared object to the result subtype
1016         of the build-in-place function. This is needed to satisfy type checking
1017         in cases where the declared object has a class-wide type. Also, in the
1018         class-wide case, change the type of the object entity to the specific
1019         result subtype of the function, to avoid passing a class-wide object
1020         without explicit initialization to the back end.
1021         (Register_Interface_DT_Entry): Moved outside the body of
1022         Freeze_Subprogram because this routine is now public; it is called from
1023         Check_Dispatching_Overriding to handle late overriding of abstract
1024         interface primitives.
1025         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
1026         adding an implicit access actual on a call to a build-in-place function.
1027         (Expand_Actuals): Test for an actual parameter that is a call to a
1028         build-in-place function and apply
1029         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
1030         (Is_Build_In_Place_Function): New function to determine whether an
1031         entity is a function whose calls should be handled as build-in-place.
1032         (Is_Build_In_Place_Function_Call): New function to determine whether an
1033         expression is a function call that should handled as build-in-place.
1034         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
1035         calls to build-in-place functions as the initialization of an allocator.
1036         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
1037         handling calls to build-in-place functions in contexts that do not
1038         involve init of a separate object (for example, actuals of subprogram
1039         calls).
1040         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
1041         handling calls to build-in-place functions as the initialization of an
1042         object declaration.
1043         (Detect_Infinite_Recursion): Add explicit parameter Process to
1044         instantiation of Traverse_Body to avoid unreferenced warning.
1045         (Check_Overriding_Inherited_Interfaces): Removed.
1046         (Register_Interface_DT_Entry): Code cleanup.
1047         (Register_Predefined_DT_Entry): Code cleanup.
1048         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
1049         inlined statements if within a transient scope.
1050         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
1051         formal parameters with occurrences of actuals in inlined body, establish
1052         visibility on the proper view of the actual's subtype for the body's
1053         context.
1054         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
1055         compatibility mode and we have an imported CPP subprogram because
1056         for now we assume that imported CPP primitives correspond with
1057         objects whose constructor is in the CPP side (and therefore we
1058         don't need to generate code to register them in the dispatch table).
1059         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
1060         aligned selected component.
1061         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
1062         the actual of an in-mode parameter is a type conversion.
1063         (Expand_Actuals): If the call does not come from source and the actual
1064         is potentially misaligned, let gigi handle it rather than rejecting the
1065         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
1066         Class Wide types as returning by reference independantly of their
1067         controlled status since with HIE runtimes class wide types are not
1068         potentially controlled anymore.
1070 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1072         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
1073         references that are private components of the protected object.
1074         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
1075         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
1076         instantiation to deal with warnings.
1077         (Initialize_Protection): If expression for priority is non-static, use
1078         System_Priority as its expected type, in case the expression has not
1079         been analyzed yet.
1081 2006-10-31  Robert Dewar  <dewar@adacore.com>
1083         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
1084         initialization of Homonym_Len.
1085         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
1086         names from fully qualified name. Fixes problem of duplicate
1087         external names differing only in the presence of such a block name.
1089 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1090             Pablo Oliveira  <oliveira@adacore.com>
1092         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
1093         subprogram Ids, even if they are not yet assigned.
1094         (Build_Subprogram_Id): It is now this function that will take care of
1095         calling Assign_Subprogram_Ids if necessary.
1096         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
1097         should be done only once they are assigned.
1098         (Build_From_Any_Function, case of tagged types): Add missing call to
1099         Allocate_Buffer.
1100         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
1101         type for an RACW type.
1102         (Add_RACW_Features): When processing an RACW declaration for which the
1103         designated type is already frozen, enforce E.2.2(14) rules immediately.
1104         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
1105         special reordering of controlling formals.
1107         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
1108         associated stub type for an RACW type.
1110 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1112         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
1113         fixed-point operations in an integer context, i.e. as operands of a
1114         conversion to an integer type, indicate that result must be rounded.
1116 2006-10-31  Robert Dewar  <dewar@adacore.com>
1118         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
1119         cases, pass the encoding method, since it is now required by the run
1120         time.
1122         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
1123         assumption that Str'First = 1.
1124         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
1125         it on to the Value_Wide_Wide_Character call.
1126         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
1127         properly handles a string of the form quote-encoded_wide_char-quote.
1129         * s-wchcnv.adb: Minor reformatting
1131 2006-10-31  Javier Miranda  <miranda@adacore.com>
1133         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1134         run-time membership test to ensure that the constructed object
1135         implements the target abstract interface.
1137 2006-10-31  Robert Dewar  <dewar@adacore.com>
1139         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
1140         Machine_Attribute pragma internally to implement the user pragma.
1141         Add processing for pragma Interface so that it is now completely
1142         equivalent to pragma Import.
1144         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
1145         so that it can be applied to all entities, including record components
1146         and enumeration literals.
1147         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
1148         priority ranges are correct, verify compatibility against task
1149         dispatching and locking policies, and if everything is correct an entry
1150         is added to the table containing priority specific dispatching entries
1151         for this compilation unit.
1152         (Delay_Config_Pragma_Analyze): Delay processing
1153         Priority_Specific_Dispatching pragmas because when processing the
1154         pragma we need to access run-time data, such as the range of
1155         System.Any_Priority.
1156         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
1157         Allow pragma Unreferenced as a context item
1158         Add pragma Preelaborable_Initialization
1159         (Analyze_Pragma, case Interface): Interface is extended so that it is
1160         now syntactically and semantically equivalent to Import.
1161         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
1162         insertion characters.
1163         Add handling for Pragma_Wide_Character_Encoding
1164         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
1165         never supercedes a real restriction, and that a real restriction
1166         always supercedes a warning.
1167         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
1168         appropriate form.
1170 2006-10-31  Bob Duff  <duff@adacore.com>
1171             Ed Schonberg  <schonberg@adacore.com>
1172             Robert Dewar  <dewar@adacore.com>
1174         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
1175         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
1176         Is_Inherently_Limited_Type, because return-by-reference has no meaning
1177         in Ada 2005.
1178         (Find_Node_To_Be_Wrapped): Use new method of determining the result
1179         type of the function containing a return statement, because the
1180         Return_Type field was removed. We now use the Return_Applies_To field.
1182         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
1183         (Build_Task_Image_Decl): If procedure is not called from an
1184         initialization procedure, indicate that function that builds task name
1185         uses the sec. stack. Otherwise the enclosing initialization procedure
1186         will carry the indication.
1187         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
1188         N_Object_Declaration instead.
1189         (Kill_Dead_Code): New interface to implement -gnatwt warning for
1190         conditional dead code killed, and change implementation accordingly.
1191         (Insert_Actions): Add N_Return_Object_Declaration case.
1192         Correct comment to mention N_Extension_Aggregate node.
1193         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
1194         attempts to save information for global variables which cannot be
1195         safely tracked.
1196         (Get_Current_Value_Condition): Handle conditions the other way round
1197         (constant on left). Also handle right operand of AND and AND THEN
1198         (Set_Current_Value_Condition): Corresponding changes
1199         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
1200         (Get_Current_Value_Condition): Handle simple boolean operands
1201         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
1202         (Get_Current_Value_Condition): If the variable reference is within an
1203         if-statement, does not appear in the list of then_statments, and does
1204         not come from source, treat it as being at unknown location.
1205         (Get_Current_Value_Condition): Enhance to allow while statements to be
1206         processed as well as if statements.
1207         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
1208         come from source.
1209         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
1210         of loop. This is safe now that we fixed Kill_Current_Values.
1211         (OK_To_Do_Constant_Replacement): Check whether current scope is
1212         Standard, before examining outer scopes.
1214 2006-10-31  Vincent Celier  <celier@adacore.com>
1216         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
1217         When True, apply VMS treatment to children of packages A, G, I and S.
1218         For F320-016
1220         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
1222 2006-10-31  Robert Dewar  <dewar@adacore.com>
1223             Ed Schonberg  <schonberg@adacore.com>
1225         * freeze.adb: Add handling of Last_Assignment field
1226         (Warn_Overlay): Supply missing continuation marks in error msgs
1227         (Freeze_Entity): Add check for Preelaborable_Initialization
1229         * g-comlin.adb: Add Warnings (Off) to prevent new warning
1231         * g-expect.adb: Add Warnings (Off) to prevent new warning
1233         * lib-xref.adb: Add handling of Last_Assignment field
1234         (Generate_Reference): Centralize handling of pragma Obsolescent here
1235         (Generate_Reference): Accept an implicit reference generated for a
1236         default in an instance.
1237         (Generate_Reference): Accept a reference for a node that is not in the
1238         main unit, if it is the generic body corresponding to an subprogram
1239         instantiation.
1241         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
1243         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
1244         -gnatwq/Q.
1245         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
1246         exception handler.
1247         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
1248         use clauses, to avoid messages on packages used to qualify, and also
1249         to avoid messages from obsolescent units.
1250         (Warn_On_Useless_Assignments): Don't generate messages for imported
1251         and exported variables.
1252         (Warn_On_Useless_Assignments): New procedure
1253         (Output_Obsolescent_Entity_Warnings): New procedure
1254         (Check_Code_Statement): New procedure
1256         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
1257         Change name Is_Ada_2005 to Is_Ada_2005_Only
1258         (Last_Assignment): New field for useless assignment warning
1260 2006-10-31  Olivier Hainque  <hainque@adacore.com>
1262         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
1263         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
1265 2006-10-31  Bob Duff  <duff@adacore.com>
1266             Robert Dewar  <dewar@adacore.com>
1267             Ed Schonberg  <schonberg@adacore.com>
1269         * g-awk.adb (Default_Session, Current_Session): Compile this file in
1270         Ada 95 mode, because it violates the new rules for AI-318.
1272         * g-awk.ads: Use overloaded subprograms in every case where we used to
1273         have a default of Current_Session. This makes the code closer to be
1274         correct for both Ada 95 and 2005.
1276         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
1277         code, relying on the fact that the compiler generates a warning
1278         instead of an error in -gnatg mode.
1280         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
1281         E_Return_Statement entity kind.
1282         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
1284         * par.adb (P_Interface_Type_Definition): Addition of one formal to
1285         report an error if the reserved word abstract has been previously found.
1286         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
1288         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
1289         parenthesized range attribute usage
1290         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
1292         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
1293         in the syntax for extended_return_statement. This is not in the latest
1294         RM, but the ARG is expected to issue an AI allowing this.
1295         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
1296         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
1297         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
1298         P_Return_Statement): Parse the new syntax for extended_return_statement.
1300         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
1301         Output_End_Missing): Add error-recovery code for the new
1302         extended_return_statement syntax; that is, the new E_Return entry on
1303         the scope stack.
1305         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
1306         limited to nonlimited, because otherwise we violate the new Ada 2005
1307         rules about returning limited types in function Create_AST_Handler in
1308         s-asthan.adb.
1310         * sem.adb (Analyze): Add cases for new node kinds
1311         N_Extended_Return_Statement and N_Return_Object_Declaration.
1313         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
1314         type is in the same category as type of context before applying check,
1315         to prevent anomalies in instantiations.
1316         (Resolve_Aggregate): Remove test for limited components in aggregates.
1317         It's unnecessary in Ada 95, because if it has limited components, then
1318         it must be limited. It's wrong in Ada 2005, because limited aggregates
1319         are now allowed.
1320         (Resolve_Record_Aggregate): Move check for limited types later, because
1321         OK_For_Limited_Init requires its argument to have been resolved.
1322         (Get_Value): When copying the component default expression for a
1323         defaulted association in an aggregate, use the sloc of the aggregate
1324         and not that of the original expression, to prevent spurious
1325         elaboration errors, when the expression includes function calls.
1326         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
1327         were missing. We also didn't handle qualified expressions. Now also
1328         allow function calls. Use new common routine OK_For_Limited_Init.
1329         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
1330         with space can upper case letter).
1332         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
1333         Has_Static_Discriminants flag
1334         (Record_Type_Declaration): Diagnose an attempt to declare an interface
1335         type with discriminants.
1336         (Process_Range_Expr_In_Decl): Do validity checks on range
1337         (Build_Discriminant_Constraints): Use updated form of
1338         Denotes_Discriminant.
1339         (Process_Subtype): If the subtype is a private subtype whose full view
1340         is a concurrent subtype, introduce an itype reference to prevent scope
1341         anomalies in gigi.
1342         (Build_Derived_Record_Type, Collect_Interface_Primitives,
1343         Record_Type_Declaration):  The functionality of the subprograms
1344         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
1345         is now performed by a single routine.
1346         (Build_Derived_Record_Type): If the type definition includes an explicit
1347         indication of limitedness, then the type must be marked as limited here
1348         to ensure that any access discriminants will not be treated as having
1349         a local anonymous access type.
1350         (Check_Abstract_Overriding): Issue a detailed error message when an
1351         abstract subprogram was not overridden due to incorrect mode of its
1352         first parameter.
1353         (Analyze_Private_Extension_Declaration): Add support for the analysis of
1354         synchronized private extension declarations. Verify that the ancestor is
1355         a limited or synchronized interface or in the generic case, the ancestor
1356         is a tagged limited type or synchronized interface and all progenitors
1357         are either limited or synchronized interfaces.
1358         Derived_Type_Declaration): Check for presence of private extension when
1359         dealing with synchronized formal derived types.
1360         Process_Full_View): Enchance the check done on the usage of "limited" by
1361         testing whether the private view is synchronized.
1362         Verify that a synchronized private view is completed by a protected or
1363         task type.
1364         (OK_For_Limited_Init_In_05): New function.
1365         (Analyze_Object_Declaration): Move check for limited types later,
1366         because OK_For_Limited_Init requires its argument to have been resolved.
1367         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1368         in order to alleviate the upward compatibility introduced by AI-318.
1369         (Constrain_Corresponding_Record): If the constraint is for a component
1370         subtype, mark the itype as frozen, to avoid out-of-scope references to
1371         discriminants in the back-end.
1372         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
1373         this subprogram against wrong sources.
1374         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
1375         discriminant of limited type completed with a protected type, when the
1376         discriminant is used to constrain a private component of the type, and
1377         expansion is disabled.
1378         (Find_Type_Of_Object): Do not treat a return subtype that is an
1379         anonymous subtype as a local_anonymous_type, because its accessibility
1380         level is the return type of the enclosing function.
1381         (Check_Initialization): In -gnatg mode, turn the error "cannot
1382         initialize entities of limited type" into a warning.
1383         (OK_For_Limited_Init): Return true for generated nodes, since it
1384         sometimes violates the legality rules.
1385         (Make_Incomplete_Declaration): If the type for which an incomplete
1386         declaration is created happens to be the currently visible entity,
1387         preserve the homonym chain when removing it from visibility.
1388         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
1389         inherited subprograms.
1390         (Access_Definition): If this is an access to function that is the return
1391         type of an access_to_function definition, context is a type declaration
1392         and the scope of the anonymous type is the current one.
1393         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
1394         incomplete subtype to the set of private dependents of the original
1395         incomplete type.
1396         (Constrain_Discriminated_Type): Emit an error message whenever an
1397         incomplete subtype is being constrained.
1398         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
1399         corresponding subtype of the full view of the original incomplete type.
1400         (Check_Incomplete): Properly detect invalid usage of incomplete types
1401         and subtypes.
1403 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1405         * g-catiio.ads, g-catiio.adb (Value): New function.
1406         Given an input String, try and parse a valid Time value.
1408 2006-10-31  Vincent Celier  <celier@adacore.com>
1410         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
1411         Integer_Address arithmetic, as in Set_Valid.
1413 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1414             Robert Dewar  <dewar@adacore.com>
1416         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
1417         handling executable extension manually and duplicating code.
1419         * make.adb: Implement new -S switch
1420         (Gnatmake): Use new function Osint.Executable_Name instead
1421         of handling executable extension manually.
1423         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
1424         is specified, the executable name ends with this suffix.
1425         Take advantage of Osint.Executable_Name instead of duplicating code.
1427         * switch-m.adb: Recognize new gnatmake -S switch
1429         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
1430         variable.
1431         (Get_Target_Parameters): Set Executable_Extension_On_Target if
1432         available.
1434         * makeusg.adb: Add line for gnatmake -S switch
1436 2006-10-31  Vincent Celier  <celier@adacore.com>
1438         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
1439         call it with -static-libgcc, as there are some platforms, such as
1440         Darwin, where one of these two switches is compulsory to link.
1442 2006-10-31  Vincent Celier  <celier@adacore.com>
1444         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
1445         instead of ADA_PROJECT_PATH, for the project path.
1446         (Gnatls): When displaying the project path directories, use host dir
1447         specs.
1449         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
1450         names in the project path, as absolute paths may correspond to
1451         multi-valued VMS logical names.
1453 2006-10-31  Vincent Celier  <celier@adacore.com>
1455         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
1456         absolute path name.
1457         (Locate_Regular_File): Ditto
1458         (Change_Dir): Remove, no longer used
1459         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
1460         on Windows. Get it calling Get_Current_Dir.
1461         (OpenVMS): Remove imported boolean, no longer needed.
1462         (Normalize_Pathname)[VMS]: Do not resolve directory names.
1463         (Pid_To_Integer): New function to convert a Process_Id to  Integer
1465 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1467         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
1468         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
1469         to No_Socket.
1470         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
1471         W_Sig_Socket.
1473 2006-10-31  Robert Dewar  <dewar@adacore.com>
1475         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
1476         initial letter o as a zero.
1478 2006-10-31  Robert Dewar  <dewar@adacore.com>
1480         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
1482 2006-10-31  Robert Dewar  <dewar@adacore.com>
1484         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
1485         variant records
1486         (Layout_Variant_Record): Retrieve the discriminants from the entity
1487         rather than from the type definition, because in the case of a full
1488         type for a private type we need to take the discriminants from the
1489         partial view.
1490         (Layout_Component_List): When applying the Max operator to variants with
1491         a nonstatic size, check whether either operand is static and scale that
1492         operand from bits to storage units before applying Max.
1493         (Layout_Type): In VMS, if a C-convention access type has no explicit
1494         size clause (and does not inherit one in the case of a derived type),
1495         then the size is reset to 32 from 64.
1497 2006-10-31  Vincent Celier  <celier@adacore.com>
1499         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
1500         its file has already been loaded, according to the unit being loaded,
1501         not to the current value of Multiple_Unit_Index.
1503 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1504             Eric Botcazou  <ebotcazou@adacore.com>
1505             Arnaud Charlet  <charlet@adacore.com>
1507         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
1508         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
1509         possible.
1510         (a-except.o): Pass it to the compiler.
1511         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
1512         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
1513         a-calend-mingw.adb version.
1515         * Makefile.rtl: Added s-dsaser.
1516         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
1517         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
1518         Ada.Dispatching.Round_Robin.
1519         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
1521         * Make-lang.in: Remove all references to gt-ada-decl.h.
1522         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
1523         sources.
1524         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
1525         Update dependencies.
1527         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
1529 2006-10-31  Vincent Celier  <celier@adacore.com>
1531         * mlib-utl.adb (Initialized): Remove, no longer used
1532         (Initialize): Remove, no longer used
1533         (Ar): If Ar_Exec is null, get the location of the archive builder and,
1534         if there is one, the archive indexer. Fail if the archive builder cannot
1535         be found.
1536         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
1537         be found.
1539 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1541         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
1542         Process_Body_Clauses): If the context of a body includes a use clause
1543         for P.Q then a with_clause for P in the same body is not redundant,
1544         even if the spec also has a with_clause on P.
1545         Add missing continuation mark to error msg
1546         (Build_Limited_Views): A limited view of a type is tagged if its
1547         declaration includes a record extension.
1548         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
1549         node, even if the subunit has errors. This avoids malfunction by
1550         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
1551         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
1552         generation of obsolescent messages for with statements (cannot do
1553         this too early, or we cannot implement avoiding the messages in the
1554         case of obsolescent units withing obsolescent units).
1555         (Install_Siblings): If the with_clause is on a remote descendant of
1556         an ancestor of the current compilation unit, find whether there is
1557         a sibling child unit that is immediately visible.
1558         (Remove_Private_With_Clauses): New procedure, invoked after completing
1559         the analysis of the private part of a nested package, to remove from
1560         visibility the private with_clauses of the enclosing package
1561         declaration.
1562         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
1563         now centralized in Generate_Reference.
1564         (Install_Limited_Context_Clauses): Remove superfluous error
1565         message associated with unlimited view visible through use
1566         and renamings. In addition, at the point in which the error
1567         is reported, we add the backslash to the text of the error
1568         to ensure that it is reported as a single error message.
1569         Use new // insertion for some continuation messages
1570         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
1571         to create implicit with_clause for parent unit mentioned in original
1572         limited_with_clause.
1573         (Install_Limited_With_Unit): Set entity of parent identifiers if the
1574         unit is a child unit. For ASIS queries.
1575         (Analyze_Subunit): If the subunit appears within a child unit, make all
1576         ancestor child units directly visible again.
1578 2006-10-31  Robert Dewar  <dewar@adacore.com>
1580         * par-ch10.adb (P_Context_Clause): Minor error message fix
1582 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1583             Javier Miranda  <miranda@adacore.com>
1585         * par-ch12.adb: Grammar update and cleanup.
1586         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
1587         support for synchronized derived type definitions.
1588         Add the new actual Abstract_Present to every call to
1589         P_Interface_Type_Definition.
1590         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
1591         a formal object declaration with an access definition or a subtype mark
1592         with a null exclusion.
1593         (P_Generic_Association): Handle association with box, and others_choice
1594         with box, to support Ada 2005 partially parametrized formal packages.
1596 2006-10-31  Robert Dewar  <dewar@adacore.com>
1597             Javier Miranda  <miranda@adacore.com>
1599         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
1600         (P_Type_Declaration): Remove barrier against the reserved word "limited"
1601         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
1602         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
1603         private extensions.
1604         (P_Type_Declaration): Add the new actual Abstract_Present to every call
1605         to P_Interface_Type_Definition.
1606         (P_Interface_Type_Definition): Addition of one formal to report an error
1607         if the reserved word abstract has been previously found.
1608         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
1609         object renaming declaration with an access definition or subtype mark
1610         with a possible null exclusion.
1612         * par-ch9.adb: Minor error msg fix
1614         * par-load.adb: Add missing continuation mark to error msg
1616         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
1618 2006-10-31  Vincent Celier  <celier@adacore.com>
1620         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
1621         unknown attribute in unknown package or in package that does not need
1622         to be checked.
1623         (Parse_Package_Declaration): Do not issue warning for unknown package in
1624         quiet output.
1626 2006-10-31  Vincent Celier  <celier@adacore.com>
1628         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
1629         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
1630         Packages_To_Check.
1632 2006-10-31  Vincent Celier  <celier@adacore.com>
1634         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
1635         on VMS, change "__" to '.' before checking the name.
1636         (Record_Ada_Source): Always add the source file name in the list of
1637         of sources, even if it is not the first time, as it is for another
1638         source index.
1639         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
1640         dot, instead of replacing only the first '_'.
1642         * prj-part.adb (Parse): Convert project file path to canonical form
1644         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
1645         extended, the project id of the project extending it is recorded in its
1646         data, even when it has already been processed as an imported project.
1648 2006-10-31  Robert Dewar  <dewar@adacore.com>
1650         * repinfo.adb (List_Entities): Don't list entities from renaming
1651         declarations.
1653 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1654             Robert Dewar  <dewar@adacore.com>
1656         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
1657         only a restriction warning is active for the given restriction. This is
1658         desirable because we do not want to modify code in the case where only
1659         a warning is set.
1660         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
1661         causes overriding of real restrictions.
1662         Take advantage of new No_Restrictions constant.
1664         * raise.h: (__gnat_set_globals): Change profile.
1666 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1668         * rtsfind.adb: Remove s-polint from comment as it exists no more.
1670         * rtsfind.ads:
1671         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
1672         Move all the entities in obsolete package System.PolyORB_Interface to
1673         System.Partition_Interface.
1674         (RE_Storage_Size): New function in System.Tasking.
1675         (RE_Get_Ceiling): New entity.
1676         (RE_Set_Ceiling): New entity.
1677         (RO_PE_Get_Ceiling): New entity.
1678         (RO_RE_Set_Ceiling): New entity.
1679         (Inherit_CPP_DT): New entity
1681 2006-10-31  Robert Dewar  <dewar@adacore.com>
1683         * scng.adb (Scan, case of numeric literal): Better msg for identifier
1684         starting with a digit.
1686 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1687             Thomas Quinot  <quinot@adacore.com>
1688             Javier Miranda  <miranda@adacore.com>
1689             Gary Dismukes  <dismukes@adacore.com>
1691         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
1692         properly an attempt to apply Unchecked_Access to a protected operation.
1693         (OK_Self_Reference): New subprogram to check the legality of an access
1694         attribute whose prefix is the type of an enclosing aggregate.
1695         Generalizes previous mechanism to handle attribute references nested
1696         arbitrarily deep within the aggregate.
1697         (Analyze_Access_Attribute): An access attribute whose prefix is a type
1698         can appear in an aggregate if this is a default-initialized aggregate
1699         for a self-referential type.
1700         (Resolve_Attribute, case Access): Ditto.
1701         Add support for new implementation defined attribute Stub_Type.
1702         (Eval_Attribute, case Attribute_Stub_Type): New case.
1703         (Analyze_Attribute, case Attribute_Stub_Type): New case.
1704         (Stream_Attribute_Available): Implement using new subprogram from
1705         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
1706         Has_Specified_Stream_Attribute flag.
1707         Disallow Storage_Size and Storage_Pool for access to subprogram
1708         (Resolve_Attribute, case 'Access et al): Take into account anonymous
1709         access types of return subtypes in extended return statements. Remove
1710         accessibility checks on anonymous access types when Unchecked_Access is
1711         used.
1712         (Analyze_Attribute): Add support for the use of 'Class to convert
1713         a class-wide interface to a tagged type.
1714         Add support for the attribute Priority.
1715         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
1716         whether the designated type is discriminated with a constrained partial
1717         view and require static matching in that case.
1718         Add local variable Des_Btyp. The Designated_Type
1719         of an access to incomplete subtype is either its non-limited view if
1720         coming from a limited with or its etype if regular incomplete subtype.
1722         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
1723         Fix predicate to identify and allow cases of (expander-generated)
1724         references to tag of designated object of a RACW.
1725         (Validate_Static_Object_Name): In Ada 2005, a formal object is
1726         non-static, and therefore cannot appear as a primary in a preelaborable
1727         package.
1728         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
1729         Has_Read_Write_Attributes.
1730         (Has_Read_Write_Attributes): Reimplement in termes of
1731         Has_Stream_Attribute_Definition.
1732         (Missing_Read_Write_Attributes): When checking component types in a
1733         record, unconditionally call Missing_Read_Write_Attributes recursively
1734         (remove guard checking for Is_Record_Type / Is_Access_Type).
1736 2006-10-31  Robert Dewar  <dewar@adacore.com>
1738         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
1739         useless assignments here and conditionalize it on absence of exception
1740         handlers.
1741         (Analyze_Exception_Handlers): Small code reorganization of error
1742         detection code, for new handling of formal packages.
1744 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1745             Hristian Kirtchev  <kirtchev@adacore.com>
1747         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
1748         that has been constant-folded, preserve information of original tree,
1749         for ASIS uses.
1750         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
1751         generated private extension declaration if the formal derived type is
1752         synchronized. Carry synchronized present over to the generated private
1753         extension.
1754         (Validate_Derived_Type_Instance): Ensure that the actual of a
1755         synchronized formal derived type is a synchronized tagged type.
1756         (Instantiate_Formal_Package): When creating the instantiation used to
1757         validate the actual package of a formal declared without a box, check
1758         whether the formal itself depends on a prior actual.
1759         (Instantiate_Formal_Subprogram): Create new entities for the defining
1760         identifiers of the formals in the renaming declaration, for ASIS use.
1761         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
1762         a renaming declaration or a subtype declaration for an actual in an
1763         instance, capture location information of declaration in generic, for
1764         ASIS use.
1765         (Instantiate_Formal_Package): Add comments on needed additional tests.
1766         AI-317 (partial parametrization) is fully implemented.
1767         (Validate_Private_Type_Instance): Add check for actual which
1768         must have preelaborable initialization
1769         Use new // insertion for some continuation messages
1770         (Analyze_Formal_Object_Declaration): Change usage of Expression to
1771         Default_Expression. Add type retrieval when the declaration has an
1772         access definition. Update premature usage of incomplete type check.
1773         (Check_Access_Definition): New subsidiary routine. Check whether the
1774         current compilation version is Ada 05 and the supplied node has an
1775         access definition.
1776         (Instantiate object): Alphabetize local variables. Handle the creation
1777         of new renaming declarations with respect to the kind of definition
1778         used - either an access definition or a subtype mark. Guard against
1779         unnecessary error message in the context of anonymous access types after
1780         they have been resolved. Add check for required null exclusion in a
1781         formal object declaration.
1782         (Switch_View): A private subtype of a non-private type needs to be
1783         switched (the base type can have been switched without its private
1784         dependents because of the last branch of Check_Private_View.
1785         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
1786         value from BT.
1787         (Instantiate_Type): Emit an error message whenever a class-wide type of
1788         a tagged incomplete type is used as a generic actual.
1789         (Find_Actual_Type): Extend routine to handle a component type in a child
1790         unit that is imported from a formal package in a parent.
1791         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
1792         agree on constrainedness, rather than checking against ultimate ancestor
1793         (Instantiate_Subprogram_Body): Create a cross-reference link to the
1794         generic body, for navigation purposes.
1796 2006-10-31  Robert Dewar  <dewar@adacore.com>
1797             Thomas Quinot  <quinot@adacore.com>
1799         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
1800         type.
1801         (New_Stream_Subprogram): When processing an attribute definition clause
1802         for a stream-oriented subprogram, record an entity node occurring at
1803         the point of clause to use for checking the visibility of the clause,
1804         as defined by 8.3(23) as amended by AI-195.
1805         (New_Stream_Subprogram): New procedure, factoring behaviour from both
1806          New_Stream_Function and New_Stream_Procedure.
1807         (New_Stream_Function, New_Stream_Procedure): Removed.
1808         (Analyze_Attribute_Definition_Clause, case Address): Check new
1809         Alignment_Check check
1811 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1812             Javier Miranda  <miranda@adacore.com>
1813             Robert Dewar  <dewar@adacore.com>
1815         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
1816         generate the same errors compiling under -gnatc.
1817         (Try_Object_Operation): If no candidate interpretation succeeds, but
1818         there is at least one primitive operation with the right name, report
1819         error in call rather than on a malformed selected component.
1820         (Analyze_Selected_Component): If the prefix is an incomplete type from
1821         a limited view, and the full view is available, use the full view to
1822         determine whether this is a prefixed call to a primitive operation.
1823         (Operator_Check): Verify that a candidate interpretation is a binary
1824         operation before checking the type of its second formal.
1825         (Analyze_Call): Add additional warnings for function call contexts not
1826         yet supported.
1827         (Analyze_Allocator): Move the check for "initialization not allowed for
1828         limited types" after analyzing the expression. This is necessary,
1829         because OK_For_Limited_Init looks at the structure of the expression.
1830         Before analysis, we don't necessarily know what sort of expression it
1831         is. For example, we don't know whether F(X) is a function call or an
1832         indexed component; the former is legal in Ada 2005; the latter is not.
1833         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
1834         were missing. We also didn't handle qualified expressions. Now also
1835         allow function calls. Use new common routine OK_For_Limited_Init.
1836         (Analyze_Type_Conversion): Do not perform some legality checks in an
1837         instance, because the error message will be redundant or spurious.
1838         (Analyze_Overloaded_Selected_Component): Do not do style check when
1839         setting an entity, since we do not know it is the right entity yet.
1840         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
1841         (Analyze_Overloaded_Selected_Component): Same change
1842         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
1843         since regular incomplete subtypes are transformed into corresponding
1844         subtypes of their full views.
1845         (Complete_Object_Operation): Treat name of transformed subprogram call
1846         as coming from source, for browsing purposes.
1847         (Try_Primitive_Operation): If formal is an access parameter, compare
1848         with base type of object to determine whether it is a primitive
1849         operation.
1850         (Operator_Check): If no interpretation of the operator matches, check
1851         whether a use clause on any candidate might make the operation legal.
1852         (Try_Class_Wide_Operation): Check whether the first parameter is an
1853         access type whose designated type is class-wide.
1855 2006-10-31  Robert Dewar  <dewar@adacore.com>
1856             Ed Schonberg  <schonberg@adacore.com>
1857             Gary Dismukes  <dismukes@adacore.com>
1859         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
1860         warn on infinite loops.
1861         Add \\ to some continuation messages
1862         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
1863         (Process_Bounds): If the bounds are integer literals that result from
1864         constant-folding, and they carry a user-defined type, preserve that type
1865         rather than treating this as an integer range.
1866         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
1867         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
1868         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
1869         left hand side of assignment.
1870         (Analyze_Assignment): Add suport to manage assigments to the attribute
1871         priority of a protected object.
1872         (Check_Possible_Current_Value_Condition): Allow fully qualified names
1873         not just identifiers.
1874         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
1875         or AND THEN for possible tracking.
1876         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
1877         case of while loops so we can track values in the loop body.
1879 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1880             Hristian Kirtchev  <kirtchev@adacore.com>
1881             Bob Duff  <duff@adacore.com>
1883         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
1884         procedure cannot be a protected operation (it is a basic_declaration,
1885         not a subprogram_declaration).
1886         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
1887         Subp. Add logic for entry processing.
1888         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
1889         Determine whether an entry or subprogram of a protected or task type
1890         override an inherited primitive of an implemented interface.
1891         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
1892         Update the actual used in calls to Check_Overriding_Indicator.
1893         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
1894         generate the proper reference to the parent unit, for cross-reference.
1895         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
1896         Is_Formal.
1897         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1898         (Add_Extra_Formal): Revise procedure to allow passing in associated
1899         entity, scope, and name suffix, and handle setting of the new
1900         Extra_Formals field.
1901         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
1902         pass new parameters. Add support for adding the new extra access formal
1903         for functions whose calls are treated as build-in-place.
1904         (Analyze_A_Return_Statement): Correct casing in error message.
1905         Move Pop_Scope to after Analyze_Function_Return, because an extended
1906         return statement really is a full-fledged scope. Otherwise, visibility
1907         doesn't work right. Correct use of "\" for continuation messages.
1908         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
1909         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
1910         the node doesn't get properly marked as analyzed.
1911         (Analyze_Subprogram_Body): If subprogram is a function that returns
1912         an anonymous access type that denotes a task, build a Master Entity
1913         for it.
1914         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
1915         proper usage of null exclusion in a result definition.
1916         (Process_Formals): Code cleanup and new error message.
1917         (Process_Formals): Detect incorrect application of null exclusion to
1918         non-access types.
1919         (Conforming_Types): Handle conformance between [sub]types and itypes
1920          generated for entities that have null exclusions applied to them.
1921         (Maybe_Primitive_Operation): Add an additional type retrieval when the
1922          base type is an access subtype. This case arrises with null exclusions.
1923         (New_Overloaded_Entity): Do not remove the overriden entity from the
1924         homonym chain if it corresponds with an abstract interface primitive.
1925         (Process_Formals): Replace membership test agains Incomplete_Kind with a
1926         call to the synthesized predicate Is_Incomplete_Type.
1927         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
1928         primitives.
1929         (Analyze_Subprogram_Declaration): Check that abstract interface
1930         primitives are abstract or null.
1931         (Analyze_Subprogram_Specification): Remove previous check for abstract
1932         interfaces because it was not complete.
1933         (Has_Interface_Formals): Removed.
1935 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1936             Javier Miranda  <miranda@adacore.com>
1938         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
1939         of Analyze_Package_Body, to create Itype references for anonymous
1940         access types created in the package declaration, whose designated types
1941         may have only a limited view.
1942         (Analyze_Package_Specification): For the private part of a nested
1943         package, install private_with_clauses of enclosing compilation unit if
1944         we are in its visible part.
1945         (Declare_Inherited_Private_Subprograms): Complete barrier
1946         to ensure that the primitive operation has an alias to some parent
1947         primitive. This is now required because, after the changes done for the
1948         implementation of abstract interfaces, the contents of the list of
1949         primitives has entities whose alias attribute references entities of
1950         such list of primitives.
1951         (Analyze_Package_Specification): Simplify code that handles parent units
1952         of instances and formal packages.
1953         (Uninstall_Declarations): Check the convention consistency among
1954         primitive overriding operations of a tagged record type.
1956 2006-10-31  Robert Dewar  <dewar@adacore.com>
1957             Hristian Kirtchev  <kirtchev@adacore.com>
1958             Javier Miranda  <miranda@adacore.com>
1959             Ed Schonberg  <schonberg@adacore.com>
1961         * sem_ch8.adb: Minor error msg rewording
1962         (Undefined): When checking for misspellings, invert arguments (to get
1963         expected and found set right)
1964         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
1965         (Analyze_Generic_Renaming): Same fix
1966         (Use_One_Package): Do not take into account the internal entities of
1967         abstract interfaces during the analysis of entities that are marked
1968         as potentially use-visible.
1969         (Find_Type): Handle the case of an attribute reference for
1970         implementation defined attribute Stub_Type (simply let the analysis of
1971         the attribute reference rewrite it).
1972         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
1973         type that appears in a Use_Type clause.
1974         (Analyze_Object_Renaming): Add support for renaming of the Priority
1975         attribute.
1976         (Find_Type): In Ada 2005, a task type can be used within its own body,
1977         when it appears in an access definition.
1978         (Analyze_Object_Renaming): Remove warning on null_exclusion.
1979         (Analyze_Object_Renaming): Introduce checks for required null exclusion
1980          in a formal object declaration or in a subtype declaration.
1981         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
1982         (Check_Null_Exclusion): New local routine to
1983         Analyze_Subprogram_Renaming. Check whether the formals and return
1984         profile of a renamed subprogram have required null exclusions when
1985         their counterparts of the renaming already impose them.
1986         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
1987         Determine whether an entity is inside a generic scope.
1988         (In_Open_Scope): First pass of documentation update.
1989         (Find_Expanded_Name): Add support for shadow entities associated with
1990         limited withed packages. This is required to handle nested packages.
1991         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
1992         that makes a renaming of a limited withed package illegal.
1994 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1995             Ed Schonberg  <schonberg@adacore.com>
1997         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
1998         Check_Overriding_Indicator.
1999         (Analyze_Task_Definition): Ditto.
2000         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
2001         (Check_Overriding_Indicator): To find overridden interface operation,
2002         examine only homonyms that have an explicit subprogram declaration, not
2003         inherited operations created by an unrelated type derivation.
2004         (Check_Overriding_Indicator): When checking for the presence of "null"
2005         in a procedure, ensure that the queried node is a procedure
2006         specification.
2007         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
2008         type when the formal is an access to variable.
2009         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
2010         (Analyze_Task_Type): Same addition
2011         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
2012         provide navigation capabilities for entries.
2014 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2015             Ed Schonberg  <schonberg@adacore.com>
2016             Javier Miranda  <miranda@adacore.com>
2017             Gary Dismukes  <dismukes@adacore.com>
2019         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
2020         inherited from an interface ancestor by another interface in the
2021         context of an instance as 'late'.
2022         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
2023         of a call to a function that dispatches on access result.
2024         (Check_Dispatching_Operation): In case of late overriding of a primitive
2025         that covers abstract interface subprograms we register it in all the
2026         secondary dispatch tables associated with abstract interfaces.
2027         (Check_Dispatching_Call): Add check that a dispatching call is not made
2028         to a function with a controlling result of a limited type. This is a
2029         current implementation restriction.
2030         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
2031         (Check_Dispatching_Operation): Do no emit a warning if the controlling
2032         argument is an interface type that is a generic formal.
2033         (Is_Interface_Subprogram): Removed.
2034         (Check_Dispatching_Operation): If the subprogram is not a dispatching
2035         operation, check the formals to handle the case in which it is
2036         associated with an abstract interface type.
2038 2006-10-31  Robert Dewar  <dewar@adacore.com>
2039             Ed Schonberg  <schonberg@adacore.com>
2041         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
2042         Add new calls to this procedure during traversal
2043         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
2044         another unit if expansion is disabled.
2046 2006-10-31  Robert Dewar  <dewar@adacore.com>
2048         * sem_eval.adb (Compile_Time_Compare): Make use of information from
2049         Current_Value in the conditional case, to evaluate additional
2050         comparisons at compile time.
2052 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2053             Hristian Kirtchev  <kirtchev@adacore.com>
2054             Javier Miranda  <miranda@adacore.com>
2056         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
2057         subprogram type to provide better diagnostics in case of ambiguity.
2058         (Covers): Handle coverage of formal and actual anonymous access types in
2059         the context of generic instantiation.
2060         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
2061         abstract interface types; this is required to handle concurrent types
2062         with discriminants and abstract interface types.
2063         (Covers): Include type coverage of both regular incomplete subtypes and
2064         incomplete subtypes of incomplete type visibles through a limited with
2065         clause.
2067 2006-10-31  Robert Dewar  <dewar@adacore.com>
2068             Hristian Kirtchev  <kirtchev@adacore.com>
2069             Ed Schonberg  <schonberg@adacore.com>
2071         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
2072         messages for entities in packages which are not used.
2073         (Collect_Synchronized_Interfaces): New procedure.
2074         (Overrides_Synchronized_Primitive): New function.
2075         (Denotes_Discriminant): Extend predicate to apply to task types.
2076         Add missing continuation marks in error msgs
2077         (Unqualify): New function for removing zero or more levels of
2078         qualification from an expression. There are numerous places where this
2079         ought to be used, but we currently only deal properly with zero or one
2080         level.
2081         (In_Instance); The analysis of the actuals in the instantiation of a
2082         child unit is not within an instantiation, even though the parent
2083         instance is on the scope stack.
2084         (Safe_To_Capture_Value): Exclude the case of variables that are
2085         renamings.
2086         (Check_Obsolescent): Removed
2087         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
2088         is an aliased view, even when rewritten as a reference to the target
2089         object in an assignment.
2090         (Get_Subprogram_Entity): New function
2091         (Known_To_Be_Assigned): New function
2092         (Type_Access_Level): Compute properly the access level of a return
2093         subtype that is an anonymous access type.
2094         (Explain_Limited_Type): Correct use of "\" for continuation messages.
2095         (Is_Transfer): The new extended_return_statement causes a transfer of
2096         control.
2097         (Has_Preelaborable_Initialization): New function
2098         (Has_Null_Exclusion): New function. Given a node N, determine whether it
2099         has a null exclusion depending on its Nkind.
2100         Change Is_Lvalue to May_Be_Lvalue
2101         (May_Be_Lvalue): Extensive additional code to deal with subprogram
2102         arguments (IN parameters are not Lvalues, IN OUT parameters are).
2103         (Safe_To_Capture_Value): Extend functionality so it can be used for
2104         the current value condition case.
2105         (Has_Compatible_Alignment): New function
2106         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
2107         objects to handle the Ada 2005 case, where aliasedness no longer implies
2108         that the object is constrained. In particular, for dereferenced names,
2109         the designated object must be assumed to be unconstrained.
2110         (Kill_Current_Values): Properly deal with the case where we encounter
2111         a loop in the scope chain.
2112         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
2113         a value.
2114         (Compile_Time_Constraint_Error): Improve error message in error case
2116         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
2117         associated with entities of abstract interface primitives.
2118         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
2120 2006-10-31  Robert Dewar  <dewar@adacore.com>
2122         * s-osinte-tru64.adb:
2123         Mark Asm statements Volatile to prevent warnings (seems a
2124         reasonable change anyway)
2125         Fixes new warnings
2127         * s-mastop-irix.adb: Add Volatile to Asm statements
2128         Suppresses warning, and seems appropriate in any case
2130         * s-osinte-vms.adb: Add Volatile to Asm statement
2132         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
2134         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
2135         returned.
2136         Add call to Check_Code_Statement
2138 2006-10-31  Robert Dewar  <dewar@adacore.com>
2139             Ed Schonberg  <schonberg@adacore.com>
2140             Bob Duff  <duff@adacore.com>
2142         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
2143         Synchronized_Present): Add Formal_Derived_Type_Definition and
2144         Private_Extension_Declaration to the list of assertions.
2145         (Is_Entry_Barrier_Function): New flag
2146         (Has_Self_Reference): New flag on aggregates, to indicate that they
2147         contain a reference to the enclosing type, inserted through a default
2148         initialization.
2149         (Next_Rep_Item): Move from Node4 to Node5.
2150         (Entity): Add this field for N_Attribute_Definition_Clause.
2151         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
2152         (N_Return_Object_Declaration): Remove this node kind. We now use
2153         N_Object_Declaration instead.
2154         (Actual_Designated_Subtype): Move to a different place to make room in
2155         N_Extended_Return_Statement.
2156         (Procedure_To_Call): Move to a different place to make room in
2157         N_Extended_Return_Statement.
2158         (Return_Type): Removed this field to make room in return statements
2159         (both kinds).
2160         (Return_Statement_Entity): New field in return statements, in part to
2161         replace Return_Type, and in part to support the fact that return
2162         statements are now pushed on the scope stack during semantic analysis.
2163         (Return_Object_Declarations): New field to support extended return
2164         statements.
2165         (N_Extended_Return_Statement): New node for extended_return_statement
2166         nonterminal.
2167         (N_Return_Object_Declaration): New node for part of
2168         extended_return_statement nonterminal. Needed because all the necessary
2169         fields won't fit in N_Extended_Return_Statement.
2170         Generic_associations now carry the Box_Present flag, to indicate a
2171         default for an actual in a partially parametrized formal package.
2173         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
2174         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
2175         and for the new predefined dispatching policies: EDF_Across_Priorities,
2176         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
2177         Introduce new name Stub_Type for implementation defined attribute.
2178         Add pragma Preelaborable_Initialization
2179         Add entry for Priority attribute.
2180         Add Pragma_Wide_Character_Encoding
2181         (Get_Convention_Name): Given a convention id, this function returns the
2182         corresponding name id from the names table.
2184 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2185             Robert Dewar  <dewar@adacore.com>
2186             Bob Duff  <duff@adacore.com>
2188         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
2189         print null exclusion twice in the case of an access definition,
2190         Implement new -gnatL switch
2191         Remove N_Return_Object_Declaration. We now use
2192         N_Object_Declaration instead. Implement the case for
2193         N_Extended_Return_Statement. Alphabetize the cases.
2194         Add cases for new nodes N_Extended_Return_Statement and
2195         N_Return_Object_Declaration. The code is not yet written.
2196         Update the output for N_Formal_Object_Declaration
2197         and N_Object_Renaming_Declaration.
2198         (Write_Itype): Account for the case of a modular integer subtype whose
2199         base type is private.
2201 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
2203         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
2204         Remove elaboration code, now done in the binder.
2206         * s-rident.ads: Make this unit Preelaborate.
2207         (No_Restrictions): New constant used to clean up code and follow
2208         preelaborate constraints.
2210         * s-stalib.adb:
2211         Add System.Restrictions dependence, referenced directly from the
2212         binder generated file.
2214 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
2216         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
2217         True when AAMP extended floating-point is in use (48-bit). Change type
2218         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
2219         the two byte array types on AFloat. Change type of IV_Ilf overlay
2220         variable from Byte8 to ByteLF. Add appropriate initializations of
2221         floating-point overlays for AAMP cases.
2223 2006-10-31  Javier Miranda  <miranda@adacore.com>
2225         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
2226         (Get_Ceiling): New subprogram that returns
2227         the ceiling priority of the protected object.
2228         (Set_Ceiling): New subprogram that sets the new ceiling priority of
2229         the protected object.
2231         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
2233         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
2235 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2237         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
2238         requeuing to the same protected object to give higher priority tasks
2239         the opportunity to execute.
2241 2006-10-31  Robert Dewar  <dewar@adacore.com>
2243         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
2244         add more precise check for the character sequence that follows '[' to
2245         avoid possible confusion in case if '[' is the last character of a
2246         string literals.
2247         (Scan_Wide): Always allow brackets encoding
2249 2006-10-31  Olivier Hainque  <hainque@adacore.com>
2251         * s-stchop.ads: make this unit preelaborate. This is desirable in
2252         general and made mandatory by the use of this unit by s-taprop which
2253         is itself preelaborate.
2255         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
2256         Td_Events component.
2258 2006-10-31  Vincent Celier  <celier@adacore.com>
2260         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
2261         in file names.
2263 2006-10-31  Vincent Celier  <celier@adacore.com>
2265         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
2267 2006-10-31  Vincent Celier  <celier@adacore.com>
2269         * makegpr.adb (Check_Compilation_Needed): Take into account path names
2270         with spaces.
2271         (Check_Compilation_Needed): When checking a C or C++ source, do not
2272         resolve symbolic links.
2273         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
2274         When not in verbose mode and Ellipse is True, display "..." for the
2275         first argument with Display set to False.
2276         (Build_Global_Archive): Always set Display True for the first object
2277         file. Call Display_Command with Ellipse set to True.
2279 2006-10-31  Matt Heaney  <heaney@adacore.com>
2281         * a-crbtgo.ads: Commented each subprogram
2283         * a-crbtgo.adb: Added reference to book from which algorithms were
2284         adapted.
2286         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
2287         indicate which child.
2288         (Generic_Conditional_Insert): changed parameter name from "Success" to
2289         "Inserted".
2290         (Generic_Unconditional_Insert_With_Hint): improved algorithm
2292         * a-coorse.adb (Replace_Element): changed parameter name in call to
2293         conditional insert operation.
2295         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
2297         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
2298         Generic_Iteration
2300         * a-ciorse.adb (Replace_Element): changed parameter name in call to
2301         conditional insert operation.
2303         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
2304         Generic_Iteration.
2306         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
2307         instead of mode inout.
2309         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
2310         draft
2311         (Generic_Read): preserve existing buckets array if possible
2312         (Generic_Write): don't send buckets array length anymore
2314         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
2315         instead of mode inout.
2317         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
2318         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2320         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
2321         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2322         (Replace_Element): local operation is now an instantiation
2324         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
2325         check current length.
2326         (Generic_Replace_Element): new operation
2328 2006-10-31  Doug Rupp  <rupp@adacore.com>
2330         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
2331         Call TBK$SYMBOLIZE without omitting parameters.
2333 2006-10-31  Vincent Celier  <celier@adacore.com>
2335         * symbols-processing-vms-ia64.adb,
2336         symbols-processing-vms-alpha.adb (Process): Do not include symbols
2337         that come from generic instantiations in bodies.
2339 2006-10-31  Pat Rogers  <rogers@adacore.com>
2341         * a-rttiev.ads, a-rttiev.adb:
2342         This is a significant redesign primarily for the sake of automatic
2343         timer task termination but also to fix a design flaw.
2344         Therefore we are now using an RTS lock, instead of a protected
2345         object, to provide mutual exclusion to the queue of pending events
2346         and the type Timing_Event is no longer a protected type.
2348 2006-10-31  Robert Dewar  <dewar@adacore.com>
2349             Cyrille Comar  <comar@adacore.com>
2350             Ben Brosgol  <brosgol@adacore.com>
2352         * debug.adb:  Update flags documentation
2354         * gnat_ugn.texi: Add documentation for new -gnatwq switch
2355         Clean up documentation for several other warning switches
2356         Clarify how task stack size can be specified with various
2357         versions of Windows.
2358         Add note that -gnatVo includes ranges including loops
2359         Add documentation for -gnatL switch
2360         Add note on elaboration warning for initializing variables
2361         Add documentation for new -gnatwt warning switch
2362         Document new form of pragma Warnings (On|Off, string)
2363         Add comment on use of pragma Warnings to control warnings
2364         Add documentation for -gnatjnn switch
2365         Modify section on interfacing with C for VMS 64-bit.
2366         Add doc for -gnatVe/E
2367         Add documentation of new warning flags -gnatww/-gnatwW
2368         Add warnings about address clause overlays to list of warnings
2369         (Exception Handling Control): Document that the option --RTS must be
2370         used consistently for gcc and gnatbind.
2371         Clarify that inlining is not always possible
2372         Update documentation on pragma Unchecked_Union.
2374         * gnat_rm.texi:
2375         Add documentation for new extended version of pragma Obsolescent
2376         Add documentation for implementation defined attribute 'Stub_Type.
2377         Add note on use of Volatile in asm statements
2378         Add documentation on use of pragma Unreferenced in context clause
2379         Document new form of pragma Warnings (On|Off, pattern)
2380         Document pragma Wide_Character_Encoding
2381         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
2382         enforced if code generation is active.
2383         Add section on pragma Suppress to document GNAT specific check
2384         Alignment_Check
2385         Clarify difference between No_Dispatching_Calls & No_Dispatch.
2386         Add documentation for pragma Restrictions (No_Elaboration_Code)
2388         * gnat-style.texi:
2389         Add comments on layout of subprogram local variables in the
2390         presence of nested subprograms.
2392         * ug_words: Resync.
2394         * elists.ads: Minor reformatting
2395         Node returns Node_Or_Entity_Id (doc change only)
2397         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
2399         * g-arrspl.ads (Create): Update comments.
2401         * sem.ads: Add details on the handling of the scope stack.
2403         * usage.adb: Update documentation.
2405         * validsw.ads, validsw.adb:
2406         Add definition of Validity_Check_Components and implement -gnatVe/E
2408         * vms_data.ads: Add missing VMS qualifiers.
2410         * s-addope.ads: Add documentation on overflow and divide by zero
2412 2006-10-31  Robert Dewar  <dewar@adacore.com>
2413             Thomas Quinot  <quinot@adacore.com>
2414             Arnaud Charlet  <charlet@adacore.com>
2416         * fmap.adb: Put routines in alpha order
2418         * g-boumai.ads: Remove redundant 'in' keywords
2420         * g-cgi.adb: Minor reformatting
2422         * g-cgi.ads: Remove redundant 'in' keywords
2424         * get_targ.adb: Put routines in alpha order
2426         * prj-attr.ads: Minor reformatting
2428         * s-atacco.ads: Minor reformatting
2430         * scn.adb: Put routines in alpha order
2432         * sinput-l.adb: Minor comment fix
2434         * sinput-p.adb: Minor comment fix
2436         * s-maccod.ads: Minor reformatting
2438         * s-memory.adb: Minor reformatting
2440         * s-htable.adb: Fix typo in comment.
2442         * s-secsta.adb: Minor comment update.
2444         * s-soflin.adb: Minor reformatting
2446         * s-stoele.ads:
2447         Add comment about odd qualification in Storage_Offset declaration
2449         * s-strxdr.adb:
2450         Remove unnecessary 'in' keywords for formal parameters.
2452         * treeprs.adt: Minor reformatting
2454         * urealp.adb: Put routines in alpha order
2456         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
2457         taking string.
2459         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2461         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
2463         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
2464         workaround as on other platforms.
2466         * g-eacodu-vms.adb: Remove redundant 'in' keywords
2467         * g-expect-vms.adb: Remove redundant 'in' keywords
2469         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
2470         clear error message if the list-of-files file cannot be opened.
2472         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
2473         equality operator is always visible.
2475         * lang.opt: Woverlength-strings: New option.
2477         * nmake.adt:
2478         Update copyright, since nmake.ads and nmake.adb have changed.
2480         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
2481         (Binder_Output_Time_Stamps_Set): removed.
2482         (Old_Binder_Output_Time_Stamp): idem.
2483         (New_Binder_Output_Time_Stamp): idem.
2484         (Recording_Time_From_Last_Bind): idem.
2485         (Recording_Time_From_Last_Bind): Make constant.
2487         * output.ads, output.adb (Write_Str): Allow LF characters
2488         (Write_Spaces): New procedure
2490         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
2492         * inline.adb: Minor reformatting
2494         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2496         * s-mastop-vms.adb: Remove redundant 'in' keywords
2498         * s-osprim-vms.adb: Remove redundant 'in' keywords
2500         * s-trafor-default.adb: Remove redundant 'in' keywords
2502         * 9drpc.adb: Remove redundant 'in' keywords
2504         * s-osinte-mingw.ads: Minor reformatting
2506         * s-inmaop-posix.adb: Minor reformatting
2508         * a-direio.ads: Remove quotes from Compile_Time_Warning message
2510         * a-exexda.adb: Minor code reorganization
2512         * a-filico.adb: Minor reformatting
2514         * a-finali.adb: Minor reformatting
2516         * a-nudira.ads: Remove quote from Compile_Time_Warning message
2518         * a-numeri.ads: Minor reformatting
2520         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
2522         * exp_pakd.ads: Fix obsolete comment
2524         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
2525         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
2526         Probably not a bug, but certainly neater and more efficient.
2528         * a-tienio.adb: Minor reformatting
2530         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
2531         Avoid assuming low bound of string is 1.
2533         * gnatbind.adb: Change Bindusg to package and rename procedure as
2534         Display, which now ensures that it only outputs usage information once.
2535         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
2537         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
2538         Table'First.
2540         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
2541         warning.
2542         (Match): Add pragma Assert to ensure that Matches'First is zero
2544         * g-regpat.ads (Match): Document that Matches lower bound must be zero
2546         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
2547         documented preconditions (also kills warnings about bad indexes).
2549         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
2550         is 1.
2551         (Build_Import_Library): Ditto;
2553         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
2555         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
2557         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
2558         lower bound of choice table is 1.
2560         * sem_case.ads (Analyze_Choices): Document that lower bound of
2561         Choice_Table is 1.
2563         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
2564         string is 1.
2566         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
2567         and add appropriate Assert pragma to suppress warnings.
2569         * atree.h, atree.ads, atree.adb
2570         Change Elist24 to Elist25
2571         Add definitions of Field28 and Node28
2572         (Traverse_Field): Use new syntactic parent table in sinfo.
2574         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2576         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2578         * exp_tss.adb: Put routines in alpha order
2580         * fe.h: Remove redundant declarations.
2582 2006-10-23 Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2584         * utils.c (builtin_function): Rename to gnat_builtin_function.
2585         Move common code to add_builtin_function.
2586         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2587         gnat_builtin_function.
2588         * gigi.h (builtin_function): Rename to gnat_builtin_function.
2589         Change the signature.
2591 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2593         * Makefile.in: Add TEXI2PDF definition.
2594         * Make-lang.in: Add "ada.pdf" target.
2596 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2598         * decl.c, utils.c: Fix comment typos.
2599         * utils.c: Fix a typo.
2601 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2603         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
2604         on "pure" Ada subprograms if SJLJ exceptions are used.
2605         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
2606         on the declaration node of JMPBUF_SAVE.
2607         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
2608         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
2609         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
2611 2006-08-20  Laurent Guerby  <laurent@guerby.net>
2613         PR ada/28716
2614         g-socket.adb (Bind_Socket): Call Set_Address.
2616 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2618         PR ada/15802
2619         * decl.c (same_discriminant_p): New static function.
2620         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
2621         subtype and we have discriminants, fix up the COMPONENT_REFs
2622         for the discriminants to make them reference the corresponding
2623         fields of the parent subtype after it has been built.
2625 2006-09-15  Roger Sayle  <roger@eyesopen.com>
2627         PR ada/18817
2628         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
2629         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
2631 2006-09-13  Olivier Hainque  <hainque@adacore.com>
2633         PR ada/29025
2634         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
2635         of a SAVE_EXPR, just make the operand addressable/not-readonly and
2636         let the common gimplifier code make and propagate a temporary copy.
2637         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
2638         out/in-out actuals and defer setting the addressable/readonly bits
2639         to the gimplifier.
2641 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2643         PR ada/28591
2644         * decl.c (components_to_record): Defer emitting debug info for the
2645         record type associated with the variant until after we are sure to
2646         actually use it.
2648 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2650         PR ada/21952
2651         * gigi.h (gnat_internal_attribute_table): Declare.
2652         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
2653         * utils.c (gnat_internal_attribute_table): New global variable.
2654         (builtin_function): Always call decl_attributes on the builtin.
2655         (handle_const_attribute): New static function.
2656         (handle_nothrow_attribute): Likewise.
2658 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2660         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2662 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2664         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
2665         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
2667 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
2668             Eric Botcazou  <ebotcazou@adacore.com>
2670         PR ada/18692
2671         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
2672         check-gnat into check-acats.
2674 2006-06-17  Karl Berry  <karl@gnu.org>
2676         * gnat-style.texi (@dircategory): Use "Software development"
2677         instead of "Programming", following the Free Software Directory.
2679 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2681         PR ada/27944
2682         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
2684 2006-06-06  Laurent Guerby  <laurent@guerby.net>
2686         PR ada/27769
2687         mlib-utl.adb: Use Program_Name.
2689 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2691         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
2692         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
2693         trans.c, utils.c: Fix comment typos.  Follow spelling
2694         conventions.
2695         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
2696         conventions.
2698 2006-05-19  Nicolas Setton  <setton@adacore.com>
2700         * misc.c (gnat_dwarf_name): New function.
2701         (LANG_HOOKS_DWARF_NAME): Define to it.
2703 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2705         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
2706         (ada/misc.o): Likewise.
2707         (ada/utils.o): Likewise.
2709 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
2711         * Makefile.in: Add Ada support for GNU/kFreeBSD.
2712         * s-osinte-kfreebsd-gnu.ads: New file.
2714 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
2716         * Make-lang.in: Rename docdir to gcc_docdir.
2718 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
2720         * gigi.h (get_ada_base_type): Delete.
2721         * utils2.c (get_ada_base_type): Likewise.
2722         * trans.c (convert_with_check): Operate in the real base type.
2724 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2726         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
2728 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2730         * utils.c (create_var_decl): Use have_global_bss_p when deciding
2731         whether to make the decl common.
2733 2006-02-20  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
2735         * Make-lang.in (Ada): Remove.
2736         (.PHONY): Remove Ada
2738 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2740         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
2741         aggregate, check the interpretations of the other operand to find one
2742         that may be a boolean array.
2744         (Analyze_Selected_Component): Fix flow-of-control typo in case where
2745         the prefix is a private extension.
2747 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
2749         PR ada/26315
2750         * utils2.c (find_common_type): If both input types are BLKmode and
2751         have the same constant size, keep using the first one.
2753         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
2755         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
2757         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
2759 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
2761         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
2762         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb,
2763         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb,
2764         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
2765         Abort_Defer/Undefer pairs to avoid the possibility of a task being
2766         aborted while owning a lock.
2768 2006-02-17  Javier Miranda  <miranda@adacore.com>
2769             Robert Dewar  <dewar@adacore.com>
2771         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
2772         through an access to class-wide interface we force the displacement of
2773         the pointer to the allocated object to reference the corresponding
2774         secondary dispatch table.
2775         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
2776         if Long_Shifts are supported on the target, even if 64 bit divides
2777         are not supported (configurable run time mode).
2778         (Expand_N_Type_Conversion): Do validity check if validity checks on
2779         operands are enabled.
2780         (Expand_N_Qualified_Expression): Do validity check if validity checks
2781         on operands are enabled.
2783 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2785         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
2786         must be materialized when the renamed expression is an explicit
2787         dereference.
2789 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2791         * freeze.adb (Statically_Discriminated_Components): Return false if
2792         the bounds of the type of the discriminant are not static expressions.
2794         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
2795         the bounds of the discriminant type are not static.
2797 2006-02-17  Robert Dewar  <dewar@adacore.com>
2799         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
2800         then we close To if it is valid.
2802 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2804         * init.c (facility_resignal_table): new array
2805         (__gnat_default_resignal_p): enhance default predicate to resignal if
2806         VMS condition has one of the predefined facility codes.
2808 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2810         * Makefile.in: Use VMS64 specialized versions of several units in
2811         Interfaces.C hierarchy to be compatible with HP C default size choices.
2812         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
2814 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2816         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
2817         instantiation, the corresponding entity is the related_instance of the
2818         wrapper package created for the instance.
2820 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2822         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
2823         the current instance is nested within another instance in a child unit.
2825 2006-02-17  Javier Miranda  <miranda@adacore.com>
2826             Ed Schonberg  <schonberg@adacore.com>
2828         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
2829         type we cannot inherit the primitive operations; we inherit the
2830         Corresponding_Record_Type (which has the list of primitive operations).
2831         (Check_Anonymous_Access_Types): When creating anonymous access types for
2832         access components, use Rewrite in order to preserve the tree structure,
2833         for ASIS use.
2834         (Analyze_Object_Declaration): For limited types with access
2835         discriminants with defaults initialized by an aggregate, obtain
2836         subtype from aggregate as for other mutable types.
2837         (Derived_Type_Declaration): If the derived type is a limited interface,
2838         set the corresponding flag (Is_Limited_Record is not sufficient).
2840 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2842         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
2843         to inline a function that returns an unconstrained type, the return
2844         expression must be the first variable declared in the body of the
2845         function.
2847 2006-02-17  Javier Miranda  <miranda@adacore.com>
2849         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
2850         abstract interface type, the static analysis is not enough to know if
2851         the interface is implemented or not by the source tagged type. Hence
2852         we must pass the work to the expander to generate the required code to
2853         evaluate the conversion at run-time.
2854         (Resolve_Equality_Op): Do not apply previous
2855         transformation if expansion is disasbled, to prevent anomalies when
2856         locating global references in a generic unit.
2858 2006-02-17  Vincent Celier  <celier@adacore.com>
2860         * snames.ads, snames.adb: New standard names for new project attributes:
2861         archive_builder, archive_indexer, compiler_pic_option,
2862         config_body_file_name, config_body_file_name_pattern,
2863         config_file_switches, config_file_unique, config_spec_file_name,
2864         config_spec_file_name_pattern, default_builder_switches,
2865         default_global_compiler_switches, default_language,
2866         dependency_file_kind, global_compiler_switches, include_path,
2867         include_path_file, language_kind, linker_executable_option,
2868         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
2869         roots, runtime_project.
2871 2006-02-17  Matthew Heaney  <heaney@adacore.com>
2873         * a-convec.ads, a-convec.adb:
2874         (operator "&"): handle potential overflow for large index types
2875         (Insert): removed Contraint_Error when using large index types
2876         (Insert_Space): removed Constraint_Error for large index types
2877         (Length): moved constraint check from Length to Insert
2879         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
2880         as not null access.
2881         Explicit raise statements now include an exception message.
2882         (operator "&"): handle potential overflow for large index types
2883         (Insert): removed Contraint_Error when using large index types
2884         (Insert_Space): removed Constraint_Error for large index types
2885         (Length): moved constraint check from Length to Insert
2887 2006-02-17  Robert Dewar  <dewar@adacore.com>
2889         * s-wchcnv.adb: Document handling of [ on output (we do not change
2890         this to ["5B"] and the new comments say why not.
2892         * gnat_ugn.texi:
2893         Add note for -gnatVo that this now includes the cases of type
2894         conversions and qualified expressions.
2895         Add comments on handling of brackets encoding for Text_IO
2897 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
2898             Thomas Quinot  <quinot@adacore.com>
2899             Robert Dewar  <dewar@adacore.com>
2900             Javier Miranda  <miranda@adacore.com>
2902         * expander.adb: Fix typo in comment
2904         * exp_pakd.adb: Fix typo
2905         Minor comment reformatting.
2907         * g-dyntab.adb: Minor reformatting
2909         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
2910         aliased subprograms to look for the abstract interface subprogram.
2912 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2914         * env.c (__gnat_setenv): Use size_t.
2915         (__gnat_unsetenv): Likewise.
2916         (__gnat_clearenv): Likewise.
2918 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
2920         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
2922 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
2924         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
2925         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
2926         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
2927         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
2928         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
2929         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
2930         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
2931         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
2932         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
2933         no longer used.
2935 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
2937         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
2938         protection against race conditions is not needed.
2939         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
2940         fallback handler.
2941         (Set_Specific_Handler): Add mutual exclusive access to the specific
2942         handler.
2943         (Specific_Handler): Add mutual exclusive access for retrieving the
2944         specific handler.
2946         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
2947         back handler.
2949         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
2950         Fall_Back_Handler and Specific_Handler.
2952         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
2953         termination handlers.
2954         Set two different owerflow depending on the maximal stack size.
2956         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
2957         protection against race conditions is not needed when executing the
2958         task termination handler.
2960 2006-02-13  Robert Dewar  <dewar@adacore.com>
2962         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
2963         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
2964         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
2965         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
2966         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
2967         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
2968         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
2969         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
2970         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
2971         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
2972         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
2973         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
2974         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
2975         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
2976         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
2977         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
2978         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
2979         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
2980         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
2981         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
2982         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
2983         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
2984         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
2985         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
2986         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
2987         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
2988         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
2989         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
2990         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
2991         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
2992         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
2993         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
2994         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
2995         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
2996         reformatting.
2998 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3000         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
3001         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
3002         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
3003         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
3004         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
3005         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
3006         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
3007         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
3008         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
3010 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3012         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads,
3013         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads,
3014         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads,
3015         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads,
3016         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads,
3017         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
3018         replaced by anonymous access type.
3019         (pthread_sigmask): Now take an access sigset_t
3021         * s-osinte-hpux.ads:  Ditto.
3022         (pthread_mutex_t, pthread_cond_t): Update definitions to support
3023         properly 32 and 64 bit ABIs.
3025 2006-02-13  Pascal Obry  <obry@adacore.com>
3027         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb,
3028         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb,
3029         s-taprop-linux.adb, s-taprop-solaris.adb,
3030         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
3031         adjustement is already done when calling this routine.
3033 2006-02-13  Pascal Obry  <obry@adacore.com>
3035         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
3036         table to take advantage of the 16 priority levels available on Windows
3037         2000 and XP. On NT4 there are only 7 priority levels, this is properly
3038         supported by this new mapping.
3040 2006-02-13  Nicolas Setton  <setton@adacore.com>
3042         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
3043         (get_encoding): New subprogram. Extracts the encodings from an encoded
3044         Ada name.
3046 2006-02-13  Pascal Obry  <obry@adacore.com>
3047             Nicolas Roche  <roche@adacore.com>
3048             Arnaud Charlet  <charlet@adacore.com>
3050         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
3051         support.
3052         (__gnat_try_lock): Add unicode support by using a specific section on
3053         Windows.
3054         (__gnat_get_current_dir): Idem.
3055         (__gnat_open_read): Idem.
3056         (__gnat_open_rw): Idem.
3057         (__gnat_open_create): Idem.
3058         (__gnat_create_output_file): Idem.
3059         (__gnat_open_append): Idem.
3060         (__gnat_open_new): Idem.
3061         (__gnat_file_time_name): Idem.
3062         (__gnat_set_file_time_name): Idem.
3063         (__gnat_stat): Idem.
3064         (win32_no_block_spawn): Idem.
3065         (__gnat_locate_exec_on_path): Idem.
3066         (__gnat_opendir): New routine.
3067         (__gnat_closedir): Idem.
3068         (__gnat_readdir): Add new parameter length (pointer to int). Update
3069         implementation to use it and add specific Win32 code for Unicode
3070         support.
3071         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
3072         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
3073         (convert_addresses): Do not define this dummy routine on VMS.
3075         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
3076         runtime Unicode support will be activated.
3077         (S2WS): String to Wide-String conversion. This version just copy a
3078         string in non Unicode version.
3079         (WS2S): Wide-String to String conversion. This version just copy a
3080         string in non Unicode version.
3082         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
3083         (Open): Now import __gnat_opendir from adaint.c.
3084         (Read): Change the implementation to support unicode characters. It is
3085         not possible to use strlen() on Windows as this version supports only
3086         standard ASCII characters. So the length of the directory entry is now
3087         returned from the imported __gnat_readdir routine.
3088         Update copyright notice.
3090         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
3091         (opendir): Moved to adaint.c.
3093         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
3094         (Get_Directory): Fix wrong indexing.
3095         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
3096         __gnat_getenv from env.c
3097         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
3098         from env.c
3100         * env.h, env.c: New file.
3102         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
3103         adaint.c by __gnat_getenv from env.c
3105         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
3106         adaint.c by __gnat_getenv from env.c
3108         * Make-lang.in: Add env.o in the list of C object needed by gnat1
3109         and gnatbind.
3110         Update dependencies.
3112 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3113             Olivier Hainque  <hainque@adacore.com>
3114             Eric Botcazou  <ebotcazou@adacore.com>
3116         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
3118         * gigi.h (value_factor_p): Add prototype and description, now public.
3120         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
3121         promotion for field with rep clause if the associated size was proven
3122         to be in error.
3123         Expand comments describing attempts to use a packable type.
3124         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
3125         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
3126         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
3127         necessary since these are not different types and pointers may
3128         actually designate any subtype in this hierarchy.
3129         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
3130         discriminants but put them into record only if not Unchecked_Union;
3131         pass flag to components_to_record showing Unchecked_Union.
3132         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
3133         components before variants; don't set TYPE_UNCHECKED_UNION_P.
3134         (components_to_record): New argument UNCHECKED_UNION.
3135         Remove special case code for Unchecked_Union and instead use main code
3136         with small changes.
3138         PR ada/26096
3139         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning
3140         variable with the expression being built, only its inner field.
3142         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
3143         emit_sequence_entry_statements.
3144         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
3145         (establish_gnat_vms_condition_handler): Move before
3146         Subprogram_Body_to_gnu.
3147         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
3148         for a subprogram if it has a foreign convention or is exported.
3149         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
3150         substituted for a CONST_DECL.
3151         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
3152         Etype to assoc_to_constructor.
3153         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
3154         discriminants of Unchecked_Union.
3155         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
3156         don't need cluttering preprocessor directives.
3157         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
3158         condition handler as current in the compiled function.
3159         (body_with_handlers_p): New function. Tell whether a given sequence of
3160         statements node is attached to a package or subprogram body and involves
3161         exception handlers possibly nested within inner block statements.
3162         (emit_sequence_entry_statements): New function, to emit special
3163         statements on entry of sequences when necessary. Establish GNAT
3164         condition handler in the proper cases for VMS.
3165         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
3166         emit_sequence_entry_statements.
3168         * utils2.c (find_common_type): If both input types are BLKmode and
3169         have a constant size, use the smaller one.
3170         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
3171         the same.
3173         * utils.c (value_factor_p): Make public, to allow uses from other gigi
3174         units.
3175         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
3176         (convert, case UNION_TYPE): Remove special treatment for unchecked
3177         unions.
3179         PR ada/18659
3180         (update_pointer_to): Update variants of pointer types to unconstrained
3181         arrays by attaching the list of fields of the main variant.
3183 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3184             Robert Dewar  <dewar@adacore.com>
3186         * a-exexpr.adb, a-exexpr-gcc.adb
3187         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
3188         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
3189         Remove code unused for exception propagation for the compiler itself
3190         from a-except.adb and update to still share separate packages.
3192         * a-except.ads, a-except.adb: Ditto.
3193         Add comments that this version is now used only by the compiler and
3194         other basic tools. The full version that includes the Ada 2005 stuff
3195         is in separate files a-except-2005.ads/adb. The reason is that we do
3196         not want to cause bootstrap problems with compilers not recognizing
3197         Wide_Wide_String.
3198         Add exception reason code PE_Implicit_Return
3199         Add new exception reason code (Null Exception_Id)
3201         * a-except-2005.adb, a-except-2005.ads: New files.
3203         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
3205         * s-wchcon.adb: New file.
3207         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
3208         (traceback.o deps): Likewise.
3209         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
3210         Activate build of GMEM instrumentation library on VMS targets.
3211         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
3212         Use a-except-2005.ads/adb for all run-time library builds unless
3213         specified otherwise.
3214         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
3215         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
3216         Use s-parame.adb on all native platforms.
3217         Use s-parame-vxworks.adb on all vxworks platforms.
3218         Add env.c env.h in LIBGNAT_SRCS
3219         Add env.o in LIBGNAT_OBJS
3220         (GNATMAKE_OBJS): Remove ctrl_c.o object.
3221         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
3222         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
3223         supports VxWorks 6 RTPs.
3224         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
3225         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
3227         * types.h, types.ads (Terminate_Program): New exception
3228         Add comment on modifying multiple versions of a-except.adb when the
3229         table of exception reasons is modified.
3230         Add exception reason code PE_Implicit_Return
3231         Add new exception reason code (Null Exception_Id)
3233         * clean.adb (Initialize): Get the target parameters before checking
3234         if target is OpenVMS. Move the OpenVMS specific code here from package
3235         body elaboration code.
3237 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3238             Vincent Celier  <celier@adacore.com>
3239             Robert Dewar  <dewar@adacore.com>
3241         * ali-util.adb (Get_File_Checksum): Update to account for change in
3242         profile of Initialize_Scanner.
3244         * gprep.adb (Gnatprep): Update to account for change in profile of
3245         Initialize_Scanner.
3246         (Process_One_File): Same.
3248         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
3249         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
3250         that behaviour using the new Unit information recorded in the source
3251         files table, rather than going through all units every time.
3252         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
3253         (Get_Source_Unit): Same.
3255         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
3256         change in profile of Initialize_Scanner.
3257         (Prepare_To_Preprocess): Same.
3259         * lib.ads: Fix typo in comment (templace -> template).
3261         * prj-part.adb (Parse_Single_Project): Update to account for change in
3262         profile of Initialize_Scanner.
3264         * scn.adb (Initialize_Scanner): Account for change in profile of
3265         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
3266         Also record the association of the given Source_File_Index to the
3267         corresponding Unit_Number_Type.
3269         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
3270         procedure.
3271         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
3272         Remove Unit formal for generic scanner: this formal
3273         is only relevant to Scn (the scanner instance used to parse Ada source
3274         files), not to other instances. Update comment accordingly.
3275         (Scan): Use new function Snames.Is_Keyword_Name.
3277         * sinfo-cn.adb: Fix typo in comment.
3279         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
3280         Unit.
3282         * sinput.ads (Source_File_Record): New component Unit, used to capture
3283         the unit identifier (if any) associated to a source file.
3285         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
3286         Unit in Source_File_Record.
3288         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
3289         in profile of Initialize_Scanner.
3291         * scans.adb (Initialize_Ada_Keywords): New procedure
3293         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
3294         Ada keywords in the Namet table, without the need to call
3295         Initialize_Scanner.
3297         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
3298         (Is_Keyword_Name): New function
3300         * snames.ads: Add subtype Configuration_Pragma_Names
3301         Add pragma Ada_2005 (synonym for Ada_05)
3302         (Is_Keyword_Name): New function
3304         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
3306 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3308         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
3309         index.
3311         * a-stwima.adb (To_Set): Add extra check when N = 0.
3313         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
3315 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3317         * s-parame-mingw.adb, s-parame-linux.adb,
3318         s-parame-solaris.adb: Removed, replaced by s-parame.adb
3320         * s-parame-vxworks.ads: Fix typo.
3322         * s-parame-vxworks.adb: New file.
3324         * s-parame.adb: Version now used by all native platforms.
3325         (Default_Stack_Size): Use 2 megs for default stack size and use
3326         __gl_default_stack_size when available.
3327         (Minimum_Stack_Size): Use 12K.
3329         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
3330         (Create_Task): Refine implementation taking advantage of the XP stack
3331         size support. On XP, we now create the thread using the flag
3332         STACK_SIZE_PARAM_IS_A_RESERVATION.
3334         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
3336         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
3337         XP and 0 on older Windows versions.
3339         * interfac-vms.ads: Removed, no longer used.
3341 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3343         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb,
3344         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb,
3345         a-cohase.adb: All explicit raise statements now include an exception
3346         message.
3348         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
3349         (Update_Element_Preserving_Key): renamed op to just Update_Element.
3350         Explicit raise statements now include an exception message
3352         * a-cihase.ads, a-cohase.ads: Removed comment.
3354         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
3355         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
3356         a-szbzha.adb, a-szfzha.ads: New files.
3358 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3360         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
3361         quicksort.
3363 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3365         * lang.opt: Wvariadic-macros: New option.
3366         Wold-style-definition: Likewise.
3367         Wmissing-format-attribute: Likewise.
3369         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
3370         -Wold-style-definition and -Wmissing-format-attribute.
3372 2006-02-13  Robert Dewar  <dewar@adacore.com>
3374         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
3376         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
3378 2006-02-13  Nicolas Roche  <roche@adacore.com>
3380         * a-envvar.adb, a-envvar.ads: New files.
3382 2006-02-13  Douglas Rupp  <rupp@adacore.com>
3384         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
3386         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
3388 2006-02-13  Pat Rogers  <rogers@adacore.com>
3390         * a-rttiev.adb, a-rttiev.ads: New files.
3392 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3394         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
3395         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
3397         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
3399 2006-02-13  Robert Dewar  <dewar@adacore.com>
3401         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb,
3402         sem_case.adb: Minor code reorganization (not Present should be No)
3404 2006-02-13  Geert Bosch  <bosch@adacore.com>
3405             Gary Dismukes  <dismukes@adacore.com>
3407         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
3408         0, since the lower bound of the actual string may be greater than one.
3410         PR ada/20753
3411         * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid
3412         layout is requested.
3414 2006-02-13  Vincent Celier  <celier@adacore.com>
3416         * back_end.adb (Scan_Compiler_Arguments): Check if
3417         Search_Directory_Present is True and, if it is, add the argument in
3418         the source search directory path.
3420         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
3421         Search_Directory_Present to True.
3423 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
3425         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
3426         volatile, to tell the compiler to preserve this variable at any level
3427         of optimization.
3428         (Gen_Versions_Ada): Temporarily work around codegen bug.
3430 2006-02-13  Vincent Celier  <celier@adacore.com>
3432         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
3433         gcc to link with option -shared-libgcc.
3434         (Gnatlink): Remove duplicate switches -shared-libgcc
3436 2006-02-13  Robert Dewar  <dewar@adacore.com>
3438         * gnatvsn.ads (Current_Year): New constant, used to easily update
3439         copyright on all GNAT tools.
3441         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
3442         copyright notice.
3444 2006-02-13  Robert Dewar  <dewar@adacore.com>
3446         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
3447         after hyphen (small aesthetic change useful for a range of numbers
3448         using ^-^.
3449         Suppress range checks for a couple of assignments which otherwise
3450         cause validity checks with validity checking turned on.
3452         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
3453         Improvement in error message for object.
3454         (Rep_Item_Too_Late): Remove '!' in warning message.
3456 2006-02-13  Robert Dewar  <dewar@adacore.com>
3457             Eric Botcazou  <ebotcazou@adacore.com>
3459         * err_vars.ads: Suppress range checks for a couple of assignments
3460         which otherwise cause validity checks with validity checking turned on.
3461         Update comments.
3463         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
3464         Make message unconditional if it is a warning.
3465         (Error_Msg_NEL): Always output warning messages.
3466         Suppress range checks for a couple of assignments which otherwise
3467         cause validity checks with validity checking turned on.
3469         * errout.ads (Message Insertion Characters): Document that '!' is
3470         implied by '?' in error messages.
3472         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
3473         (Gnat1drv): Use a goto to end of main subprogram instead of
3474         Exit_Program (E_Success) so that finalization can occur normally.
3476 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3478         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
3479         wrapped around.
3481 2006-02-13  Vincent Celier  <celier@adacore.com>
3483         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
3484         Unchecked_Conversion functions.
3485         (Modification_Time): Use direct conversion of OS_Time to Calendar time
3486         when OpenVMS returns False.
3488         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
3489         a-dirval.adb (OpenVMS): New Boolean function
3491 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3492             Thomas Quinot  <quinot@adacore.com>
3494         * checks.adb (Build_Discriminant_Checks): If the expression being
3495         checks is an aggregate retrieve the values of its discriminants to
3496         generate the check, rather than creating a temporary and a reference
3497         to it.
3498         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
3499         (Install_Null_Excluding_Check): Ditto
3500         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
3501         not for the renamed object, so that the actual itype is attached in the
3502         proper context.
3504 2006-02-13  Robert Dewar  <dewar@adacore.com>
3505             Vincent Celier  <celier@adacore.com>
3507         * debug.adb: Eliminate numeric switches for binder/gnatmake
3509         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
3510         switches for the compiler.
3511         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
3512         (Scan_Make_Switches): When failing with an illegal switch, output an
3513         error message with the full switch.
3514         Eliminate numeric switches for binder/gnatmake
3516         * switch.ads, switch.adb (Bad_Switch): New procedure
3518         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
3519         Remove 0-9 as debug flag character possibilities
3520         -d is now controlling the primary stack size when its value is a
3521         positive. Also add checks against invalid values, and support for kb,
3522         mb. Ditto for -D switch.
3524 2006-02-13  Robert Dewar  <dewar@adacore.com>
3525             Serguei Rybin  <rybin@adacore.com>
3527         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
3528         save/restore routines.
3529         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3530         were not always properly handled previously.
3531         Since we are changing the tree format anyway, also get rid of the
3532         junk obsolete Immediate_Errors flag.
3533         (Tree_Read): Change the way of reading Tree_Version_String - now we
3534         read the version string from the tree even if its length is not the
3535         same as the length of the version string computed from Gnatvsn.
3536         (Search_Directory_Present): New Boolean flag for the compiler.
3537         Define Tree_Version_String as a dynamic string.
3538         (Default_Stack_Size): new variable, used to handle switch -d.
3540         * par-prag.adb:
3541         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
3542         only for main unit.
3543         Add pragma Ada_2005 (synonym for Ada_05)
3544         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3545         were not always properly handled previously.
3547         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
3548         explicit Ada_95 to Ada_2005.
3550 2006-02-13  Javier Miranda  <miranda@adacore.com>
3551             Robert Dewar  <dewar@adacore.com>
3552             Ed Schonberg  <schonberg@adacore.com>
3554         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
3555         against errors in the source program: a private types for which the
3556         corresponding full type declaration is missing and pragma CPP_Virtual
3557         is used.
3558         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
3559         (Is_Known_Null): New flag
3560         (Has_Pragma_Pure): New flag
3561         (No_Return): Present in all entities, set only for procedures
3562         (Is_Limited_Type): A type whose ancestor is an interface is limited if
3563         explicitly declared limited.
3564         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
3565         entities. Only used for component marked Is_Tag. If present it stores
3566         the Offset_To_Top function used to provide this value in tagged types
3567         whose ancestor has discriminants.
3569         * exp_ch2.adb: Update status of new Is_Known_Null flag
3571         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
3573         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
3574         the categorization sense if Is_Pure was set by pragma Pure_Function.
3576 2006-02-13  Quentin Ochem  <ochem@adacore.com>
3577             Olivier Hainque  <hainque@adacore.com>
3579         * bindusg.adb: Updated documentation for -d and -D switches.
3581         * raise.h (__gnat_set_globals): added new parameter for
3582         Default_Stack_Size.
3584         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
3585         (__gnat_handle_vms_condition): Adjust context before raise.
3586         (__gnat_install_handler): Restore the global vector setup for GCC
3587         versions before 3.4, as the frame based circtuitry is not available
3588         in this case.
3589         (__gnat_set_globals): added a parameter default_stack_size
3590         (__gl_default_stack_size): new variable.
3592 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3594         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
3595         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
3596         does not exist in the Ada RM.
3597         (Compatible_Int_Bounds): Determine whether two integer range bounds
3598         are of equal length and have the same start and end values.
3599         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
3600         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
3601         aggregate when it is part of an object declaration.
3602         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
3603         constrains discriminants of its parent, add explicitly the discriminant
3604         constraints of the ancestor by retrieving them from the
3605         stored_constraint of the parent.
3607 2006-02-13  Robert Dewar  <dewar@adacore.com>
3609         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
3610         attribute Mechanism_Code is applied to renamed subprogram, modify
3611         prefix to point to base subprogram.
3612         Max/Min attributes now violate Restriction No_Implicit_Conditionals
3614         * sinfo.ads: Document that Mechanism_Code cannot be applied to
3615         renamed subprograms so that the front-end must replace the prefix
3616         appropriately.
3618 2006-02-13  Javier Miranda  <miranda@adacore.com>
3619             Gary Dismukes  <dismukes@adacore.com>
3621         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
3622         availability of RE_Interface_Tag.
3623         (Build_Initialization_Call): Fix wrong access to the discriminant value.
3624         (Freeze_Record_Type): Do not generate the tables associated with
3625         timed and conditional dispatching calls through synchronized
3626         interfaces if compiling under No_Dispatching_Calls restriction.
3627         When compiling for Ada 2005, for a nonabstract
3628         type with a null extension, call Make_Controlling_Function_Wrappers
3629         and insert the wrapper function declarations and bodies (the latter
3630         being appended as freeze actions).
3631         (Predefined_Primitive_Bodies): Do not generate the bodies of the
3632         predefined primitives associated with timed and conditional
3633         dispatching calls through synchronized interfaces if we are
3634         compiling under No_Dispatching_Calls.
3635         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
3636         service is available before generating a call.
3637         (Make_Controlling_Function_Wrappers): New procedure.
3638         (Expand_N_Full_Type_Declaration): Create a class-wide master for
3639         access-to-limited-interfaces because they can be used to reference
3640         tasks that implement such limited interface.
3641         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
3642         procedure spec and body of the Offset_To_Top function that is generated
3643         when the parent of a type with discriminants has secondary dispatch
3644         tables.
3645         (Init_Secondary_Tags): Handle the case in which the parent of the type
3646         containing secondary dispatch tables has discriminants to generate the
3647         correct arguments to call Set_Offset_To_Top.
3648         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
3650         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
3651         Add Wide_[Wide_]Expanded_Name.
3652         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
3653         the same functionality of Get_Prim_Op_Address but applied to predefined
3654         primitive operations because the pointers to the predefined primitives
3655         are now saved in a separate table.
3656         (Parent_Size): Modified to get access to the separate table of primitive
3657         operations or the parent type.
3658         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
3659         functionality of Set_Prim_Op_Address but applied to predefined primitive
3660         operations.
3661         (Set_Signature): New subprogram used to store the signature of a DT.
3662         (Displace): If the Offset_To_Top value is not static then call the
3663         function generated by the expander to get such value; otherwise use
3664         the value stored in the table of interfaces.
3665         (Offset_To_Top): The type of the actual has been changed to Address to
3666         give the correct support to tagged types with discriminants. In this
3667         case this value is stored just immediately after the tag field.
3668         (Set_Offset_To_Top): Two new formals have been added to indicate if the
3669         offset_to_top value is static and hence pass this value to the run-time
3670         to store it in the table of interfaces, or else if this value is dynamic
3671         and then pass to the run-time the address of a function that is
3672         generated by the expander to provide this value for each object of the
3673         type.
3675         * rtsfind.ads (Default_Prin_Op_Count): Removed.
3676         (Default_Prim_Op_Count): New entity
3677         (Get_Predefined_Prim_Op_Address): New entity
3678         (Set_Predefined_Prim_Op_Address): New entity
3679         (RE_Set_Signature): New entity
3681 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3682             Ed Schonberg  <schonberg@adacore.com>
3684         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
3685         Make_Adjust_Call done for a newly-allocated object.
3687         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
3688         in a subprogram are wrapped in a cleanup block, indicate that the
3689         subprogram contains an inner block with an exception handler.
3690         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
3691         Adjust call is for a newly-allocated object. In that case we must not
3692         assume that the finalization list chain pointers are correct (since they
3693         come from a bit-for-bit copy of the original object's pointers) so if
3694         the attach level would otherwise be zero (no change), we set it to 4
3695         instead to cause the pointers to be reset to null.
3697         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
3698         reset chain pointers to null.
3700 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3702         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
3703         string, and the context requires a loop for the assignment (e.g.
3704         because the left-hand side is packed), generate a unique name for the
3705         temporary that holds the string, to prevent spurious name clashes.
3707 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3708             Javier Miranda  <miranda@adacore.com>
3709             Robert Dewar  <dewar@adacore.com>
3710             Gary Dismukes  <dismukes@adacore.com>
3712         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
3713         return unconstrained arrays.
3714         Update comments.
3715         (Expand_Call):  An indirect call through an access parameter of a
3716         protected operation is not a protected call.
3717         Add circuit to raise CE in Ada 2005 mode following call
3718         to Raise_Exception.
3719         (Register_DT_Entry): Do nothing if
3720         the run-time does not give support to abstract interfaces.
3721         (Freeze_Subprogram): In case of dispatching operations, do not generate
3722         code to register the operation in the dispatch table if the source
3723         is compiled with No_Dispatching_Calls.
3724         (Register_Predefined_DT_Entry): Generate code that calls the new
3725         run-time subprogram Set_Predefined_Prim_Op_Address instead of
3726         Set_Prim_Op_Address.
3728         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
3729         on array assignments if the right-hand side is a function call that has
3730         been inlined. Check is performed on the assignment in the block.
3731         (Process_Bounds): If bounds and range are overloaded, apply preference
3732         rule for root operations to disambiguate, and diagnose true ambiguity.
3733         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
3734         a tag-indeterminate right-hand side even when Expander_Active is True.
3735         Needed to ensure that dispatching calls to T'Input are allowed and
3736         get the tag of the target class-wide object.
3738         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
3739         an inherited primitive operation that already overrides several
3740         abstract interface primitives. For transitivity, the new entity must
3741         also override all the abstract interface primitives covered by the
3742         inherited overriden primitive.
3743         Emit warning if new entity differs from homograph in same scope only in
3744         that one has an access parameter and the other one has a parameter of
3745         a general access type with the same designated type, at the same
3746         position in the signature.
3747         (Make_Inequality_Operator): Use source locations of parameters and
3748         subtype marks from corresponding equality operator when creating the
3749         tree structure for the implicit declaration of "/=". This does not
3750         change anything in behaviour except that the decoration of the
3751         components of the subtree created for "/=" allows ASIS to get the
3752         string images of the corresponding identifiers.
3753         (Analyze_Return_Statement): Remove '!' in warning message.
3754         (Check_Statement_Sequence): Likewise.
3755         (Analyze_Subprogram_Body): For an access parameter whose designated type
3756         is an incomplete type imported through a limited_with clause, use the
3757         type of the corresponding formal in the body.
3758         (Check_Returns): Implicit return in No_Return procedure now raises
3759         Program_Error with a compile time warning, instead of beging illegal.
3760         (Has_Single_Return):  Function returning unconstrained type cannot be
3761         inlined if expression in unique return statement is not an identifier.
3762         (Build_Body_To_Inline): It is possible to inline a function call that
3763         returns an unconstrained type if all return statements in the function
3764         return the same local variable. Subsidiary procedure Has_Single_Return
3765         verifies that the body conforms to this restriction.
3767         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
3768         same type, and  one of them is of an anonymous access type, convert
3769         the other operand to it, so that this is a valid binary operation for
3770         gigi.
3771         (Resolve_Type_Conversion): Handle subtypes of protected types and
3772         task types when accessing to the corresponding record type.
3773         (Resolve_Allocator): Add '\' in 2-line warning message.
3774         Remove '!' in warning message.
3775         (Resolve_Call): Add '\' in 2-line warning message.
3776         (Valid_Conversion): Likewise.
3777         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
3778         resulting type may be an access type with an implicit dereference.
3779         Obtain the proper component from the designated type.
3780         (Make_Call_Into_Operator): Handle properly a call to predefined equality
3781         given by an expanded name with prefix Standard, when the operands are
3782         of an anonymous access type.
3783         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
3784         Explicit_Dereference and Resolve_Selected_Component, to verify that the
3785         prefix of the expression is not of an incomplete type. Allows full
3786         diagnoses of all semantic errors.
3787         (Resolve_Actuals): If the actual is an allocator whose directly
3788         designated type is a class-wide interface we build an anonymous
3789         access type to use it as the type of the allocator. Later, when
3790         the subprogram call is expanded, if the interface has a secondary
3791         dispatch table the expander will add a type conversion to force
3792         the displacement of the pointer.
3793         (Resolve_Call): If a function that returns an unconstrained type is
3794         marked Inlined_Always and inlined, the call will be inlined and does
3795         not require the creation of a transient scope.
3796         (Check_Direct_Boolean_Op): Removed
3797         (Resolve_Comparison_Op): Remove call to above
3798         (Resolve_Equality_Op): Remove call to above
3799         (Resolve_Logical_Op): Inline above, since this is only call.
3800         (Valid_Conversion): Handle properly conversions between arrays of
3801         convertible anonymous access types.
3803         PR ada/25885
3804         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
3805         the literal in an unchecked conversion, because GCC 4.x needs a static
3806         value for a string bound.
3808 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3809             Hristian Kirtchev  <kirtchev@adacore.com>
3811         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
3812         components of the corresponding record, take into account component
3813         definitions that are access definitions.
3814         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
3815         procedure is not considered a dispatching call and will be expanded
3816         properly.
3818 2006-02-13  Javier Miranda  <miranda@adacore.com>
3820         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
3821         controlling argument of the dispatching call is an abstract interface
3822         class-wide type then we use it directly.
3823         Check No_Dispatching_Calls restriction.
3824         (Default_Prim_Op_Position): Remove the code that looks for the last
3825         entity in the list of aliased subprograms. This code was wrong in
3826         case of renamings.
3827         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
3828         when the source is compiled with the No_Dispatching_Calls restriction.
3829         (Init_Predefined_Interface_Primitives): No need to inherit primitives
3830         if we are compiling with restriction No_Dispatching_Calls.
3831         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
3832         subprograms if we are compiling under No_Dispatching_Calls restriction.
3833         (Make_DT): Generate a dispatch table with a single dummy entry if
3834         we are compiling with the No_Dispatching_Calls restriction. In
3835         addition, in this case we don't generate code that calls to the
3836         following run-time subprograms: Set_Type_Kind, Inherit_DT.
3837         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
3838         of this subprogram if compiling with the No_Dispatching_Calls
3839         restriction.
3840         (Expand_Type_Conversion): Instead of using the actual parameter,
3841         the argument passed as parameter to the conversion function was
3842         erroneously referenced by the expander.
3843         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
3844         Set_Predefined_Primitive_Op_Address and Set_Signature.
3845         (Expand_Dispatching_Call): Generate call to
3846         Get_Predefined_Prim_Op_Address for predefined primitives.
3847         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
3848         predefined primitives.
3849         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
3850         primitives we reserve one dummy entry to ensure that the tag does not
3851         point to some memory that is associated with some other object. In
3852         addition, remove all the old code that generated the assignments
3853         associated with the signature of the dispatch table and replace them
3854         by a call to the new subprogram Set_Signature.
3855         (Set_All_DT_Position): Change the algorithm because now we have a
3856         separate dispatch table associated with predefined primitive operations.
3857         (Expand_Interface_Conversion): In case of non-static offset_to_top
3858         add explicit dereference to get access to the object after the call
3859         to displace the pointer to the object.
3860         (Expand_Interface_Thunk): Modify the generation of the actual used
3861         in the calls to the run-time function Offset_To_Top to fulfil its
3862         new interface.
3863         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
3865 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3867         * exp_dist.adb (Copy_Specification): For access parameters, copy
3868         Null_Exclusion flag, which will have been set for stream subprograms
3869         in Ada2005 mode.
3871 2006-02-13  Pascal Obry  <obry@adacore.com>
3873         * expect.c (__gnat_expect_portable_execvp): New implementation. The
3874         previous implementation was using the C runtime spawnve routine but
3875         the corresponding wait was using directly the Win32 API. This was
3876         causing some times a lock when waiting for an event using
3877         WaitForSingleObject in __gnat_waitpid. This new implementation uses
3878         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
3879         API fixes this problem.
3881 2006-02-13  Robert Dewar  <dewar@adacore.com>
3883         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
3884         call.
3886 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3888         * exp_pakd.ads: Fix typos in comments.
3890         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
3891         array reference that is an explicit dereference, mark the converted
3892         (packed) array reference as analyzed to prevent a forthcoming
3893         reanalysis from resetting its type to the original (non-packed) array
3894         type.
3896 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3897             Javier Miranda  <miranda@adacore.com>
3898             Eric Botcazou  <ebotcazou@adacore.com>
3900         * exp_util.ads, exp_util.adb (Find_Prim_Op,
3901         Is_Predefined_Primitive_Operation): When
3902         searching for the predefined equality operator, verify that operands
3903         have the same type.
3904         (Is_Predefined_Dispatching_Operation): Remove the code that looks
3905         for the last entity in the list of aliased subprograms. This code
3906         was wrong in case of renamings.
3907         (Set_Renamed_Subprogram): New procedure
3908         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
3909         Exp_Type constant computed when entering this subprogram.
3910         (Known_Null): New function
3911         (OK_To_Do_Constant_Replacement): New function
3912         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
3913         (Side_Effect_Free): An attribute reference 'Input is not free of
3914         side effect, unlike other attributes that are functions. (from code
3915         reading).
3916         (Remove_Side_Effects): Expressions that involve packed arrays or records
3917         are copied at the point of reference, and therefore must be marked as
3918         renamings of objects.
3919         (Is_Predefined_Dispatching_Operation): Return false if the operation is
3920         not a dispatching operation.
3922         PR ada/18819
3923         (Remove_Side_Effects): Lift enclosing type conversion nodes for
3924         elementary types in all cases.
3926 2006-02-13  Javier Miranda  <miranda@adacore.com>
3928         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
3929         task types when accessing to the corresponding record type.
3930         Remove '!' in warning message.
3932 2006-02-13  Olivier Hainque  <hainque@adacore.com>
3934         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
3935         to avoid useless and space inefficient overalignments on targets where
3936         Max_Alignment is larger than 16.
3938 2006-02-13  Pascal Obry  <obry@adacore.com>
3940         * g-catiio.adb (Sec_Number): New type used to compute the number of
3941         seconds since 1-1-1970.
3942         (Image) [Natural]: The parameter was an Integer, as we can't deal with
3943         negative numbers (years, months...) it is better to have a Natural here.
3944         Code clean-up.
3945         (Image) [Number]: Change parameter from Long_Integer to Number.
3946         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
3947         overflow for dates past year 2038.
3949 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3951         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
3952         Constraint_Error.
3954 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3956         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
3957         native platforms.
3958         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
3959         finalization can occur normally.
3961 2006-02-13  Vincent Celier  <celier@adacore.com>
3963         * gnatcmd.adb (Rules_Switches): New table
3964         (Add_To_Rules_Switches): New procedure
3965         (GNATCmd): For command CHECK, put all options following "-rules" in the
3966         Rules_Switches table. Append these -rules switches after the -cargs
3967         switches.
3969 2006-02-13  Robert Dewar  <dewar@adacore.com>
3971         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
3972         These two cases were generating incorrect output, and if this unit
3973         was built with checks on, generated a discriminant mismatch constraint
3974         error.
3976 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3977             Robert Dewar  <dewar@adacore.com>
3979         * lib-xref.adb (Get_Type_Reference): For a private type whose full
3980         view is an array type, indicate the component type as well, for
3981         navigation purposes.
3982         (Generate_Reference): Don't consider array ref on LHS to be a case
3983         of violating pragma Unreferenced.
3984         Do not give Ada 2005 warning except on real reference.
3986 2006-02-13  Vincent Celier  <celier@adacore.com>
3988         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
3989         main source, add switch -mdebug-main=_ada_ so that the executable can
3990         be debugged by the standard VMS debugger.
3991         (Gnatmake): Set No_Main_Subprogram to True when there is no main
3992         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
3993         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
3994         of the last source, as the binding and linking phases are never
3995         performed.
3996         Set all executable obsolete when rebuilding a library.
3998         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
3999         options.
4001 2006-02-13  Javier Miranda  <miranda@adacore.com>
4003         PR ada/23973
4004         * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the
4005         code to improve the error message reported when the program has
4006         declarations of abstract interface types and it is not compiled with
4007         the -gnat05 switch.
4008         (P_Access_Definition): Reorganize the code to improve the error
4009         message reported when the new Ada 2005 syntax for anonymous
4010         access types is used and the program is not compiled with the
4011         -gnat05 switch.
4013 2006-02-13  Robert Dewar  <dewar@adacore.com>
4015         * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb,
4016         stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch
4017         (MODE_IN)
4019 2006-02-13  Javier Miranda  <miranda@adacore.com>
4021         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
4022         against source containing syntax errors.
4024 2006-02-13  Vincent Celier  <celier@adacore.com>
4026         * prj.adb (Reset): Initialize the first element of table Namings with
4027         the standard naming data.
4029 2006-02-13  Vincent Celier  <celier@adacore.com>
4031         * prj.ads (Error_Warning): New enumeration type
4033         * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is
4034         unknown, use the location of the project to report the error.
4035         (When_No_Sources): New global variable
4036         (Report_No_Ada_Sources): New procedure
4037         (Check): New parameter When_No_Sources. Set value of global variable
4038         When_No_Sources,
4039         (Find_Sources): Call Report_No_Ada_Sources when appropriate
4040         (Get_Sources_From_File): Ditto
4041         (Warn_If_Not_Sources): Better warning messages indicating the unit name
4042         and the file name.
4044         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
4045         Call Prj.Proc.Process with parameter When_No_Sources.
4047         * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources.
4048         Call Recursive_Check with parameter When_No_Sources.
4049         (Recursive_Check): New parameter When_No_Sources. Call itself and
4050         Prj.Nmsc.Check with parameter When_No_Sources.
4051         (Process): New parameter When_No_Sources. Call Check with parameter
4052         When_No_Sources.
4053         (Copy_Package_Declarations): New procedure to copy renamed parameters
4054         and setting the location of the declared attributes to the location
4055         of the renamed package.
4056         (Process_Declarative_Items): Call Copy_Package_Declarations for renamed
4057         packages.
4059 2006-02-13  Vincent Celier  <celier@adacore.com>
4061         * prj-makr.adb (Make): Preserve the comments from the original project
4062         file.
4063         When removing nodes (attributes Source_Dirs, Source_Files,
4064         Source_List_File and package Naming), save the comments and attach the
4065         saved comments to the newly created nodes.
4066         Do not add a with clause for the naming package if one already exists.
4068 2006-02-13  Javier Miranda  <miranda@adacore.com>
4069             Gary Dismukes  <dismukes@adacore.com>
4070             Robert Dewar  <dewar@adacore.com>
4072         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
4074         * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of
4075         aliased entities to look for the overriden abstract interface
4076         subprogram.
4077         (Is_Interface_Subprogram): Complete documentation.
4078         (Check_Dispatching_Operation): Do not generate code to register the
4079         operation in the dispatch table if the source is compiled with
4080         restriction No_Dispatching_Calls.
4081         (Override_Dispatching_Operation): Check for illegal attempt to override
4082         No_Return procedure with procedure that is not No_Return
4083         (Check_Dispatching_Call): Suppress the check for an abstract operation
4084         when the original node of an actual is a tag-indeterminate attribute
4085         call, since the attribute, which must be 'Input, can never be abstract.
4086         (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a
4087         call to the Input attribute (even when rewritten).
4088         (Propagate_Tag): Augment comment to indicate the possibility of a call
4089         to an Input attribute.
4091         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
4092         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
4094         * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction.
4095         No_Wide_Characters is no longer partition-wide
4096         No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257)
4097         rather than GNAT
4099 2006-02-13  Douglas Rupp  <rupp@adacore.com>
4101         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
4103 2006-02-13  Javier Miranda  <miranda@adacore.com>
4105         * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that
4106         handles default-initialized components to keep separate the management
4107         of this feature but also avoid the unrequired resolution and
4108         expansion of components that do not have partially initialized
4109         values.
4110         (Collect_Aggr_Bounds): Add '\' in 2-line warning message.
4111         (Check_Bounds): Likewise.
4112         (Check_Length): Likewise.
4114 2006-02-13  Javier Miranda  <miranda@adacore.com>
4115             Ed Schonberg  <schonberg@adacore.com>
4117         * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an
4118         abstract interface type call analyze_and_resolve to expand the type
4119         conversion into the corresponding displacement of the
4120         reference to the base of the object.
4121         (Eval_Attribute, case Width): For systems where IEEE extended precision
4122         is supported, the maximum exponent occupies 4 decimal digits.
4123         (Accessibility_Message): Add '\' in 2-line warning message.
4124         (Resolve_Attribute): Likewise.
4125         (case Attribute_Access): Significantly revise checks
4126         for illegal access-to-subprogram Access attributes to properly enforce
4127         the rules of 3.10.2(32/2).
4128         Diagnose use of current instance with an illegal attribute.
4130         * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal
4131         to a Node_Id.
4132         (Enclosing_Generic_Unit): New function to return a node's innermost
4133         enclosing generic declaration node.
4134         (Compile_Time_Constraint_Error): Remove '!' in warning messages.
4135         (Type_Access_Level): The accessibility level of anonymous acccess types
4136         associated with discriminants is that of the current instance of the
4137         type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)).
4138         (Compile_Time_Constraint_Error): Handle case of conditional expression.
4139         (Kill_Current_Values_For_Entity): New function
4140         (Enter_Name): Change formal type to Entity_Id
4142 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
4143             Ed Schonberg  <schonberg@adacore.com>
4144             Gary Dismukes  <dismukes@adacore.com>
4146         * sem_ch10.adb (Check_Redundant_Withs): New procedure in
4147         Analyze_Compilation_Unit.
4148         Detect and warn on redundant with clauses detected in a package spec
4149         and/or body when -gnatwr is used.
4150         (Analyze_Context): Analyze config pragmas before other items
4151         (Install_Context_Items): Don't analyze config pragmas here
4152         (Install_Limited_Withed_Unit): Set limited entity of package in
4153         with_clause so that cross-reference information or warning messages on
4154         unused packages can be properly generated
4155         (Is_Visible_Through_Renamings): Return false if the limited_with_clause
4156         has Error_Posted set. Prevent infinite loops in illegal programs.
4157         (Check_Private_Child_Unit): Move test for a nonprivate with clause down
4158         to the point of the error test requiring the current unit to be private.
4159         This ensures that private with clauses are not exempted from the basic
4160         checking for being a descendant of the same library unit parent as a
4161         withed private descendant unit.
4162         (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to
4163         handle private with clauses properly, as well as to account for cases
4164         where the withed unit is a public descendant of a private ancestor
4165         (in which case the current unit must be a descendant of the private
4166         ancestor's parent). The spec comments were updated accordingly. Also,
4167         the old error message in this subprogram was replaced with error
4168         messages that mirror the errors tested and reported by
4169         Check_Private_Child_Unit.
4170         Parameter and variable names improved for readability.
4171         (Install_Limited_Context_Clauses): Remove test for a withed unit being
4172         private as the precondition for calling
4173         Check_Private_Limited_Withed_Unit since that subprogram has been
4174         revised to test public units as well as private units.
4176 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4177             Robert Dewar  <dewar@adacore.com>
4178             Ed Schonberg  <schonberg@adacore.com>
4179             Javier Miranda  <miranda@adacore.com>
4181         * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption
4182         that Scope_Stack.First = 1.
4183         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4184         were not always properly handled previously.
4185         (Formal_Entity): Complete rewrite, to handle properly some complex case
4186         with multiple levels of parametrization by formal packages.
4187         (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator
4188         to the corresponding derived type declaration for proper semantics.
4190         * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message.
4191         (Check_Component): Enforce restriction on components of
4192         unchecked_unions: a component in a variant cannot contain tasks or
4193         controlled types.
4194         (Unchecked_Union): Allow nested variants and multiple discriminants, to
4195         conform to AI-216.
4196         Add pragma Ada_2005 (synonym for Ada_05)
4197         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
4198         were not always properly handled previously.
4199         Document that pragma Propagate_Exceptions has no effect
4200         (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure
4201         (Set_Convention_From_Pragma): Check that if a convention is
4202         specified for a dispatching operation, then it must be
4203         consistent with the existing convention for the operation.
4204         (CPP_Class): Because of the C++ ABI compatibility, the programmer is no
4205         longer required to specify an vtable-ptr component in the record. For
4206         compatibility reasons we leave the support for the previous definition.
4207         (Analyze_Pragma, case No_Return): Allow multiple arguments
4209         * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a
4210         non-overrideen inherited operation with a controlling result as
4211         illegal only its implicit declaration comes from the derived type
4212         declaration of its result's type.
4213         (Check_Possible_Deferred_Completion): Relocate the object definition
4214         node of the subtype indication of a deferred constant completion rather
4215         than directly analyzing it. The analysis of the generated subtype will
4216         correctly decorate the GNAT tree.
4217         (Record_Type_Declaration): Check whether this is a declaration for a
4218         limited derived record before analyzing components.
4219         (Analyze_Component_Declaration): Diagnose record types  not explicitly
4220         declared limited when a component has a limited type.
4221         (Build_Derived_Record_Type): Code reorganization to check if some of
4222         the inherited subprograms of a tagged type cover interface primitives.
4223         This check was missing in case of a full-type associated with a private
4224         type declaration.
4225         (Constant_Redeclaration): Check that the subtypes of the partial and the
4226         full view of a constrained deferred constant statically match.
4227         (Mentions_T): A reference to the current type in an anonymous access
4228         component declaration  must be an entity name.
4229         (Make_Incomplete_Type_Declaration): If type is tagged, set type of
4230         class_wide type to refer to full type, not to the incomplete one.
4231         (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not
4232         available. Required to give support to the certified run-time.
4233         (Analyze_Component_Declaration): In case of anonymous access components
4234         perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2).
4235         (Process_Discriminants): For an access discriminant, use the
4236         discriminant specification as the associated_node_for_itype, to
4237         simplify accessibility checks.
4239 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4240             Javier Miranda  <miranda@adacore.com>
4242         * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no
4243         abstract interpretations on an operator, remove interpretations that
4244         yield Address or a type derived from it, if one of the operands is an
4245         integer literal.
4246         (Try_Object_Operation.Try_Primitive_Operation,
4247         Try_Object_Operation.Try_Class_Wide_Operation): Set proper source
4248         location when creating the new reference to a primitive or class-wide
4249         operation as a part of rewriting a subprogram call.
4250         (Try_Primitive_Operations): If context requires a function, collect all
4251         interpretations after the first match, because there may be primitive
4252         operations of the same type with the same profile and different return
4253         types. From code reading.
4254         (Try_Primitive_Operation): Use the node kind to choose the proper
4255         operation when a function and a procedure have the same parameter
4256         profile.
4257         (Complete_Object_Operation): If formal is an access parameter and prefix
4258         is an object, rewrite as an Access reference, to match signature of
4259         primitive operation.
4260         (Find_Equality_Type, Find_One_Interp): Handle properly equality given
4261         by an expanded name with prefix Standard, when the operands are of an
4262         anonymous access type.
4263         (Remove_Abstract_Operations): If the operation is abstract because it is
4264         inherited by a user-defined type derived from Address, remove it as
4265         well from the set of candidate interpretations of an overloaded node.
4266         (Analyze_Membership_Op): Membership test not applicable to cpp-class
4267         types.
4269 2006-02-13  Bob Duff  <duff@adacore.com>
4271         * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about
4272         redundant use clauses.
4273         In particular, if the scope of two use clauses overlaps, but one is not
4274         entirely included in the other, we should not warn.  This can happen
4275         with nested packages.
4276         (Analyze_Subprogram_Renaming): Protect the compiler against previously
4277         reported errors. The bug was reported when the compiler was built
4278         with assertions enabled.
4279         (Find_Type): If the node is a 'Class reference and the prefix is a
4280         synchronized type without a corresponding record, return the type
4281         itself.
4283 2006-02-13  Javier Miranda  <miranda@adacore.com>
4285         * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that
4286         if this is the full-declaration associated with a private declaration
4287         that implement interfaces, then the private type declaration must be
4288         limited.
4289         (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object
4290         as aliased. The use of the 'access attribute is not available for such
4291         object (for this purpose the object should be explicitly marked as
4292         aliased, but being an anonymous type this is not possible).
4294 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4295             Robert Dewar  <dewar@adacore.com>
4297         * sem_elab.adb (Same_Elaboration_Scope): A package that is a
4298         compilation unit is an elaboration scope.
4299         (Add_Task_Proc): Add '\' in 2-line warning message.
4300         (Activate_All_Desirable): Deal with case of unit with'ed by parent
4302 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4303             Javier Miranda  <miranda@adacore.com>
4305         * sem_type.adb (Write_Overloads): Improve display of candidate
4306         interpretations.
4307         (Add_One_Interp): Do not add to the list of interpretations aliased
4308         entities corresponding with an abstract interface type that is an
4309         immediate ancestor of a tagged type; otherwise we have a dummy
4310         conflict between this entity and the aliased entity.
4311         (Disambiguate): The predefined equality on universal_access is not
4312         usable if there is a user-defined equality with the proper signature,
4313         declared in the same declarative part as the designated type.
4314         (Find_Unique_Type): The universal_access equality operator defined under
4315         AI-230 does not cover pool specific access types.
4316         (Covers): If one of the types is a generic actual subtype, check whether
4317         it matches the partial view of the other type.
4319 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4321         * sinput-d.adb (Write_Line): Update the Source_Index_Table after each
4322         line. This is necessary to allow In_Extended_Main_Unit to provide
4323         correct results for itypes while writing out expanded source.
4324         (Close_File): No need to update the source_index_table here since it's
4325         now done for each line.
4327 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4328             Robert Dewar  <dewar@adacore.com>
4330         * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to
4331         preserve the source unit where the itype is declared, and prevent a
4332         backend abort.
4333         (Note_Implicit_Run_Time_Call): New procedure
4334         (Write_Itype): Handle missing cases (E_Class_Wide_Type and
4335         E_Subprogram_Type)
4337         * sprint.ads: Document use of $ for implicit run time routine call
4339 2006-02-13  Quentin Ochem  <ochem@adacore.com>
4341         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
4342         task name.
4344 2006-02-13  Bob Duff  <duff@adacore.com>
4346         * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of
4347         Scan_Unsigned, so we do not scan leading blanks and sign twice.
4348         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4349         raise Constraint_Error.
4351         * s-vallli.adb (Scan_Long_Long_Integer): Call
4352         Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we
4353         do not scan leading blanks and sign twice.
4354         Integer'Value("- 5") and Integer'Value("-+5") now correctly
4355         raise Constraint_Error.
4357         * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned,
4358         Scan_Long_Long_Unsigned): Split out most of the processing from
4359         Scan_Long_Long_Unsigned out into
4360         Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version.
4361         This prevents scanning leading blanks and sign twice.
4362         Also fixed a bug: Modular'Value("-0") should raise Constraint_Error
4363         See RM-3.5(44).
4365         * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split
4366         out most of the processing from Scan_Unsigned out into
4367         Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version.
4368         This prevents scanning leading blanks and sign twice.
4370         * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for
4371         use with Modular'Value attribute.
4372         (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value
4373         attribute.
4375 2006-02-13  Robert Dewar  <dewar@adacore.com>
4377         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
4379 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
4381         * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1.
4382         (PPC VxWorks): Likewise.
4383         (Generic unwinder): Define FORCE_CALL to 0 if not already defined.
4384         (forced_callee): Make non-inlinable and non-pure.
4385         (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1.
4387 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4388             Ben Brosgol  <brosgol@adacore.com>
4389             Robert Dewar  <dewar@adacore.com>
4391         * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64
4392         support.
4393         Document that gnatbind -M option is for cross environments only.
4394         Added description of using gnatmem to trace gnat rtl allocs and deallocs
4395         Add note on use of $ to label implicit run time calls
4396         Add documentation for -gnatyI (check mode IN)
4397         Updated chapter on compatibility with HP Ada
4398         VMS-oriented edits.
4399         Ran spell and corrected errors
4400         Add documentation for gnatbind -d and rework documentation of -D
4401         at the same time.
4402         Add subprogram/data elimination section.
4403         Minor editing of annex A.
4404         Add section for gnatcheck.
4405         Add documentation for restriction No_Dispatching_Calls
4406         Add documentation for pragma Ada_2005
4407         Remove mention of obsolete pragma Propagate_Exceptions
4408         Document that pragma Unreferenced can appear after DO in ACCEPT
4409         Clarify Pure_Function for library level units
4410         Mention Max/Min in connection with No_Implicit_Conditionals
4411         No_Wide_Characters restriction is no longer partition-wide
4412         Add a nice example for Universal_Literal_String attribute
4413         Document that pragma No_Return can take multiple arguments
4415         * ug_words: Added entry for gnatcheck
4417         * g-ctrl_c.ads (Install_Handler): Enhance comments
4419         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
4421         * g-trasym.ads: Add documentation on how to do off line symbolic
4422         traceback computation.
4424         * s-fatgen.adb: Add comments for Unaligned_Valid
4426         * stand.ads: Fix typo in comment
4428 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4430         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
4432 2006-02-06  Roger Sayle  <roger@eyesopen.com>
4434         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
4436 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4438         PR target/25926
4439         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
4440         implementation that calls __main.
4442 2006-01-25  Peter O'Gorman  <peter@pogma.com>
4444         PR bootstrap/25859
4445         * Makefile.in (GCC_LINK): Remove quotes.
4446         (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)"
4447         or $(GCC_LINK).
4449         (powerpc-darwin): Pass -shared-libgcc when building shared library.
4451 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4453         PR ada/24533
4454         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
4458 Copyright (C) 2006 Free Software Foundation, Inc.
4460 Copying and distribution of this file, with or without modification,
4461 are permitted in any medium without royalty provided the copyright
4462 notice and this notice are preserved.