OSDN Git Service

New out of ssa Coalescer.
[pf3gnuchains/gcc-fork.git] / gcc / ada / ChangeLog
1 2006-12-05  Aldy Hernandez  <aldyh@redhat.com>
2
3         Merge from gimple-tuples-branch.
4
5         2006-11-02  Aldy Hernandez  <aldyh@redhat.com>
6         * ada-tree.h (lang_tree_node): Handle gimple tuples.
7         * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with
8         GIMPLE_MODIFY_STMT.
9
10 2006-12-02  Kazu Hirata  <kazu@codesourcery.com>
11
12         * Makefile.in, mingw32.h, trans.c: Fix comment typos.
13         * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions.
14         Fix typos.
15
16 2006-11-17  Eric Botcazou  <ebotcazou@adacore.com>
17
18         PR ada/27936
19         * trans.c (add_decl_expr): Do not dynamically elaborate padded objects
20         if the initializer takes into account the padding.
21
22 2006-11-11  Richard Guenther  <rguenther@suse.de>
23
24         * trans.c (maybe_stabilize_reference): Remove handling of
25         FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
26
27 2006-11-05  Arnaud Charlet  <charlet@adacore.com>
28
29         * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
30         (To_Target_Priority): New function.
31         Fix PR ada/29707
32
33 2006-10-31  Robert Dewar  <dewar@adacore.com>
34
35         * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb,
36         a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb,
37         s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb,
38         a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb,
39         a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb,
40         a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb,
41         a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb,
42         a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb,
43         a-szbzha.adb: Minor reformatting. Fix header.
44
45         * a-numaux-x86.adb: Add parentheses for use of unary minus
46         * a-ngcefu.adb: Supply missing parentheses for unary minus
47         * a-ngcoty.adb: Add parens for use of unary minus
48         * a-ngelfu.adb: Add missing parens for unary minus
49         * a-tifiio.adb: Add parentheses for uses of unary minus
50
51 2006-10-31  Robert Dewar  <dewar@adacore.com>
52             Bob Duff  <duff@adacore.com>
53             Ed Schonberg  <schonberg@adacore.com>
54
55         * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus
56         with multiplying operator.
57         (Expected_Type_Is_Any_Real): New function to determine from the Parent
58         pointer whether the context expects "any real type".
59         (Resolve_Arithmetic_Op): Do not give an error on calls to the
60         universal_fixed "*" and "/" operators when they are used in a context
61         that expects any real type. Also set the type of the node to
62         Universal_Real in this case, because downstream processing requires it
63         (mainly static expression evaluation).
64         Reword some continuation messages
65         Add some \\ sequences to continuation messages
66         (Resolve_Call): Refine infinite recursion case. The test has been
67         sharpened to eliminate some false positives.
68         Check for Current_Task usage now includes entry barrier, and is now a
69         warning, not an error.
70         (Resolve): If the call is ambiguous, indicate whether an interpretation
71         is an inherited operation.
72         (Check_Aggr): When resolving aggregates, skip associations with a box,
73         which are priori correct, and will be replaced by an actual default
74         expression in the course of expansion.
75         (Resolve_Type_Conversion): Add missing support for conversion from
76         a class-wide interface to a tagged type. Minor code cleanup.
77         (Valid_Tagged_Converion): Add support for abstact interface type
78         conversions.
79         (Resolve_Selected_Component): Call Generate_Reference here rather than
80         during analysis, and use May_Be_Lvalue to distinguish read/write.
81         (Valid_Array_Conversion): New procedure, abstracted from
82         Valid_Conversion, to incorporate accessibility checks for arrays of
83         anonymous access types.
84         (Valid_Conversion): For a conversion to a numeric type occurring in an
85         instance or inlined body, no need to check that the operand type is
86         numeric, since this has been checked during analysis of the template.
87         Remove legacy test for scope name Unchecked_Conversion.
88
89         * sem_res.ads: Minor reformatting
90
91         * a-except.adb, a-except-2005.adb: Turn off subprogram ordering
92         (PE_Current_Task_In_Entry_Body): New exception code
93         (SE_Restriction_Violation): Removed, not used
94
95         * a-except.ads:  Update comments.
96
97         * types.h, types.ads: Add definition for Validity_Check
98         (PE_Current_Task_In_Entry_Body): New exception code
99         (SE_Restriction_Violation): Removed, not used
100
101 2006-10-31  Thomas Quinot  <quinot@adacore.com>
102
103         * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
104         error status.
105
106 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
107             Jose Ruiz  <ruiz@adacore.com>
108
109         * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private
110         part of Ada.Calendar: all subprogram raise Unimplemented.
111         (Split_W_Offset): Temp function body, raising Unimplemented
112
113         * a-calend.ads, a-calend-vms.ads: 
114         Add imported variable Invalid_TZ_Offset used to designate targets unable
115         to support time zones.
116         (Unimplemented): Temporary function raised by the body of new
117         subprograms below.
118         (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This
119         unit provides handling of leap seconds and is used by the new Ada 2005
120         packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting.
121         (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This
122         version returns an extra value which is the offset to UTC.
123
124         * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff.
125         (Leap_Sec_Ops): New body for package in private part of Ada.Calendar.
126         (Split_W_Offset): New function body.
127         (Time_Of): When a date is close to UNIX epoch, compute the time for
128         that date plus one day (that amount is later substracted after
129         executing mktime) so there are no problems with time zone adjustments.
130
131         * a-calend-mingw.adb: Remove Windows specific version no longer needed.
132
133         * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb,
134         a-catizo.ads, a-catizo.adb: New files.
135
136         * impunit.adb: Add new Ada 2005 entries
137
138         * sysdep.c: Add external variable __gnat_invalid_tz_offset.
139         Rename all occurences of "__gnat_localtime_r" to
140         "__gnat_localtime_tzoff".
141         (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time
142         zone data and calculate the GMT offset.
143         (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64):
144         Use the field "tm_gmtoff" to extract the GMT offset.
145         (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use
146         the external variable "timezone" to calculate the GMT offset.
147
148 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
149             Jose Ruiz  <ruiz@adacore.com>
150
151         * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 
152         s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 
153         s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads,
154         s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from
155         System.Any_Priority to a POSIX priority on the target.
156
157         * system-linux-ia64.ads: 
158         Extend range of Priority types on Linux to use the whole range made
159         available by the system.
160
161         * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New
162         function maps from System.Any_Priority to a POSIX priority on the
163         target.
164         (PTHREAD_PRIO_PROTECT): Set real value.
165         (PTHREAD_PRIO_INHERIT): Now a function.
166         (SIGCPUFAIL): New signal.
167         (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals
168         are documented as reserved by the OS.
169
170         * system-aix.ads: Use the full range of priorities provided by the
171         system on AIX.
172
173         * s-taprop-posix.adb: Call new function To_Target_Priority.
174         (Set_Priority): Take into account Task_Dispatching_Policy and
175         Priority_Specific_Dispatching pragmas when determining if Round Robin
176         must be used for scheduling the task.
177
178         * system-linux-x86_64.ads, system-linux-x86.ads, 
179         system-linux-ppc.ads: Extend range of Priority types on Linux to use
180         the whole range made available by the system.
181
182         * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 
183         s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 
184         s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache
185         when deallocating the TCB in order to avoid potential references to
186         deallocated data.
187         (Set_Priority): Take into account Task_Dispatching_Policy and
188         Priority_Specific_Dispatching pragmas when determining if Round Robin
189         or FIFO within priorities must be used for scheduling the task.
190
191         * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in
192         the Thread field (to be used internally by the run-time system) and the
193         kernel-level task id in the LWP field (to be used by the debugger).
194         (Create_Task): Reorganize to unify the calls to taskSpawn into a single
195         instance, and propagate the current task options to the spawned task.
196         (Set_Priority): Take into account Priority_Specific_Dispatching pragmas.
197         (Initialize): Set Round Robin dispatching when the corresponding pragma
198         is in effect.
199
200 2006-10-31  Robert Dewar  <dewar@adacore.com>
201
202         * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 
203         system-linux-hppa.ads, system-hpux-ia64.ads, 
204         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 
205         system-vxworks-sparcv9.ads, system-solaris-x86.ads, 
206         system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 
207         system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 
208         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 
209         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 
210         system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off,
211         Default_Bit_Order) to kill constant condition warnings for references
212         to this switch.
213
214 2006-10-31  Vincent Celier  <celier@adacore.com>
215             Eric Botcazou  <ebotcazou@adacore.com>
216
217         * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb,
218         mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb,
219         mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of
220         Ext_To, when building the library file name
221
222         * mlib-tgt-vxworks.adb: ditto.
223         (Get_Target_Suffix): Add support for x86 targets.
224
225         * mlib-fil.ads, mlib-fil.adb: (Append_To): New function
226
227         * mlib-tgt-darwin.adb: 
228         Use Append_To, instead of Ext_To, when building the library file name
229         (Flat_Namespace): New global variable.
230         (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options.
231         (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options.
232         (Link_Shared_Libgcc): Delete.
233         (Build_Dynamic_Library): Adjust for above changes.
234         Use Opt package.
235         (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later.
236
237 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
238
239         * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
240         (Initialize): Add type conversions required by above change.
241
242 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
243
244         * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 
245         (getpid): New body for this function that uses the underlying taskIdSelf
246         function for VxWorks 5 and VxWorks 6 in kernel mode.
247         (unsigned_int): New type, modular to allow logical bit operations.
248         (taskOptionsGet): New imported function.
249
250         * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP
251         field to be compliant with the type used by the corresponding operating
252         system primitive.
253
254 2006-10-31  Pascal Obry  <obry@adacore.com>
255             Eric Botcazou  <ebotcazou@adacore.com>
256             Vincent Celier  <celier@adacore.com>
257
258         * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the
259         ASCII version of the registry API. This is needed as the GNAT runtime
260         is now UNICODE by default.
261         Include version.h.
262         (get_gcc_version): Do not hardcode the return value.
263         (__gnat_file_time_name): On Windows properly set the default returned
264         value to -1 which corresponds to Invalid_Time.
265         (__gnat_fopen): New routine. A simple wrapper on all plateforms
266          except on Windows where it does conversion for unicode support.
267         (__gnat_freopen): Idem.
268         (__gnat_locate_exec_on_path): If environment variable PATH does not
269         exist, return a NULL pointer
270
271         * adaint.h: (__gnat_fopen): Declare.
272         (__gnat_freopen): Likewise.
273
274         * mingw32.h (_tfreopen): Define this macro here for older MingW
275         version.
276         Activate the unicode support on platforms using a MingW runtime
277         version 3.9 or newer.
278
279         * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen.
280         This is needed for proper unicode support on Windows.
281         (freopen): Idem.
282
283 2006-10-31  Eric Botcazou  <ebotcazou@adacore.com>
284             Nicolas Setton  <setton@adacore.com>
285             Olivier Hainque  <hainque@adacore.com>
286             Gary Dismukes  <dismukes@adacore.com>
287
288         * gigi.h: (tree_code_for_record_type): Declare.
289         (add_global_renaming_pointer): Rename to record_global_renaming_pointer.
290         (get_global_renaming_pointers): Rename to
291         invalidate_global_renaming_pointers.
292         (static_ctors): Delete.
293         (static_dtors): Likewise.
294         (gnat_write_global_declarations): Declare.
295         (create_var_decl): Adjust descriptive comment to indicate that the
296         subprogram may return a CONST_DECL node.
297         (create_true_var_decl): Declare new function, similar to
298         create_var_decl but forcing the creation of a VAR_DECL node.
299         (get_global_renaming_pointers): Declare.
300         (add_global_renaming_pointer): Likewise.
301
302         * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro.
303
304         * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type
305         tree before setting TREE_ADDRESSABLE for by-reference return mechanism
306         processing.
307         (gnat_to_gnu_entity): Remove From_With_Type from computation for
308         imported_p.
309         <E_Access_Type>: Use the Non_Limited_View as the full view of the
310         designated type if the pointer comes from a limited_with clause.  Make
311         incomplete designated type if it is in the main unit and has a freeze
312         node.
313         <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and
314         Underlying_Full_View similarly.  Return earlier if the full view already
315         has an associated tree.
316         (gnat_to_gnu_entity) <E_Record_Type>: Restore comment.
317         (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type.
318         (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the
319         reference type built for objects with an address clause.
320         Use create_true_var_decl with const_flag set for
321         DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with
322         TREE_READONLY set.
323         (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME
324         for Character and Wide_Character types. This info is read by the
325         dwarf-2 writer, and is needed to be able to use the command "ptype
326         character" in the debugger.
327         (gnat_to_gnu_entity): When generating a type representing
328         a Character or Wide_Character type, set the flag TYPE_STRING_FLAG,
329         so that debug writers can distinguish it from ordinary integers.
330         (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in
331         addition to TREE_READONLY to assert the constantness of variables for
332         elaboration purposes.
333         (gnat_to_gnu_entity, subprogram cases): Change loops on formal
334         parameters to call new Einfo function First_Formal_With_Extras.
335         (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a
336         protected type with its corresponding discriminant, to obtain a usable
337         declaration
338         (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared
339         for a multiple elaboration of the "equivalent" type.
340         (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer
341         into record_global_renaming_pointer.
342         (gnat_to_gnu_entity) <E_Array_Type>: Do not force
343         TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
344         <E_Array_Subtype>: Likewise.
345         (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular
346         incomplete subtypes and incomplete subtypes of incomplete types visible
347         through a limited with clause.
348         (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of
349         the base index type for the maximum size of the array only if they are
350         constant.
351         (gnat_to_gnu_entity, renaming object case): Do not wrap up the
352         expression into a SAVE_EXPR if stabilization failed.
353
354         * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of
355         a result decl into DECL_BY_REFERENCE on this decl, now what is expected
356         by lower level compilation passes.
357         (gnat_genericize): New function, lowering a function body to GENERIC.
358         Turn the type of RESULT_DECL into a real reference type if the decl
359         has been marked DECL_BY_REFERENCE, and adjust references to the latter
360         accordingly.
361         (gnat_genericize_r): New function. Tree walking callback for
362         gnat_genericize.
363         (convert_from_reference, is_byref_result): New functions. Helpers for
364         gnat_genericize_r.
365         (create_type_decl): Call gnat_pushdecl before calling
366         rest_of_decl_compilation, to make sure that field TYPE_NAME of
367         type_decl is properly set before calling the debug information writers.
368         (write_record_type_debug_info): The heuristics which compute the
369         alignment of a field in a variant record might not be accurate. Add a
370         safety test to make sure no alignment is set to a smaller value than
371         the alignment of the field type.
372         (make_dummy_type): Use the Non_Limited_View as the underlying type if
373         the type comes from a limited_with clause. Do not loop on the full view.
374         (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros.
375         (dummy_node_table): New global variable, moved from decl.c.
376         (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros.
377         (save_gnu_tree): Use above macros.
378         (get_gnu_tree): Likewise.
379         (present_gnu_tree): Likewise.
380         (init_dummy_type): New function, moved from decl.c. Use above macros.
381         (make_dummy_type): Likewise.
382         (tree_code_for_record_type): New function extracted from make_dummy_type
383         (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc.
384         (static_ctors): Change it to a vector, make static.
385         (static_dtors): Likewise.
386         (end_subprog_body): Adjust for above change.
387         (build_global_cdtor): Moved from trans.c.
388         (gnat_write_global_declarations): Emit global constructor and
389         destructor, and call cgraph_optimize before emitting debug info for
390         global declarations.
391         (global_decls): New global variable.
392         (gnat_pushdecl): Store the global declarations in global_decls, for
393         later use.
394         (gnat_write_global_declarations): Emit debug information for global
395          declarations.
396         (create_var_decl_1): Former create_var_decl, with an extra argument to
397          state whether the creation of a CONST_DECL is allowed.
398         (create_var_decl): Behavior unchanged. Now a wrapper around
399         create_var_decl_1 allowing CONST_DECL creation.
400         (create_true_var_decl): New function, similar to create_var_decl but
401         forcing the creation of a VAR_DECL node (CONST_DECL not allowed).
402         (create_field_decl): Do not always mark the field as addressable
403         if its type is an aggregate.
404         (global_renaming_pointers): New static variable.
405         (add_global_renaming_pointer): New function.
406         (get_global_renaming_pointers): Likewise.
407
408         * misc.c (gnat_dwarf_name): New function.
409         (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name.
410         (gnat_post_options): Add comment about structural alias analysis.
411         (gnat_parse_file): Do not call cgraph_optimize here.
412         (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations.
413
414         * trans.c (process_freeze_entity): Don't abort if we already have a
415         non dummy GCC tree for a Concurrent_Record_Type, as it might
416         legitimately have been elaborated while processing the associated
417         Concurrent_Type prior to this explicit freeze node.
418         (Identifier_to_gnu): Do not make a variable referenced in a SJLJ
419         exception handler volatile if it is of variable size.
420         (process_type): Remove bypass for types coming from a limited_with
421         clause.
422         (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT
423         actual, convert the corresponding gnu_actual to the real destination
424         type when necessary.
425         (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables
426         originally TREE_READONLY but whose elaboration cannot be performed
427         statically.
428         Part of fix for F504-021.
429         (tree_transform, subprogram cases): Change loops on formal parameters to
430         call new Einfo function First_Formal_With_Extras.
431         (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow
432         stemming from type conversion for the lhs.
433         (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the
434         number of bits per unit for components of records.
435         (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed.
436         (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated
437         with At_End_Proc after the SJLJ EH cleanup.
438         (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main
439         compilation unit.
440         (elaborate_all_entities): Do not retest type_annotate_only.
441         (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the
442         result type of an abstract subprogram, which may be an itype associated
443         with an anonymous access result (related to AI-318-02).
444         (build_global_cdtor): Move to utils.c.
445         (Case_Statement_to_gnu): Avoid adding the choice of a when statement if
446         this choice is not a null tree nor an integer constant.
447         (gigi): Run unshare_save_expr via walk_tree_without_duplicates
448         on the body of elaboration routines instead of mark_unvisited.
449         (add_stmt): Do not mark the tree.
450         (add_decl_expr): Tweak comment.
451         (mark_unvisited): Delete.
452         (unshare_save_expr): New static function.
453         (call_to_gnu): Issue an error when making a temporary around a
454         procedure call because of non-addressable actual parameter if the
455         type of the formal is by_reference.
456         (Compilation_Unit_to_gnu): Invalidate the global renaming pointers
457         after building the elaboration routine.
458
459 2006-10-31  Bob Duff  <duff@adacore.com>
460
461         * a-filico.adb (Finalize(List_Controller)): Mark the finalization list
462         as finalization-started, so we can raise Program_Error on 'new'.
463
464         * s-finimp.adb: Raise Program_Error on 'new' if finalization of the
465         collection has already started.
466
467         * s-finimp.ads (Collection_Finalization_Started): Added new special
468         flag value for indicating that a collection's finalization has started.
469
470         * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to
471         create a task whose master has already waited for dependent tasks.
472
473 2006-10-31  Robert Dewar  <dewar@adacore.com>
474
475         * lib.adb, lib.ads: (In_Predefined_Unit): New functions
476
477         * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 
478         a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 
479         a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 
480         a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 
481         a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 
482         a-except-2005.ads: Add pragma Preelaborable_Warning
483
484 2006-10-31  Robert Dewar  <dewar@adacore.com>
485             Jose Ruiz  <ruiz@adacore.com>
486
487         * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files.
488
489         * ali.adb (Get_Name): Properly handle scanning of wide character names
490         encoded with brackets notation.
491         (Known_ALI_Lines): Add S lines to this list.
492         (Scan_ALI): Acquire S (priority specific dispatching) lines.
493         New flag Elaborate_All_Desirable in unit table
494
495         * ali.ads (Priority_Specific_Dispatching): Add this range of
496         identifiers to be used for Priority_Specific_Dispatching table entries.
497         (ALIs_Record): Add First_Specific_Dispatching and
498         Last_Specific_Dispatching that point to the first and last entries
499         respectively in the priority specific dispatching table for this unit.
500         (Specific_Dispatching): Add this table for storing each S (priority
501         specific dispatching) line encountered in the input ALI file.
502         New flag Elaborate_All_Desirable in unit table
503
504         * bcheck.adb: (Check_Configuration_Consistency): Add call to
505         Check_Consistent_Dispatching_Policy.
506         (Check_Consistent_Dispatching_Policy): Add this procedure in charge of
507         verifying that the use of Priority_Specific_Dispatching,
508         Task_Dispatching_Policy, and Locking_Policy is consistent across the
509         partition.
510
511         * bindgen.adb: (Public_Version_Warning): function removed.
512         (Set_PSD_Pragma_Table): Add this procedure in charge of getting the
513         required information from ALI files in order to initialize the table
514         containing the specific dispatching policy.
515         (Gen_Adainit_Ada): Generate the variables required for priority specific
516         dispatching entries (__gl_priority_specific_dispatching and
517         __gl_num_specific_dispatching).
518         (Gen_Adainit_C): Generate the variables required for priority specific
519         dispatching entries (__gl_priority_specific_dispatching and
520         __gl_num_specific_dispatching).
521         (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching
522         pragma entries.
523         (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed.
524         (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures.
525         (Tab_To): Removed.
526         (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of
527         a call to gnat_set_globals.
528         Generate a string containing settings from
529         Priority_Specific_Dispatching pragma entries.
530         (Gen_Object_Files_Options): Do not include the runtime libraries when
531         pragma No_Run_Time is specified.
532
533         * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for
534         consistency with s-intman-posix.adb.
535         (__gnat_error_handler, case FreeBSD): Account for the fact that the
536         handler is installed with SA_SIGINFO.
537         (__gnat_adjust_context_for_raise, FreeBSD case): New function for
538         FreeBSD ZCX support, copied from Linux version.
539         Add MaRTE-specific definitions for the linux target. Redefine sigaction,
540         sigfillset, and sigemptyset so the routines defined by MaRTE.
541         (__gl_priority_specific_dispatching): Add this variable that stores the
542         string containing priority specific dispatching policies in the
543         partition.
544         (__gl_num_specific_dispatching): Add this variable that indicates the
545         highest priority for which a priority specific dispatching pragma
546         applies.
547         (__gnat_get_specific_dispatching): Add this routine that returns the
548         priority specific dispatching policy, as set by a
549         Priority_Specific_Dispatching pragma appearing anywhere in the current
550         partition. The input argument is the priority number, and the result
551         is the upper case first character of the policy name.
552         (__gnat_set_globals): Now a dummy function.
553         (__gnat_handle_vms_condition): Feed adjust_context_for_raise with
554         mechargs instead of sigargs, as the latter can be retrieved from the
555         former and sigargs is not what we want on ia64.
556         (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the
557         mechargs argument.
558         (__gnat_adjust_context_for_raise, ia64-vms): New function.
559         (tasking_error): Remove unused symbol.
560         (_abort_signal): Move this symbol to the IRIX specific part since this
561         is the only target that uses this definition.
562         (Check_Abort_Status): Move this symbol to the IRIX specific part since
563         this is the only target that uses this definition.
564         (Lock_Task): Remove unused symbol.
565         (Unlock_Task): Remove unused symbol.
566
567         * lib-writ.adb (Write_ALI): Output new S lines for
568         Priority_Specific_Dispatching pragmas.
569         Implement new flag BD for elaborate body desirable
570
571         * lib-writ.ads: Document S lines for Priority Specific Dispatching.
572         (Specific_Dispatching): Add this table for storing the entries
573         corresponding to Priority_Specific_Dispatching pragmas.
574         Document new BD flag for elaborate body desirable
575
576         * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list
577         of known pragmas.
578
579 2006-10-31  Javier Miranda  <miranda@adacore.com>
580
581         * a-tags.ads, a-tags.adb: 
582         (Predefined_DT): New function that improves readability of the code.
583         (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address,
584         Inherit_DT): Use the new function Predefined_DT to improve code
585         readability.
586         (Register_Interface_Tag): Update assertion.
587         (Set_Interface_Table): Update assertion.
588         (Interface_Ancestor_Tags): New subprogram required to implement AI-405:
589         determining progenitor interfaces in Tags.
590         (Inherit_CPP_DT): New subprogram.
591
592         * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the
593         analysis of the thunk code.
594         (Expand_Interface_Conversion): Handle run-time conversion of
595         access to class wide types.
596         (Expand_Dispatching_Call): When generating the profile for the
597         subprogram itype for a dispatching operation, properly terminate the
598         formal parameters chaind list (set the Next_Entity of the last formal
599         to Empty).
600         (Collect_All_Interfaces): Removed. This routine has been moved to
601         sem_util and renamed as Collect_All_Abstract_Interfaces.
602         (Set_All_DT_Position): Hidden entities associated with abstract
603         interface primitives are not taken into account in the check for
604         3.9.3(10); this check is done with the aliased entity.
605         (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for
606         interfacing with CPP by default.
607         (Expand_Interface_Conversion): Add missing support for static conversion
608         from an interface to a tagged type.
609         (Collect_All_Interfaces): Add new out formal containing the list of
610         abstract interface types to cleanup the subprogram Make_DT.
611         (Make_DT): Update the code to generate the table of interfaces in case
612         of abstract interface types.
613         (Is_Predefined_Dispatching_Alias): New function that returns true if
614         a primitive is not a predefined dispatching primitive but it is an
615         alias of a predefined dispatching primitive.
616         (Make_DT): If the ancestor of the type is a CPP_Class and we are
617         compiling under full ABI compatibility mode we avoid the generation of
618         calls to run-time services that fill the dispatch tables because under
619         this mode we currently inherit the dispatch tables in the IP subprogram.
620         (Write_DT): Emit an "is null" indication for a null procedure primitive.
621         (Expand_Interface_Conversion): Use an address as the type of the formal
622         of the internally built function that handles the case in which the
623         target type is an access type.
624
625 2006-10-31  Robert Dewar  <dewar@adacore.com>
626
627         * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
628
629 2006-10-31  Robert Dewar  <dewar@adacore.com>
630
631         * bindusg.ads, bindusg.adb:
632         Change to package and rename procedure as Display, which
633         now ensures that it only outputs usage information once.
634
635 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
636
637         * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when
638         using RTPs.
639
640         * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater
641         when using RTPs.
642
643 2006-10-31  Robert Dewar  <dewar@adacore.com>
644             Ed Schonberg  <schonberg@adacore.com>
645
646         * treepr.adb: Use new subtype N_Membership_Test
647
648         * checks.ads, checks.adb: Add definition for Validity_Check
649         (Range_Or_Validity_Checks_Suppressed): New function
650         (Ensure_Valid): Test Validity_Check suppressed
651         (Insert_Valid_Check): Test Validity_Check suppressed
652         (Insert_Valid_Check): Preserve Do_Range_Check flag
653         (Validity_Check_Range): New procedure
654         (Expr_Known_Valid): Result of membership test is always valid
655         (Selected_Range_Checks): Range checks cannot be applied to discriminants
656         by themselves. Disabling those checks must also be done for task types,
657         where discriminants may be used for the bounds of entry families.
658         (Apply_Address_Clause_Check): Remove side-effects if address expression
659         is non-static and is not the name of a declared constant.
660         (Null_Exclusion_Static_Checks): Extend to handle Function_Specification.
661         Code cleanup and new error messages.
662         (Enable_Range_Check): Test for some cases of suppressed checks
663         (Generate_Index_Checks): Suppress index checks if index checks are
664         suppressed for array object or array type.
665         (Apply_Selected_Length_Checks): Give warning for compile-time detected
666         length check failure, even if checks are off.
667         (Ensure_Valid): Do not generate a check on an indexed component whose
668         prefix is a packed boolean array.
669         * checks.adb: (Alignment_Checks_Suppressed): New function
670         (Apply_Address_Clause_Check): New procedure, this is a completely
671         rewritten replacement for Apply_Alignment_Check
672         (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that
673         we request a discriminal value only in case of discriminants.
674         (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for
675         assignments where the target subtype is unconstrained and the target
676         object is a parameter or dereference (other aliased cases are known
677         to be unconstrained).
678
679 2006-10-31  Robert Dewar  <dewar@adacore.com>
680
681         * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads,
682         prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads,
683         vms_conv.adb: Fix bad table increment values (much too small)
684
685         * table.adb (Realloc): Make sure we get at least some new elements
686         Defends against silly small values for table increment
687
688 2006-10-31  Robert Dewar  <dewar@adacore.com>
689             Ed Schonberg  <schonberg@adacore.com>
690             Bob Duff  <duff@adacore.com>
691
692         * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all
693         entities. Move other fields around to make this possible
694         (Is_Derived_Type): Add missing call to Is_Type.
695         (Extra_Formals): New function for subprograms, entries, subprogram
696         types.
697         (Set_Extra_Formals): New procedure for subprograms, entries, subp types.
698         (First_Formal_With_Extras): New function for subprogs, entries, subp
699         types.
700         (Write_Field28_Name): New procedure for node display of "Extra_Formals".
701         Add node information for E_Return_Statement.
702         (Elaborate_Body_Desirable): New flag
703         (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type
704         to be Is_Inherently_Limited_Type, because return-by-reference has
705         no meaning in Ada 2005.
706         (E_Return_Statement): New entity kind.
707         (Return_Applies_To): Field of E_Return_Statement.
708         (Is_Return_Object): New flag in object entities.
709         (Is_Dynamic_Scope): Make it True for E_Return_Statement.
710         (Must_Have_Preelab_Init): New flag
711         (Known_To_Have_Preelab_Init): New flag
712         (Is_Formal_Object): Move from Sem_Ch8 body to Einfo
713         (Is_Visible_Formal): New flag on entities in formal packages.
714         (Low_Bound_Known): New flag
715         (Non_Limited_View, Set_Non_Limited_View): Add membership test agains
716         Incomplete_Kind.
717         (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name
718         output when Id is an incomplete subtype.
719
720 2006-10-31  Robert Dewar  <dewar@adacore.com>
721
722         * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m
723         Avoid abbreviation Creat
724         (Finalize): List all sources in extended mail source if -gnatl
725         switch is active.
726         Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set
727         (Finalize): Implement new -gnatl=xxx switch to output listing to file
728         (Set_Specific_Warning_On): New procedure
729         (Set_Specific_Warning_Off): New procedure
730         Add implementation of new insertion \\
731         (Error_Msg_Internal): Add handling for Error_Msg_Line_Length
732         (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram
733         types.
734         (Error_Msg_Internal): Make sure that we set Last_Killed to
735         True when a message from another package is suppressed.
736         Implement insertion character ~ (insert string)
737         (First_Node): Minor adjustments to get better placement.
738
739         * frontend.adb: 
740         Implement new -gnatl=xxx switch to output listing to file
741
742         * gnat1drv.adb: 
743         Implement new -gnatl=xxx switch to output listing to file
744
745         * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch
746         (Commands_To_Stdout): New flag
747         Implement new -gnatl=xxx switch to output listing to file
748         New switch Dump_Source_Text
749         (Warn_On_Deleted_Code): New warning flag for -gnatwt
750         Define Error_Msg_Line_Length
751         (Warn_On_Assumed_Low_Bound): New switch
752
753         * osint.ads, osint.adb
754         (Normalize_Directory_Name): Fix bug.
755         Implement new -gnatl=xxx switch to output listing to file
756         (Concat): Removed, replaced by real concatenation
757         Make use of concatenation now allowed in compiler
758         (Executable_Prefix.Get_Install_Dir): First get the full path, so that
759         we find the 'lib' or 'bin' directory even when the tool has been
760         invoked with a relative path.
761         (Executable_Name): New function taking string parameters.
762
763         * osint-c.ads, osint-c.adb: 
764         Implement new -gnatl=xxx switch to output listing to file
765
766         * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File
767
768         * switch-c.adb: 
769         Implement new -gnatl=xxx switch to output listing to file
770         Recognize new -gnatL switch
771         (no longer keep in old warning about old style usage)
772         Use concatenation to simplify code
773         Recognize -gnatjnn switch
774         (Scan_Front_End_Switches): Clean up handling of -gnatW
775         (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg
776
777 2006-10-31  Robert Dewar  <dewar@adacore.com>
778
779         * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure
780         (Set_Specific_Warning_Off): New procedure
781         (Warning_Specifically_Suppressed): New function
782         (Validate_Specific_Warnings): New procedure
783         (Output_Msg_Text): Complete rewrite to support -gnatjnn
784
785         * err_vars.ads: Implement insertion character ~ (insert string)
786
787 2006-10-31  Bob Duff  <duff@adacore.com>
788             Ed Schonberg  <schonberg@adacore.com>
789
790         * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if
791         the parent part is a build-in-place function call, generate assignments.
792         (Expand_Record_Aggregate): Call Convert_To_Assignments if any components
793         are build-in-place function calls.
794         (Replace_Self_Reference): New subsidiary of
795         Make_OK_Assignment_Statement, to replace an access attribute that is a
796         self-reference into an access to the appropriate component of the
797         target object. Generalizes previous mechanism to handle self-references
798         nested at any level.
799         (Is_Self_Referential_Init): Remove, not needed.
800         (Is_Self_Referential_Init): New predicate to simplify handling of self
801         referential components in record aggregates.
802         (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to
803         check for presence of entity before checking for self-reference.
804         (Has_Default_Init_Comps): Return True if a component association is a
805         self-reference to the enclosing type, which can only come from a
806         default initialization.
807         (Make_OK_Assignment_Statement): If the expression is of the form
808         Typ'Acc, where Acc is an access attribute, the expression comes from a
809         default initialized self-referential component.
810         (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type
811         that has been derived from several abstract interfaces we must also
812         initialize the tags of the secondary dispatch tables.
813
814 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
815             Thomas Quinot  <quinot@adacore.com>
816             Javier Miranda  <miranda@adacore.com>
817             Robert Dewar  <dewar@adacore.com>
818         
819         * exp_attr.adb: 
820         (Expand_Access_To_Protected_Op): If the context indicates that an access
821         to a local operation may be transfered outside of the object, create an
822         access to the wrapper operation that must be used in an external call.
823         (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP
824         target, pass the Valid attribute applied to a floating-point prefix on
825         to the back end without expansion.
826         (Storage_Size): Use the new run-time function Storage_Size to retrieve
827         the allocated storage when it is specified by a per-object expression.
828         (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type.
829         Nothing to do here, the attribute has been rewritten during semantic
830         analysis.
831         (Expand_Attribute_Reference): Handle expansion of the new Priority
832         attribute
833         (Find_Fat_Info): Handle case of universal real
834         (Expand_Access_To_Protected_Op): Fix use of access to protected
835         subprogram from inside the body of a protected entry.
836         (Expand_Access_To_Protected_Op): Common procedure for the expansion of
837         'Access and 'Unrestricted_Access, to transform the attribute reference
838         into a fat pointer.
839         (Is_Constrained_Aliased_View): New predicate to help determine whether a
840         subcomponent's enclosing variable is aliased with a constrained subtype.
841         (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05,
842         test Is_Constrained_Aliased_View rather than Is_Aliased_View, because
843         an aliased prefix must be known to be constrained in order to use True
844         for the attribute value, and now it's possible for some aliased views
845         to be unconstrained.
846
847 2006-10-31  Robert Dewar  <dewar@adacore.com>
848
849         * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue
850         (Expand_Entity_Reference): Correct error of not handling subprogram
851         formals in current_value processing.
852
853 2006-10-31  Javier Miranda  <miranda@adacore.com>
854             Robert Dewar  <dewar@adacore.com>
855             Ed Schonberg  <schonberg@adacore.com>
856             Gary Dismukes  <dismukes@adacore.com>
857
858         * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not
859         register in the final list objects containing class-wide interfaces;
860         otherwise we incorrectly register the tag of the interface in the final
861         list.
862         (Make_Controlling_Function_Wrappers): Add missing barrier to do not
863         generate the wrapper if the parent primitive is abstract. This is
864         required to report the correct error message.
865         (Expand_N_Subtype_Indication): Do validity checks on range
866         (Clean_Task_Names): If an initialization procedure includes a call to
867         initialize a task (sub)component, indicate that the procedure will use
868         the secondary stack.
869         (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI
870         compatibility for interfacing with CPP by default.
871         (Expand_N_Object_Declaration): Only build an Adjust call when the
872         object's type is a nonlimited controlled type.
873         * exp_ch3.adb: Add with and use of Exp_Ch6.
874         (Expand_N_Object_Declaration): Check for object initialization that is a
875         call to build-in-place function and apply Make_Build_In_Place_Call_In_
876         Object_Declaration to the call.
877         (Freeze_Type): When the designated type of an RACW was not frozen at the
878         point where the RACW was declared, validate the primitive operations
879         with respect to E.2.2(14) when it finally is frozen.
880         (Build_Initialization_Call,Expand_Record_Controller): Rename
881         Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because
882         return-by-reference has no meaning in Ada 2005.
883         (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top
884         to register tag of the immediate ancestor interfaces in the
885         run-time structure.
886         (Init_Secondary_Tags): Moved to the specification to allow the
887         initialization of extension aggregates with abstract interfaces.
888         (Build_Master_Renaming): Make public, for use by function declarations
889         whose return type is an anonymous access type.
890         (Freeze_Record_Type): Replace call to Insert_List_Before by call to
891         Insert_List_Before_And_Analyze after the generation of the specs
892         associated with null procedures.
893         (Expand_Tagged_Root): Update documentation in its specification.
894         (Init_Secondary_Tags): Update documentation.
895         (Build_Init_Procedure): If we are compiling under CPP full ABI compa-
896         tibility mode and the immediate ancestor is a CPP_Pragma tagged type
897         then generate code to inherit the contents of the dispatch table
898         directly from the ancestor.
899         (Expand_Record_Controller): Insert controller component after tags of
900         implemented interfaces.
901         (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to
902         create null procedure overridings when null procedures are inherited
903         from interfaces.
904         (Make_Null_Procedure_Specs): New procedure to generate null procedure
905         declarations for overriding null primitives inherited from interfaces.
906         (Is_Null_Interface_Procedure): New function in
907         Make_Null_Procedure_Specs.
908         (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the
909         immediate ancestor of a tagged type is an abstract interface type we
910         must generate the specification of the predefined primitives associated
911         with controlled types (because the dispatch table of the ancestor is
912         null and hence these entries cannot be inherited). This is required to
913         elaborate well the dispatch table.
914
915 2006-10-31  Javier Miranda  <miranda@adacore.com>
916             Ed Schonberg  <schonberg@adacore.com>
917             Bob Duff  <duff@adacore.com>
918             Gary Dismukes  <dismukes@adacore.com>
919             Robert Dewar  <dewar@adacore.com>
920         
921         * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type
922         conversion.
923         (Expand_N_In): Do validity checks on range
924         (Expand_Selected_Component): Use updated for of Denotes_Discriminant.
925         (Expand_N_Allocator): For "new T", if the object is constrained by
926         discriminant defaults, allocate the right amount of memory, rather than
927         the maximum for type T.
928         (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects
929         when the allocator is initialized by a build-in-place call, since the
930         allocator is already rewritten as a reference to the function result,
931         and this prevents an unwanted duplication of the function call.
932         Add with and use of Exp_Ch6.
933         (Expand_Allocator_Expresssion): Check for an allocator whose expression
934         is a call to build-in-place function and apply
935         Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and
936         untagged designated types).
937         (Expand_N_Unchecked_Type_Conversion): Do not do integer literal
938         optimization if source or target is biased.
939         (Expand_N_Allocator): Add comments for case of an allocator within a
940         function that returns an anonymous access type designating tasks.
941         (Expand_N_Allocator): apply discriminant checks for access
942         discriminants of anonymous access types (AI-402, AI-416)
943
944 2006-10-31  Bob Duff  <duff@adacore.com>
945             Robert Dewar  <dewar@adacore.com>
946             Gary Dismukes  <dismukes@adacore.com>
947             Ed Schonberg  <schonberg@adacore.com>
948
949         * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure.
950
951         * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range
952         (Expand_N_Assignment_Statement): Call
953         Make_Build_In_Place_Call_In_Assignment if the right-hand side is a
954         build-in-place function call. Currently, this can happen only for
955         assignments that come from aggregates.
956         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
957         in order to alleviate the upward compatibility introduced by AI-318.
958         (Expand_N_Extended_Return_Statement): Add support for handling the
959         return object as a build-in-place result.
960         (Expand_Non_Function_Return): Implement simple return statements nested
961         within an extended return.
962         (Enable_New_Return_Processing): Turn on the new processing of return
963         statements.
964         (Expand_Non_Function_Return): For a return within an extended return,
965         don't raise Program_Error, because Sem_Ch6 now gives a warning.
966         (Expand_N_Extended_Return_Statement): Implement AI-318
967         (Expand_Simple_Function_Return): Ditto.
968         (Expand_N_If_Statement): Handle new -gnatwt warning
969         (Expand_N_Case_Statement): Handle new -gnatwt warning
970         (Expand_N_Assignment): Handle assignment to the Priority attribute of
971         a protected object.
972         (Expand_N_Assignment_Statement): Implement -gnatVe/E to control
973         validity checking of assignments to elementary record components.
974         (Expand_N_Return_Statement): return Class Wide types on the secondary
975         stack independantly of their controlled status since with HIE runtimes,
976         class wide types are not potentially controlled anymore.
977
978         * expander.adb (Expand): Add case for new N_Extended_Return_Statement
979         node kind.
980
981         * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid
982         Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because
983         it expects a block, procedure, or task. The return statement will get
984         turned into a block, and Expand_Cleanup_Actions will happen then.
985
986 2006-10-31  Robert Dewar  <dewar@adacore.com>
987             Ed Schonberg  <schonberg@adacore.com>
988             Bob Duff  <duff@adacore.com>
989             Gary Dismukes  <dismukes@adacore.com>
990
991         * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression
992         capability.
993         (Expand_Inlined_Call): Tagged types are by-reference types, and
994         therefore should be replaced by a renaming declaration in the expanded
995         body, as is done for limited types.
996         (Expand_Call): If this is a call to a function with dispatching access
997         result, propagate tag from context.
998         (Freeze_Subprogram): Enable full ABI compatibility for interfacing with
999         CPP by default.
1000         (Make_Build_In_Place_Call_In_Assignment): New procedure to do
1001         build-in-place when the right-hand side of an assignment is a
1002         build-in-place function call.
1003         (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion
1004         of the explicit dereference of the allocator to the result subtype of
1005         the build-in-place function. This is needed to satisfy type checking
1006         in cases where the caller's return object is created by an allocator for
1007         a class-wide access type and the type named in the allocator is a
1008         specific type.
1009         (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked
1010         conversion of the reference to the declared object to the result subtype
1011         of the build-in-place function. This is needed to satisfy type checking
1012         in cases where the declared object has a class-wide type. Also, in the
1013         class-wide case, change the type of the object entity to the specific
1014         result subtype of the function, to avoid passing a class-wide object
1015         without explicit initialization to the back end.
1016         (Register_Interface_DT_Entry): Moved outside the body of
1017         Freeze_Subprogram because this routine is now public; it is called from
1018         Check_Dispatching_Overriding to handle late overriding of abstract
1019         interface primitives.
1020         (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for
1021         adding an implicit access actual on a call to a build-in-place function.
1022         (Expand_Actuals): Test for an actual parameter that is a call to a
1023         build-in-place function and apply
1024         Make_Build_In_Place_Call_In_Anonymous_Context to the call.
1025         (Is_Build_In_Place_Function): New function to determine whether an
1026         entity is a function whose calls should be handled as build-in-place.
1027         (Is_Build_In_Place_Function_Call): New function to determine whether an
1028         expression is a function call that should handled as build-in-place.
1029         (Make_Build_In_Place_Call_In_Allocator): New procedure for handling
1030         calls to build-in-place functions as the initialization of an allocator.
1031         (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for
1032         handling calls to build-in-place functions in contexts that do not
1033         involve init of a separate object (for example, actuals of subprogram
1034         calls).
1035         (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for
1036         handling calls to build-in-place functions as the initialization of an
1037         object declaration.
1038         (Detect_Infinite_Recursion): Add explicit parameter Process to
1039         instantiation of Traverse_Body to avoid unreferenced warning.
1040         (Check_Overriding_Inherited_Interfaces): Removed.
1041         (Register_Interface_DT_Entry): Code cleanup.
1042         (Register_Predefined_DT_Entry): Code cleanup.
1043         (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around
1044         inlined statements if within a transient scope.
1045         (Expand_Inlined_Call.Process_Formals): When replacing occurrences of
1046         formal parameters with occurrences of actuals in inlined body, establish
1047         visibility on the proper view of the actual's subtype for the body's
1048         context.
1049         (Freeze_Subprogram): Do nothing if we are compiling under full ABI
1050         compatibility mode and we have an imported CPP subprogram because
1051         for now we assume that imported CPP primitives correspond with
1052         objects whose constructor is in the CPP side (and therefore we
1053         don't need to generate code to register them in the dispatch table).
1054         (Expand_Actuals): Introduce copy of actual, only if it might be a bit-
1055         aligned selected component.
1056         (Add_Call_By_Copy_Node): Add missing code to handle the case in which
1057         the actual of an in-mode parameter is a type conversion.
1058         (Expand_Actuals): If the call does not come from source and the actual
1059         is potentially misaligned, let gigi handle it rather than rejecting the
1060         (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning
1061         Class Wide types as returning by reference independantly of their
1062         controlled status since with HIE runtimes class wide types are not
1063         potentially controlled anymore.
1064
1065 2006-10-31  Ed Schonberg  <schonberg@adacore.com>             
1066
1067         * exp_ch9.adb (Update_Prival_Types): Simplify code for entity
1068         references that are private components of the protected object.
1069         (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function
1070         (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc
1071         instantiation to deal with warnings.
1072         (Initialize_Protection): If expression for priority is non-static, use
1073         System_Priority as its expected type, in case the expression has not
1074         been analyzed yet.
1075
1076 2006-10-31  Robert Dewar  <dewar@adacore.com>
1077
1078         * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing
1079         initialization of Homonym_Len.
1080         (Fully_Qualify_Name): Remove kludge to eliminate anonymous block
1081         names from fully qualified name. Fixes problem of duplicate
1082         external names differing only in the presence of such a block name.
1083
1084 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1085             Pablo Oliveira  <oliveira@adacore.com>
1086         
1087         * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign
1088         subprogram Ids, even if they are not yet assigned.
1089         (Build_Subprogram_Id): It is now this function that will take care of
1090         calling Assign_Subprogram_Ids if necessary.
1091         (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids
1092         should be done only once they are assigned.
1093         (Build_From_Any_Function, case of tagged types): Add missing call to
1094         Allocate_Buffer.
1095         (Corresponding_Stub_Type): New subprogram. Returns the associated stub
1096         type for an RACW type.
1097         (Add_RACW_Features): When processing an RACW declaration for which the
1098         designated type is already frozen, enforce E.2.2(14) rules immediately.
1099         (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any
1100         special reordering of controlling formals.
1101
1102         * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the
1103         associated stub type for an RACW type.
1104
1105 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1106
1107         * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of
1108         fixed-point operations in an integer context, i.e. as operands of a
1109         conversion to an integer type, indicate that result must be rounded.
1110
1111 2006-10-31  Robert Dewar  <dewar@adacore.com>
1112
1113         * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character
1114         cases, pass the encoding method, since it is now required by the run
1115         time.
1116
1117         * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid
1118         assumption that Str'First = 1.
1119         (Value_Wide_Character): Takes EM (encoding method) parameter and passes
1120         it on to the Value_Wide_Wide_Character call.
1121         (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and
1122         properly handles a string of the form quote-encoded_wide_char-quote.
1123
1124         * s-wchcnv.adb: Minor reformatting
1125
1126 2006-10-31  Javier Miranda  <miranda@adacore.com>
1127         
1128         * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing
1129         run-time membership test to ensure that the constructed object
1130         implements the target abstract interface.
1131
1132 2006-10-31  Robert Dewar  <dewar@adacore.com>
1133
1134         * exp_prag.adb (Expand_Pragma_Common_Object): Use a single
1135         Machine_Attribute pragma internally to implement the user pragma.
1136         Add processing for pragma Interface so that it is now completely
1137         equivalent to pragma Import.
1138
1139         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma
1140         so that it can be applied to all entities, including record components
1141         and enumeration literals.
1142         (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether
1143         priority ranges are correct, verify compatibility against task
1144         dispatching and locking policies, and if everything is correct an entry
1145         is added to the table containing priority specific dispatching entries
1146         for this compilation unit.
1147         (Delay_Config_Pragma_Analyze): Delay processing
1148         Priority_Specific_Dispatching pragmas because when processing the
1149         pragma we need to access run-time data, such as the range of
1150         System.Any_Priority.
1151         (Sig_Flags): Add Pragma_Priority_Specific_Dispatching.
1152         Allow pragma Unreferenced as a context item
1153         Add pragma Preelaborable_Initialization
1154         (Analyze_Pragma, case Interface): Interface is extended so that it is
1155         now syntactically and semantically equivalent to Import.
1156         (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on
1157         insertion characters.
1158         Add handling for Pragma_Wide_Character_Encoding
1159         (Process_Restrictions_Restriction_Warnings): Ensure that a warning
1160         never supercedes a real restriction, and that a real restriction
1161         always supercedes a warning.
1162         (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of
1163         appropriate form.
1164
1165 2006-10-31  Bob Duff  <duff@adacore.com>
1166             Ed Schonberg  <schonberg@adacore.com>
1167             Robert Dewar  <dewar@adacore.com>
1168
1169         * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs,
1170         Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be
1171         Is_Inherently_Limited_Type, because return-by-reference has no meaning
1172         in Ada 2005.
1173         (Find_Node_To_Be_Wrapped): Use new method of determining the result
1174         type of the function containing a return statement, because the
1175         Return_Type field was removed. We now use the Return_Applies_To field.
1176
1177         * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test
1178         (Build_Task_Image_Decl): If procedure is not called from an
1179         initialization procedure, indicate that function that builds task name
1180         uses the sec. stack. Otherwise the enclosing initialization procedure
1181         will carry the indication.
1182         (Insert_Actions): Remove N_Return_Object_Declaration. We now use
1183         N_Object_Declaration instead.
1184         (Kill_Dead_Code): New interface to implement -gnatwt warning for
1185         conditional dead code killed, and change implementation accordingly.
1186         (Insert_Actions): Add N_Return_Object_Declaration case.
1187         Correct comment to mention N_Extension_Aggregate node.
1188         (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad
1189         attempts to save information for global variables which cannot be
1190         safely tracked.
1191         (Get_Current_Value_Condition): Handle conditions the other way round
1192         (constant on left). Also handle right operand of AND and AND THEN
1193         (Set_Current_Value_Condition): Corresponding changes
1194         (Append_Freeze_Action): Remove unnecessary initialization of Fnode.
1195         (Get_Current_Value_Condition): Handle simple boolean operands
1196         (Get_Current_Value_Condition): Handle left operand of AND or AND THEN
1197         (Get_Current_Value_Condition): If the variable reference is within an
1198         if-statement, does not appear in the list of then_statments, and does
1199         not come from source, treat it as being at unknown location.
1200         (Get_Current_Value_Condition): Enhance to allow while statements to be
1201         processed as well as if statements.
1202         (New_Class_Wide_Subtype): The entity for a class-wide subtype does not
1203         come from source.
1204         (OK_To_Do_Constant_Replacement): Allow constant replacement within body
1205         of loop. This is safe now that we fixed Kill_Current_Values.
1206         (OK_To_Do_Constant_Replacement): Check whether current scope is
1207         Standard, before examining outer scopes.
1208
1209 2006-10-31  Vincent Celier  <celier@adacore.com>
1210
1211         * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target.
1212         When True, apply VMS treatment to children of packages A, G, I and S.
1213         For F320-016
1214
1215         * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target
1216
1217 2006-10-31  Robert Dewar  <dewar@adacore.com>
1218             Ed Schonberg  <schonberg@adacore.com>
1219
1220         * freeze.adb: Add handling of Last_Assignment field
1221         (Warn_Overlay): Supply missing continuation marks in error msgs
1222         (Freeze_Entity): Add check for Preelaborable_Initialization
1223
1224         * g-comlin.adb: Add Warnings (Off) to prevent new warning
1225
1226         * g-expect.adb: Add Warnings (Off) to prevent new warning
1227
1228         * lib-xref.adb: Add handling of Last_Assignment field
1229         (Generate_Reference): Centralize handling of pragma Obsolescent here
1230         (Generate_Reference): Accept an implicit reference generated for a
1231         default in an instance.
1232         (Generate_Reference): Accept a reference for a node that is not in the
1233         main unit, if it is the generic body corresponding to an subprogram
1234         instantiation.
1235
1236         * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings
1237
1238         * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for
1239         -gnatwq/Q.
1240         (Warn_On_Useless_Assignment): Suppress warning if enclosing inner
1241         exception handler.
1242         (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on
1243         use clauses, to avoid messages on packages used to qualify, and also
1244         to avoid messages from obsolescent units.
1245         (Warn_On_Useless_Assignments): Don't generate messages for imported
1246         and exported variables.
1247         (Warn_On_Useless_Assignments): New procedure
1248         (Output_Obsolescent_Entity_Warnings): New procedure
1249         (Check_Code_Statement): New procedure
1250
1251         * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag
1252         Change name Is_Ada_2005 to Is_Ada_2005_Only
1253         (Last_Assignment): New field for useless assignment warning
1254
1255 2006-10-31  Olivier Hainque  <hainque@adacore.com>
1256
1257         * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the
1258         closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16.
1259
1260 2006-10-31  Bob Duff  <duff@adacore.com>
1261             Robert Dewar  <dewar@adacore.com>
1262             Ed Schonberg  <schonberg@adacore.com>
1263
1264         * g-awk.adb (Default_Session, Current_Session): Compile this file in
1265         Ada 95 mode, because it violates the new rules for AI-318.
1266
1267         * g-awk.ads: Use overloaded subprograms in every case where we used to
1268         have a default of Current_Session. This makes the code closer to be
1269         correct for both Ada 95 and 2005.
1270
1271         * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005
1272         code, relying on the fact that the compiler generates a warning
1273         instead of an error in -gnatg mode.
1274
1275         * lib-xref.ads (Xref_Entity_Letters): Add entry for new
1276         E_Return_Statement entity kind.
1277         Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters.
1278
1279         * par.adb (P_Interface_Type_Definition): Addition of one formal to
1280         report an error if the reserved word abstract has been previously found.
1281         (SS_End_Type): Add E_Return for new extended_return_statement syntax.
1282         
1283         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for
1284         parenthesized range attribute usage
1285         (P_Expression_No_Right_Paren): Add missing comment about error recovery.
1286
1287         * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant"
1288         in the syntax for extended_return_statement. This is not in the latest
1289         RM, but the ARG is expected to issue an AI allowing this.
1290         (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove
1291         N_Return_Object_Declaration. We now use N_Object_Declaration instead.
1292         (P_Return_Object_Declaration, P_Return_Subtype_Indication,
1293         P_Return_Statement): Parse the new syntax for extended_return_statement.
1294
1295         * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected,
1296         Output_End_Missing): Add error-recovery code for the new
1297         extended_return_statement syntax; that is, the new E_Return entry on
1298         the scope stack.
1299
1300         * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from
1301         limited to nonlimited, because otherwise we violate the new Ada 2005
1302         rules about returning limited types in function Create_AST_Handler in
1303         s-asthan.adb.
1304
1305         * sem.adb (Analyze): Add cases for new node kinds
1306         N_Extended_Return_Statement and N_Return_Object_Declaration.
1307
1308         * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component
1309         type is in the same category as type of context before applying check,
1310         to prevent anomalies in instantiations.
1311         (Resolve_Aggregate): Remove test for limited components in aggregates.
1312         It's unnecessary in Ada 95, because if it has limited components, then
1313         it must be limited. It's wrong in Ada 2005, because limited aggregates
1314         are now allowed.
1315         (Resolve_Record_Aggregate): Move check for limited types later, because
1316         OK_For_Limited_Init requires its argument to have been resolved.
1317         (Get_Value): When copying the component default expression for a
1318         defaulted association in an aggregate, use the sloc of the aggregate
1319         and not that of the original expression, to prevent spurious
1320         elaboration errors, when the expression includes function calls.
1321         (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates
1322         were missing. We also didn't handle qualified expressions. Now also
1323         allow function calls. Use new common routine OK_For_Limited_Init.
1324         (Resolve_Extension_Aggregate): Minor fix to bad error message (started
1325         with space can upper case letter).
1326
1327         * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set
1328         Has_Static_Discriminants flag
1329         (Record_Type_Declaration): Diagnose an attempt to declare an interface
1330         type with discriminants.
1331         (Process_Range_Expr_In_Decl): Do validity checks on range
1332         (Build_Discriminant_Constraints): Use updated form of
1333         Denotes_Discriminant.
1334         (Process_Subtype): If the subtype is a private subtype whose full view
1335         is a concurrent subtype, introduce an itype reference to prevent scope
1336         anomalies in gigi.
1337         (Build_Derived_Record_Type, Collect_Interface_Primitives,
1338         Record_Type_Declaration):  The functionality of the subprograms
1339         Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces
1340         is now performed by a single routine.
1341         (Build_Derived_Record_Type): If the type definition includes an explicit
1342         indication of limitedness, then the type must be marked as limited here
1343         to ensure that any access discriminants will not be treated as having
1344         a local anonymous access type.
1345         (Check_Abstract_Overriding): Issue a detailed error message when an
1346         abstract subprogram was not overridden due to incorrect mode of its
1347         first parameter.
1348         (Analyze_Private_Extension_Declaration): Add support for the analysis of
1349         synchronized private extension declarations. Verify that the ancestor is
1350         a limited or synchronized interface or in the generic case, the ancestor
1351         is a tagged limited type or synchronized interface and all progenitors
1352         are either limited or synchronized interfaces.
1353         Derived_Type_Declaration): Check for presence of private extension when
1354         dealing with synchronized formal derived types.
1355         Process_Full_View): Enchance the check done on the usage of "limited" by
1356         testing whether the private view is synchronized.
1357         Verify that a synchronized private view is completed by a protected or
1358         task type.
1359         (OK_For_Limited_Init_In_05): New function.
1360         (Analyze_Object_Declaration): Move check for limited types later,
1361         because OK_For_Limited_Init requires its argument to have been resolved.
1362         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1363         in order to alleviate the upward compatibility introduced by AI-318.
1364         (Constrain_Corresponding_Record): If the constraint is for a component
1365         subtype, mark the itype as frozen, to avoid out-of-scope references to
1366         discriminants in the back-end.
1367         (Collect_Implemented_Interfaces): Protect the recursive algorithm of
1368         this subprogram against wrong sources.
1369         (Get_Discr_Value, Is_Discriminant): Handle properly references to a
1370         discriminant of limited type completed with a protected type, when the
1371         discriminant is used to constrain a private component of the type, and
1372         expansion is disabled.
1373         (Find_Type_Of_Object): Do not treat a return subtype that is an
1374         anonymous subtype as a local_anonymous_type, because its accessibility
1375         level is the return type of the enclosing function.
1376         (Check_Initialization): In -gnatg mode, turn the error "cannot
1377         initialize entities of limited type" into a warning.
1378         (OK_For_Limited_Init): Return true for generated nodes, since it
1379         sometimes violates the legality rules.
1380         (Make_Incomplete_Declaration): If the type for which an incomplete
1381         declaration is created happens to be the currently visible entity,
1382         preserve the homonym chain when removing it from visibility.
1383         (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of
1384         inherited subprograms.
1385         (Access_Definition): If this is an access to function that is the return
1386         type of an access_to_function definition, context is a type declaration
1387         and the scope of the anonymous type is the current one.
1388         (Analyze_Subtype_Declaration): Add the defining identifier of a regular
1389         incomplete subtype to the set of private dependents of the original
1390         incomplete type.
1391         (Constrain_Discriminated_Type): Emit an error message whenever an
1392         incomplete subtype is being constrained.
1393         (Process_Incomplete_Dependents): Transform an incomplete subtype into a
1394         corresponding subtype of the full view of the original incomplete type.
1395         (Check_Incomplete): Properly detect invalid usage of incomplete types
1396         and subtypes.
1397
1398 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1399
1400         * g-catiio.ads, g-catiio.adb (Value): New function.
1401         Given an input String, try and parse a valid Time value.
1402
1403 2006-10-31  Vincent Celier  <celier@adacore.com>
1404
1405         * g-debpoo.adb (Is_Valid): Correctly compute Offset using
1406         Integer_Address arithmetic, as in Set_Valid.
1407
1408 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1409             Robert Dewar  <dewar@adacore.com>
1410
1411         * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of
1412         handling executable extension manually and duplicating code.
1413
1414         * make.adb: Implement new -S switch
1415         (Gnatmake): Use new function Osint.Executable_Name instead
1416         of handling executable extension manually.
1417
1418         * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix
1419         is specified, the executable name ends with this suffix.
1420         Take advantage of Osint.Executable_Name instead of duplicating code.
1421
1422         * switch-m.adb: Recognize new gnatmake -S switch
1423
1424         * targparm.ads, targparm.adb (Executable_Extension_On_Target): New
1425         variable.
1426         (Get_Target_Parameters): Set Executable_Extension_On_Target if
1427         available.
1428
1429         * makeusg.adb: Add line for gnatmake -S switch
1430
1431 2006-10-31  Vincent Celier  <celier@adacore.com>
1432
1433         * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc,
1434         call it with -static-libgcc, as there are some platforms, such as
1435         Darwin, where one of these two switches is compulsory to link.
1436
1437 2006-10-31  Vincent Celier  <celier@adacore.com>
1438         
1439         * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined,
1440         instead of ADA_PROJECT_PATH, for the project path.
1441         (Gnatls): When displaying the project path directories, use host dir
1442         specs.
1443
1444         * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path
1445         names in the project path, as absolute paths may correspond to
1446         multi-valued VMS logical names.
1447
1448 2006-10-31  Vincent Celier  <celier@adacore.com>
1449
1450         * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an
1451         absolute path name.
1452         (Locate_Regular_File): Ditto
1453         (Change_Dir): Remove, no longer used
1454         (Normalize_Pathname): Do not use Change_Dir to get the drive letter
1455         on Windows. Get it calling Get_Current_Dir.
1456         (OpenVMS): Remove imported boolean, no longer needed.
1457         (Normalize_Pathname)[VMS]: Do not resolve directory names.
1458         (Pid_To_Integer): New function to convert a Process_Id to  Integer
1459
1460 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1461
1462         * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling
1463         sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components
1464         to No_Socket.
1465         (Selector_Type): Add default value of No_Socket for R_Sig_Socket and
1466         W_Sig_Socket.
1467
1468 2006-10-31  Robert Dewar  <dewar@adacore.com>
1469
1470         * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
1471         initial letter o as a zero.
1472
1473 2006-10-31  Robert Dewar  <dewar@adacore.com>
1474
1475         * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
1476
1477 2006-10-31  Robert Dewar  <dewar@adacore.com>
1478
1479         * layout.adb (Layout_Record_Type): Deal with non-static subtypes of
1480         variant records
1481         (Layout_Variant_Record): Retrieve the discriminants from the entity
1482         rather than from the type definition, because in the case of a full
1483         type for a private type we need to take the discriminants from the
1484         partial view.
1485         (Layout_Component_List): When applying the Max operator to variants with
1486         a nonstatic size, check whether either operand is static and scale that
1487         operand from bits to storage units before applying Max.
1488         (Layout_Type): In VMS, if a C-convention access type has no explicit
1489         size clause (and does not inherit one in the case of a derived type),
1490         then the size is reset to 32 from 64.
1491
1492 2006-10-31  Vincent Celier  <celier@adacore.com>
1493
1494         * lib-load.adb (Load_Unit): Skip the test for a unit not found when
1495         its file has already been loaded, according to the unit being loaded,
1496         not to the current value of Multiple_Unit_Index.
1497
1498 2006-10-31  Thomas Quinot  <quinot@adacore.com>
1499             Eric Botcazou  <ebotcazou@adacore.com>
1500             Arnaud Charlet  <charlet@adacore.com>
1501
1502         * Makefile.in: Set EH mechanism to ZCX for FreeBSD.
1503         (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if
1504         possible.
1505         (a-except.o): Pass it to the compiler.
1506         (gnatlib-shared-vms): Removed -nostartfiles switch in link step.
1507         (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific
1508         a-calend-mingw.adb version.
1509
1510         * Makefile.rtl: Added s-dsaser.
1511         Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones]
1512         (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and
1513         Ada.Dispatching.Round_Robin.
1514         Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists
1515
1516         * Make-lang.in: Remove all references to gt-ada-decl.h.
1517         Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler
1518         sources.
1519         Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects.
1520         Update dependencies.
1521
1522         * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD
1523
1524 2006-10-31  Vincent Celier  <celier@adacore.com>
1525
1526         * mlib-utl.adb (Initialized): Remove, no longer used
1527         (Initialize): Remove, no longer used
1528         (Ar): If Ar_Exec is null, get the location of the archive builder and,
1529         if there is one, the archive indexer. Fail if the archive builder cannot
1530         be found.
1531         (Gcc): If the driver path is unknown, get it. Fail if the driver cannot
1532         be found.
1533
1534 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1535
1536         * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs,
1537         Process_Body_Clauses): If the context of a body includes a use clause
1538         for P.Q then a with_clause for P in the same body is not redundant,
1539         even if the spec also has a with_clause on P.
1540         Add missing continuation mark to error msg
1541         (Build_Limited_Views): A limited view of a type is tagged if its
1542         declaration includes a record extension.
1543         (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit
1544         node, even if the subunit has errors. This avoids malfunction by
1545         Lib.Check_Same_Extended_Unit in the presence of syntax errors.
1546         (Analyze_Compilation_Unit): Add circuit to make sure we get proper
1547         generation of obsolescent messages for with statements (cannot do
1548         this too early, or we cannot implement avoiding the messages in the
1549         case of obsolescent units withing obsolescent units).
1550         (Install_Siblings): If the with_clause is on a remote descendant of
1551         an ancestor of the current compilation unit, find whether there is
1552         a sibling child unit that is immediately visible.
1553         (Remove_Private_With_Clauses): New procedure, invoked after completing
1554         the analysis of the private part of a nested package, to remove from
1555         visibility the private with_clauses of the enclosing package
1556         declaration.
1557         (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is
1558         now centralized in Generate_Reference.
1559         (Install_Limited_Context_Clauses): Remove superfluous error
1560         message associated with unlimited view visible through use
1561         and renamings. In addition, at the point in which the error
1562         is reported, we add the backslash to the text of the error
1563         to ensure that it is reported as a single error message.
1564         Use new // insertion for some continuation messages
1565         (Expand_Limited_With_Clause): Use copy of name rather than name itself,
1566         to create implicit with_clause for parent unit mentioned in original
1567         limited_with_clause.
1568         (Install_Limited_With_Unit): Set entity of parent identifiers if the
1569         unit is a child unit. For ASIS queries.
1570         (Analyze_Subunit): If the subunit appears within a child unit, make all
1571         ancestor child units directly visible again.
1572
1573 2006-10-31  Robert Dewar  <dewar@adacore.com>
1574
1575         * par-ch10.adb (P_Context_Clause): Minor error message fix
1576
1577 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1578             Javier Miranda  <miranda@adacore.com>
1579
1580         * par-ch12.adb: Grammar update and cleanup.
1581         (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add
1582         support for synchronized derived type definitions.
1583         Add the new actual Abstract_Present to every call to
1584         P_Interface_Type_Definition.
1585         (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of
1586         a formal object declaration with an access definition or a subtype mark
1587         with a null exclusion.
1588         (P_Generic_Association): Handle association with box, and others_choice
1589         with box, to support Ada 2005 partially parametrized formal packages.
1590
1591 2006-10-31  Robert Dewar  <dewar@adacore.com>
1592             Javier Miranda  <miranda@adacore.com>
1593         
1594         * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses
1595         (P_Type_Declaration): Remove barrier against the reserved word "limited"
1596         after "abstract" to give support to the new syntax of AARM 3.4 (2/2).
1597         (P_Type_Declaration): Minor code cleanup. Add support for synchronized
1598         private extensions.
1599         (P_Type_Declaration): Add the new actual Abstract_Present to every call
1600         to P_Interface_Type_Definition.
1601         (P_Interface_Type_Definition): Addition of one formal to report an error
1602         if the reserved word abstract has been previously found.
1603         (P_Identifier_Declarations): Update grammar rules. Handle parsing of an
1604         object renaming declaration with an access definition or subtype mark
1605         with a possible null exclusion.
1606
1607         * par-ch9.adb: Minor error msg fix
1608
1609         * par-load.adb: Add missing continuation mark to error msg
1610
1611         * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation
1612
1613 2006-10-31  Vincent Celier  <celier@adacore.com>
1614
1615         * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for
1616         unknown attribute in unknown package or in package that does not need
1617         to be checked.
1618         (Parse_Package_Declaration): Do not issue warning for unknown package in
1619         quiet output.
1620
1621 2006-10-31  Vincent Celier  <celier@adacore.com>
1622
1623         * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant
1624         (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter
1625         Packages_To_Check.
1626
1627 2006-10-31  Vincent Celier  <celier@adacore.com>
1628
1629         * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S
1630         on VMS, change "__" to '.' before checking the name.
1631         (Record_Ada_Source): Always add the source file name in the list of
1632         of sources, even if it is not the first time, as it is for another
1633         source index.
1634         (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single
1635         dot, instead of replacing only the first '_'.
1636
1637         * prj-part.adb (Parse): Convert project file path to canonical form
1638
1639         * prj-proc.adb (Recursive_Process): Make sure that, when a project is
1640         extended, the project id of the project extending it is recorded in its
1641         data, even when it has already been processed as an imported project.
1642
1643 2006-10-31  Robert Dewar  <dewar@adacore.com>
1644
1645         * repinfo.adb (List_Entities): Don't list entities from renaming
1646         declarations.
1647
1648 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1649             Robert Dewar  <dewar@adacore.com>
1650
1651         * restrict.ads, restrict.adb (Restriction_Active): Now returns False if
1652         only a restriction warning is active for the given restriction. This is
1653         desirable because we do not want to modify code in the case where only
1654         a warning is set.
1655         (Set_Profile_Restrictions): Make sure that a Profile_Warnings never
1656         causes overriding of real restrictions.
1657         Take advantage of new No_Restrictions constant.
1658
1659         * raise.h: (__gnat_set_globals): Change profile.
1660
1661 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
1662         
1663         * rtsfind.adb: Remove s-polint from comment as it exists no more.
1664
1665         * rtsfind.ads: 
1666         Move entity RE_Get_Active_Partition_Id to package System.DSA_Services.
1667         Move all the entities in obsolete package System.PolyORB_Interface to
1668         System.Partition_Interface.
1669         (RE_Storage_Size): New function in System.Tasking.
1670         (RE_Get_Ceiling): New entity.
1671         (RE_Set_Ceiling): New entity.
1672         (RO_PE_Get_Ceiling): New entity.
1673         (RO_RE_Set_Ceiling): New entity.
1674         (Inherit_CPP_DT): New entity
1675
1676 2006-10-31  Robert Dewar  <dewar@adacore.com>
1677
1678         * scng.adb (Scan, case of numeric literal): Better msg for identifier
1679         starting with a digit.
1680
1681 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1682             Thomas Quinot  <quinot@adacore.com>
1683             Javier Miranda  <miranda@adacore.com>
1684             Gary Dismukes  <dismukes@adacore.com>
1685
1686         * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose
1687         properly an attempt to apply Unchecked_Access to a protected operation.
1688         (OK_Self_Reference): New subprogram to check the legality of an access
1689         attribute whose prefix is the type of an enclosing aggregate.
1690         Generalizes previous mechanism to handle attribute references nested
1691         arbitrarily deep within the aggregate.
1692         (Analyze_Access_Attribute): An access attribute whose prefix is a type
1693         can appear in an aggregate if this is a default-initialized aggregate
1694         for a self-referential type.
1695         (Resolve_Attribute, case Access): Ditto.
1696         Add support for new implementation defined attribute Stub_Type.
1697         (Eval_Attribute, case Attribute_Stub_Type): New case.
1698         (Analyze_Attribute, case Attribute_Stub_Type): New case.
1699         (Stream_Attribute_Available): Implement using new subprogram from
1700         sem_cat, Has_Stream_Attribute_Definition, instead of incorrect
1701         Has_Specified_Stream_Attribute flag.
1702         Disallow Storage_Size and Storage_Pool for access to subprogram
1703         (Resolve_Attribute, case 'Access et al): Take into account anonymous
1704         access types of return subtypes in extended return statements. Remove
1705         accessibility checks on anonymous access types when Unchecked_Access is
1706         used.
1707         (Analyze_Attribute): Add support for the use of 'Class to convert
1708         a class-wide interface to a tagged type.
1709         Add support for the attribute Priority.
1710         (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for
1711         whether the designated type is discriminated with a constrained partial
1712         view and require static matching in that case.
1713         Add local variable Des_Btyp. The Designated_Type
1714         of an access to incomplete subtype is either its non-limited view if
1715         coming from a limited with or its etype if regular incomplete subtype.
1716
1717         * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type):
1718         Fix predicate to identify and allow cases of (expander-generated)
1719         references to tag of designated object of a RACW.
1720         (Validate_Static_Object_Name): In Ada 2005, a formal object is
1721         non-static, and therefore cannot appear as a primary in a preelaborable
1722         package.
1723         (Has_Stream_Attribute_Definition): New subprogram, abstracted from
1724         Has_Read_Write_Attributes.
1725         (Has_Read_Write_Attributes): Reimplement in termes of
1726         Has_Stream_Attribute_Definition.
1727         (Missing_Read_Write_Attributes): When checking component types in a
1728         record, unconditionally call Missing_Read_Write_Attributes recursively
1729         (remove guard checking for Is_Record_Type / Is_Access_Type).
1730
1731 2006-10-31  Robert Dewar  <dewar@adacore.com>
1732
1733         * sem_ch11.adb (Analyze_Handled_Statements): Move final test for
1734         useless assignments here and conditionalize it on absence of exception
1735         handlers.
1736         (Analyze_Exception_Handlers): Small code reorganization of error
1737         detection code, for new handling of formal packages.
1738
1739 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1740             Hristian Kirtchev  <kirtchev@adacore.com>
1741         
1742         * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator
1743         that has been constant-folded, preserve information of original tree,
1744         for ASIS uses.
1745         (Analyze_Formal_Derived_Type): Set the limited present flag of the newly
1746         generated private extension declaration if the formal derived type is
1747         synchronized. Carry synchronized present over to the generated private
1748         extension.
1749         (Validate_Derived_Type_Instance): Ensure that the actual of a
1750         synchronized formal derived type is a synchronized tagged type.
1751         (Instantiate_Formal_Package): When creating the instantiation used to
1752         validate the actual package of a formal declared without a box, check
1753         whether the formal itself depends on a prior actual.
1754         (Instantiate_Formal_Subprogram): Create new entities for the defining
1755         identifiers of the formals in the renaming declaration, for ASIS use.
1756         (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating
1757         a renaming declaration or a subtype declaration for an actual in an
1758         instance, capture location information of declaration in generic, for
1759         ASIS use.
1760         (Instantiate_Formal_Package): Add comments on needed additional tests.
1761         AI-317 (partial parametrization) is fully implemented.
1762         (Validate_Private_Type_Instance): Add check for actual which
1763         must have preelaborable initialization
1764         Use new // insertion for some continuation messages
1765         (Analyze_Formal_Object_Declaration): Change usage of Expression to
1766         Default_Expression. Add type retrieval when the declaration has an
1767         access definition. Update premature usage of incomplete type check.
1768         (Check_Access_Definition): New subsidiary routine. Check whether the
1769         current compilation version is Ada 05 and the supplied node has an
1770         access definition.
1771         (Instantiate object): Alphabetize local variables. Handle the creation
1772         of new renaming declarations with respect to the kind of definition
1773         used - either an access definition or a subtype mark. Guard against
1774         unnecessary error message in the context of anonymous access types after
1775         they have been resolved. Add check for required null exclusion in a
1776         formal object declaration.
1777         (Switch_View): A private subtype of a non-private type needs to be
1778         switched (the base type can have been switched without its private
1779         dependents because of the last branch of Check_Private_View.
1780         (Check_Private_View): Do not recompute Base_Type (T), instead use cached
1781         value from BT.
1782         (Instantiate_Type): Emit an error message whenever a class-wide type of
1783         a tagged incomplete type is used as a generic actual.
1784         (Find_Actual_Type): Extend routine to handle a component type in a child
1785         unit that is imported from a formal package in a parent.
1786         (Validate_Derived_Type_Instance): Check that analyzed formal and actual
1787         agree on constrainedness, rather than checking against ultimate ancestor
1788         (Instantiate_Subprogram_Body): Create a cross-reference link to the
1789         generic body, for navigation purposes.
1790
1791 2006-10-31  Robert Dewar  <dewar@adacore.com>
1792             Thomas Quinot  <quinot@adacore.com>
1793
1794         * sem_ch13.adb: Storage pool cannot be given for access to subprogram
1795         type.
1796         (New_Stream_Subprogram): When processing an attribute definition clause
1797         for a stream-oriented subprogram, record an entity node occurring at
1798         the point of clause to use for checking the visibility of the clause,
1799         as defined by 8.3(23) as amended by AI-195.
1800         (New_Stream_Subprogram): New procedure, factoring behaviour from both
1801          New_Stream_Function and New_Stream_Procedure.
1802         (New_Stream_Function, New_Stream_Procedure): Removed.
1803         (Analyze_Attribute_Definition_Clause, case Address): Check new
1804         Alignment_Check check
1805
1806 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1807             Javier Miranda  <miranda@adacore.com>
1808             Robert Dewar  <dewar@adacore.com>
1809
1810         * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we
1811         generate the same errors compiling under -gnatc.
1812         (Try_Object_Operation): If no candidate interpretation succeeds, but
1813         there is at least one primitive operation with the right name, report
1814         error in call rather than on a malformed selected component.
1815         (Analyze_Selected_Component): If the prefix is an incomplete type from
1816         a limited view, and the full view is available, use the full view to
1817         determine whether this is a prefixed call to a primitive operation.
1818         (Operator_Check): Verify that a candidate interpretation is a binary
1819         operation before checking the type of its second formal.
1820         (Analyze_Call): Add additional warnings for function call contexts not
1821         yet supported.
1822         (Analyze_Allocator): Move the check for "initialization not allowed for
1823         limited types" after analyzing the expression. This is necessary,
1824         because OK_For_Limited_Init looks at the structure of the expression.
1825         Before analysis, we don't necessarily know what sort of expression it
1826         is. For example, we don't know whether F(X) is a function call or an
1827         indexed component; the former is legal in Ada 2005; the latter is not.
1828         (Analyze_Allocator): Correct code for AI-287 -- extension aggregates
1829         were missing. We also didn't handle qualified expressions. Now also
1830         allow function calls. Use new common routine OK_For_Limited_Init.
1831         (Analyze_Type_Conversion): Do not perform some legality checks in an
1832         instance, because the error message will be redundant or spurious.
1833         (Analyze_Overloaded_Selected_Component): Do not do style check when
1834         setting an entity, since we do not know it is the right entity yet.
1835         (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res
1836         (Analyze_Overloaded_Selected_Component): Same change
1837         (Analyze_Selected_Component): Remove unnecessary prefix type retrieval
1838         since regular incomplete subtypes are transformed into corresponding
1839         subtypes of their full views.
1840         (Complete_Object_Operation): Treat name of transformed subprogram call
1841         as coming from source, for browsing purposes.
1842         (Try_Primitive_Operation): If formal is an access parameter, compare
1843         with base type of object to determine whether it is a primitive
1844         operation.
1845         (Operator_Check): If no interpretation of the operator matches, check
1846         whether a use clause on any candidate might make the operation legal.
1847         (Try_Class_Wide_Operation): Check whether the first parameter is an
1848         access type whose designated type is class-wide.
1849
1850 2006-10-31  Robert Dewar  <dewar@adacore.com>
1851             Ed Schonberg  <schonberg@adacore.com>
1852             Gary Dismukes  <dismukes@adacore.com>
1853
1854         * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to
1855         warn on infinite loops.
1856         Add \\ to some continuation messages
1857         (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment
1858         (Process_Bounds): If the bounds are integer literals that result from
1859         constant-folding, and they carry a user-defined type, preserve that type
1860         rather than treating this as an integer range.
1861         (Analyze_Exit_Statement): Test for E_Return_Statement in legality check.
1862         (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check.
1863         (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for
1864         left hand side of assignment.
1865         (Analyze_Assignment): Add suport to manage assigments to the attribute
1866         priority of a protected object.
1867         (Check_Possible_Current_Value_Condition): Allow fully qualified names
1868         not just identifiers.
1869         (Check_Possible_Current_Value_Condition): Acquire left operand of AND
1870         or AND THEN for possible tracking.
1871         (Analyze_Iteration_Scheme): Check for setting Current_Value for the
1872         case of while loops so we can track values in the loop body.
1873
1874 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1875             Hristian Kirtchev  <kirtchev@adacore.com>
1876             Bob Duff  <duff@adacore.com>
1877         
1878         * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null
1879         procedure cannot be a protected operation (it is a basic_declaration,
1880         not a subprogram_declaration).
1881         (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_
1882         Subp. Add logic for entry processing.
1883         (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity.
1884         Determine whether an entry or subprogram of a protected or task type
1885         override an inherited primitive of an implemented interface.
1886         (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding.
1887         Update the actual used in calls to Check_Overriding_Indicator.
1888         (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit,
1889         generate the proper reference to the parent unit, for cross-reference.
1890         (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with
1891         Is_Formal.
1892         Add -gnatd.l --Use Ada 95 semantics for limited function returns,
1893         (Add_Extra_Formal): Revise procedure to allow passing in associated
1894         entity, scope, and name suffix, and handle setting of the new
1895         Extra_Formals field.
1896         (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to
1897         pass new parameters. Add support for adding the new extra access formal
1898         for functions whose calls are treated as build-in-place.
1899         (Analyze_A_Return_Statement): Correct casing in error message.
1900         Move Pop_Scope to after Analyze_Function_Return, because an extended
1901         return statement really is a full-fledged scope. Otherwise, visibility
1902         doesn't work right. Correct use of "\" for continuation messages.
1903         (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than
1904         evilly trying to call Analyze_Object_Declaration directly. Otherwise,
1905         the node doesn't get properly marked as analyzed.
1906         (Analyze_Subprogram_Body): If subprogram is a function that returns
1907         an anonymous access type that denotes a task, build a Master Entity
1908         for it.
1909         (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify
1910         proper usage of null exclusion in a result definition.
1911         (Process_Formals): Code cleanup and new error message.
1912         (Process_Formals): Detect incorrect application of null exclusion to
1913         non-access types.
1914         (Conforming_Types): Handle conformance between [sub]types and itypes
1915          generated for entities that have null exclusions applied to them.
1916         (Maybe_Primitive_Operation): Add an additional type retrieval when the
1917          base type is an access subtype. This case arrises with null exclusions.
1918         (New_Overloaded_Entity): Do not remove the overriden entity from the
1919         homonym chain if it corresponds with an abstract interface primitive.
1920         (Process_Formals): Replace membership test agains Incomplete_Kind with a
1921         call to the synthesized predicate Is_Incomplete_Type.
1922         (Analyze_Subprogram_Body): Check wrong placement of abstract interface
1923         primitives.
1924         (Analyze_Subprogram_Declaration): Check that abstract interface
1925         primitives are abstract or null.
1926         (Analyze_Subprogram_Specification): Remove previous check for abstract
1927         interfaces because it was not complete.
1928         (Has_Interface_Formals): Removed.
1929
1930 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
1931             Javier Miranda  <miranda@adacore.com>
1932
1933         * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary
1934         of Analyze_Package_Body, to create Itype references for anonymous
1935         access types created in the package declaration, whose designated types
1936         may have only a limited view.
1937         (Analyze_Package_Specification): For the private part of a nested
1938         package, install private_with_clauses of enclosing compilation unit if
1939         we are in its visible part.
1940         (Declare_Inherited_Private_Subprograms): Complete barrier
1941         to ensure that the primitive operation has an alias to some parent
1942         primitive. This is now required because, after the changes done for the
1943         implementation of abstract interfaces, the contents of the list of
1944         primitives has entities whose alias attribute references entities of
1945         such list of primitives.
1946         (Analyze_Package_Specification): Simplify code that handles parent units
1947         of instances and formal packages.
1948         (Uninstall_Declarations): Check the convention consistency among
1949         primitive overriding operations of a tagged record type.
1950
1951 2006-10-31  Robert Dewar  <dewar@adacore.com>
1952             Hristian Kirtchev  <kirtchev@adacore.com>
1953             Javier Miranda  <miranda@adacore.com>
1954             Ed Schonberg  <schonberg@adacore.com>
1955         
1956         * sem_ch8.adb: Minor error msg rewording
1957         (Undefined): When checking for misspellings, invert arguments (to get
1958         expected and found set right)
1959         (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated
1960         (Analyze_Generic_Renaming): Same fix
1961         (Use_One_Package): Do not take into account the internal entities of
1962         abstract interfaces during the analysis of entities that are marked
1963         as potentially use-visible.
1964         (Find_Type): Handle the case of an attribute reference for
1965         implementation defined attribute Stub_Type (simply let the analysis of
1966         the attribute reference rewrite it).
1967         (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a
1968         type that appears in a Use_Type clause.
1969         (Analyze_Object_Renaming): Add support for renaming of the Priority
1970         attribute.
1971         (Find_Type): In Ada 2005, a task type can be used within its own body,
1972         when it appears in an access definition.
1973         (Analyze_Object_Renaming): Remove warning on null_exclusion.
1974         (Analyze_Object_Renaming): Introduce checks for required null exclusion
1975          in a formal object declaration or in a subtype declaration.
1976         (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion.
1977         (Check_Null_Exclusion): New local routine to
1978         Analyze_Subprogram_Renaming. Check whether the formals and return
1979         profile of a renamed subprogram have required null exclusions when
1980         their counterparts of the renaming already impose them.
1981         (In_Generic_Scope): New local routine to Analyze_Object_Renaming.
1982         Determine whether an entity is inside a generic scope.
1983         (In_Open_Scope): First pass of documentation update.
1984         (Find_Expanded_Name): Add support for shadow entities associated with
1985         limited withed packages. This is required to handle nested packages.
1986         (Analyze_Package_Renaming): Remove the restriction imposed by AI-217
1987         that makes a renaming of a limited withed package illegal.
1988
1989 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
1990             Ed Schonberg  <schonberg@adacore.com>
1991
1992         * sem_ch9.adb (Analyze_Protected_Definition): Remove call to
1993         Check_Overriding_Indicator.
1994         (Analyze_Task_Definition): Ditto.
1995         (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup.
1996         (Check_Overriding_Indicator): To find overridden interface operation,
1997         examine only homonyms that have an explicit subprogram declaration, not
1998         inherited operations created by an unrelated type derivation.
1999         (Check_Overriding_Indicator): When checking for the presence of "null"
2000         in a procedure, ensure that the queried node is a procedure
2001         specification.
2002         (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter
2003         type when the formal is an access to variable.
2004         (Analyze_Protected_Type): Add check for Preelaborable_Initialization
2005         (Analyze_Task_Type): Same addition
2006         (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to
2007         provide navigation capabilities for entries.
2008
2009 2006-10-31  Hristian Kirtchev  <kirtchev@adacore.com>
2010             Ed Schonberg  <schonberg@adacore.com>
2011             Javier Miranda  <miranda@adacore.com>
2012             Gary Dismukes  <dismukes@adacore.com>
2013
2014         * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms
2015         inherited from an interface ancestor by another interface in the
2016         context of an instance as 'late'.
2017         (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference
2018         of a call to a function that dispatches on access result.
2019         (Check_Dispatching_Operation): In case of late overriding of a primitive
2020         that covers abstract interface subprograms we register it in all the
2021         secondary dispatch tables associated with abstract interfaces.
2022         (Check_Dispatching_Call): Add check that a dispatching call is not made
2023         to a function with a controlling result of a limited type. This is a
2024         current implementation restriction.
2025         (Check_Controlling_Formal): Remove bogus checks for E.2.2(14).
2026         (Check_Dispatching_Operation): Do no emit a warning if the controlling
2027         argument is an interface type that is a generic formal.
2028         (Is_Interface_Subprogram): Removed.
2029         (Check_Dispatching_Operation): If the subprogram is not a dispatching
2030         operation, check the formals to handle the case in which it is
2031         associated with an abstract interface type.
2032
2033 2006-10-31  Robert Dewar  <dewar@adacore.com>
2034             Ed Schonberg  <schonberg@adacore.com>
2035
2036         * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure
2037         Add new calls to this procedure during traversal
2038         (Activate_Elaborate_All_Desirable): Do not set elaboration flag on
2039         another unit if expansion is disabled.
2040
2041 2006-10-31  Robert Dewar  <dewar@adacore.com>
2042
2043         * sem_eval.adb (Compile_Time_Compare): Make use of information from
2044         Current_Value in the conditional case, to evaluate additional
2045         comparisons at compile time.
2046
2047 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2048             Hristian Kirtchev  <kirtchev@adacore.com>
2049             Javier Miranda  <miranda@adacore.com>
2050
2051         * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve
2052         subprogram type to provide better diagnostics in case of ambiguity.
2053         (Covers): Handle coverage of formal and actual anonymous access types in
2054         the context of generic instantiation.
2055         (Covers/Interface_Present_In_Ancestors): Use the base type to manage
2056         abstract interface types; this is required to handle concurrent types
2057         with discriminants and abstract interface types.
2058         (Covers): Include type coverage of both regular incomplete subtypes and
2059         incomplete subtypes of incomplete type visibles through a limited with
2060         clause.
2061
2062 2006-10-31  Robert Dewar  <dewar@adacore.com>
2063             Hristian Kirtchev  <kirtchev@adacore.com>
2064             Ed Schonberg  <schonberg@adacore.com>
2065         
2066         * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning
2067         messages for entities in packages which are not used.
2068         (Collect_Synchronized_Interfaces): New procedure.
2069         (Overrides_Synchronized_Primitive): New function.
2070         (Denotes_Discriminant): Extend predicate to apply to task types.
2071         Add missing continuation marks in error msgs
2072         (Unqualify): New function for removing zero or more levels of
2073         qualification from an expression. There are numerous places where this
2074         ought to be used, but we currently only deal properly with zero or one
2075         level.
2076         (In_Instance); The analysis of the actuals in the instantiation of a
2077         child unit is not within an instantiation, even though the parent
2078         instance is on the scope stack.
2079         (Safe_To_Capture_Value): Exclude the case of variables that are
2080         renamings.
2081         (Check_Obsolescent): Removed
2082         (Is_Aliased_View): A reference to an enclosing instance in an aggregate
2083         is an aliased view, even when rewritten as a reference to the target
2084         object in an assignment.
2085         (Get_Subprogram_Entity): New function
2086         (Known_To_Be_Assigned): New function
2087         (Type_Access_Level): Compute properly the access level of a return
2088         subtype that is an anonymous access type.
2089         (Explain_Limited_Type): Correct use of "\" for continuation messages.
2090         (Is_Transfer): The new extended_return_statement causes a transfer of
2091         control.
2092         (Has_Preelaborable_Initialization): New function
2093         (Has_Null_Exclusion): New function. Given a node N, determine whether it
2094         has a null exclusion depending on its Nkind.
2095         Change Is_Lvalue to May_Be_Lvalue
2096         (May_Be_Lvalue): Extensive additional code to deal with subprogram
2097         arguments (IN parameters are not Lvalues, IN OUT parameters are).
2098         (Safe_To_Capture_Value): Extend functionality so it can be used for
2099         the current value condition case.
2100         (Has_Compatible_Alignment): New function
2101         (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable
2102         objects to handle the Ada 2005 case, where aliasedness no longer implies
2103         that the object is constrained. In particular, for dereferenced names,
2104         the designated object must be assumed to be unconstrained.
2105         (Kill_Current_Values): Properly deal with the case where we encounter
2106         a loop in the scope chain.
2107         (Safe_To_Capture_Value): Do not let a loop stop us from capturing
2108         a value.
2109         (Compile_Time_Constraint_Error): Improve error message in error case
2110
2111         * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node
2112         associated with entities of abstract interface primitives.
2113         Call Apply_Address_Clause_Check instead of Apply_Alignment_Check
2114
2115 2006-10-31  Robert Dewar  <dewar@adacore.com>
2116
2117         * s-osinte-tru64.adb: 
2118         Mark Asm statements Volatile to prevent warnings (seems a
2119         reasonable change anyway)
2120         Fixes new warnings
2121
2122         * s-mastop-irix.adb: Add Volatile to Asm statements
2123         Suppresses warning, and seems appropriate in any case
2124
2125         * s-osinte-vms.adb: Add Volatile to Asm statement
2126
2127         * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements
2128
2129         * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be
2130         returned.
2131         Add call to Check_Code_Statement
2132
2133 2006-10-31  Robert Dewar  <dewar@adacore.com>
2134             Ed Schonberg  <schonberg@adacore.com>
2135             Bob Duff  <duff@adacore.com>
2136
2137         * sinfo.ads, sinfo.adb (Set_Synchronized_Present,
2138         Synchronized_Present): Add Formal_Derived_Type_Definition and
2139         Private_Extension_Declaration to the list of assertions.
2140         (Is_Entry_Barrier_Function): New flag
2141         (Has_Self_Reference): New flag on aggregates, to indicate that they
2142         contain a reference to the enclosing type, inserted through a default
2143         initialization.
2144         (Next_Rep_Item): Move from Node4 to Node5.
2145         (Entity): Add this field for N_Attribute_Definition_Clause.
2146         (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement
2147         (N_Return_Object_Declaration): Remove this node kind. We now use
2148         N_Object_Declaration instead.
2149         (Actual_Designated_Subtype): Move to a different place to make room in
2150         N_Extended_Return_Statement.
2151         (Procedure_To_Call): Move to a different place to make room in
2152         N_Extended_Return_Statement.
2153         (Return_Type): Removed this field to make room in return statements
2154         (both kinds).
2155         (Return_Statement_Entity): New field in return statements, in part to
2156         replace Return_Type, and in part to support the fact that return
2157         statements are now pushed on the scope stack during semantic analysis.
2158         (Return_Object_Declarations): New field to support extended return
2159         statements.
2160         (N_Extended_Return_Statement): New node for extended_return_statement
2161         nonterminal.
2162         (N_Return_Object_Declaration): New node for part of
2163         extended_return_statement nonterminal. Needed because all the necessary
2164         fields won't fit in N_Extended_Return_Statement.
2165         Generic_associations now carry the Box_Present flag, to indicate a
2166         default for an actual in a partially parametrized formal package.
2167
2168         * snames.h, snames.ads, snames.adb: Add definition for Validity_Check
2169         (Preset_Names): Add entries for Priority_Specific_Dispatching pragma
2170         and for the new predefined dispatching policies: EDF_Across_Priorities,
2171         Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities.
2172         Introduce new name Stub_Type for implementation defined attribute.
2173         Add pragma Preelaborable_Initialization
2174         Add entry for Priority attribute.
2175         Add Pragma_Wide_Character_Encoding
2176         (Get_Convention_Name): Given a convention id, this function returns the
2177         corresponding name id from the names table.
2178
2179 2006-10-31  Ed Schonberg  <schonberg@adacore.com>
2180             Robert Dewar  <dewar@adacore.com>
2181             Bob Duff  <duff@adacore.com>
2182
2183         * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not
2184         print null exclusion twice in the case of an access definition,
2185         Implement new -gnatL switch
2186         Remove N_Return_Object_Declaration. We now use
2187         N_Object_Declaration instead. Implement the case for
2188         N_Extended_Return_Statement. Alphabetize the cases.
2189         Add cases for new nodes N_Extended_Return_Statement and
2190         N_Return_Object_Declaration. The code is not yet written.
2191         Update the output for N_Formal_Object_Declaration
2192         and N_Object_Renaming_Declaration.
2193         (Write_Itype): Account for the case of a modular integer subtype whose
2194         base type is private.
2195
2196 2006-10-31  Arnaud Charlet  <charlet@adacore.com>
2197
2198         * s-restri.ads, s-restri.adb: Mark this package as Preelaborate.
2199         Remove elaboration code, now done in the binder.
2200
2201         * s-rident.ads: Make this unit Preelaborate.
2202         (No_Restrictions): New constant used to clean up code and follow
2203         preelaborate constraints.
2204
2205         * s-stalib.adb: 
2206         Add System.Restrictions dependence, referenced directly from the
2207         binder generated file.
2208
2209 2006-10-31  Gary Dismukes  <dismukes@adacore.com>
2210
2211         * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set
2212         True when AAMP extended floating-point is in use (48-bit). Change type
2213         ByteLF to ByteLLF, add new array type ByteLF and condition the size of
2214         the two byte array types on AFloat. Change type of IV_Ilf overlay
2215         variable from Byte8 to ByteLF. Add appropriate initializations of
2216         floating-point overlays for AAMP cases.
2217
2218 2006-10-31  Javier Miranda  <miranda@adacore.com>
2219
2220         * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb
2221         (Get_Ceiling): New subprogram that returns
2222         the ceiling priority of the protected object.
2223         (Set_Ceiling): New subprogram that sets the new ceiling priority of
2224         the protected object.
2225
2226         * s-tarest.adb: (Create_Restricted_Task): Fix potential CE.
2227
2228         * s-taskin.ads, s-taskin.adb: (Storage_Size): New function.
2229
2230 2006-10-31  Jose Ruiz  <ruiz@adacore.com>
2231
2232         * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when
2233         requeuing to the same protected object to give higher priority tasks
2234         the opportunity to execute.
2235
2236 2006-10-31  Robert Dewar  <dewar@adacore.com>
2237
2238         * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding,
2239         add more precise check for the character sequence that follows '[' to
2240         avoid possible confusion in case if '[' is the last character of a
2241         string literals.
2242         (Scan_Wide): Always allow brackets encoding
2243
2244 2006-10-31  Olivier Hainque  <hainque@adacore.com>
2245
2246         * s-stchop.ads: make this unit preelaborate. This is desirable in
2247         general and made mandatory by the use of this unit by s-taprop which
2248         is itself preelaborate.
2249
2250         * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add
2251         Td_Events component.
2252
2253 2006-10-31  Vincent Celier  <celier@adacore.com>
2254
2255         * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
2256         in file names.
2257
2258 2006-10-31  Vincent Celier  <celier@adacore.com>
2259
2260         * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
2261
2262 2006-10-31  Vincent Celier  <celier@adacore.com>
2263
2264         * makegpr.adb (Check_Compilation_Needed): Take into account path names
2265         with spaces.
2266         (Check_Compilation_Needed): When checking a C or C++ source, do not
2267         resolve symbolic links.
2268         (Display_Command): New Boolean parameter Ellipse, defaulted to False.
2269         When not in verbose mode and Ellipse is True, display "..." for the
2270         first argument with Display set to False.
2271         (Build_Global_Archive): Always set Display True for the first object
2272         file. Call Display_Command with Ellipse set to True.
2273
2274 2006-10-31  Matt Heaney  <heaney@adacore.com>
2275
2276         * a-crbtgo.ads: Commented each subprogram
2277
2278         * a-crbtgo.adb: Added reference to book from which algorithms were
2279         adapted.
2280
2281         * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to
2282         indicate which child.
2283         (Generic_Conditional_Insert): changed parameter name from "Success" to
2284         "Inserted".
2285         (Generic_Unconditional_Insert_With_Hint): improved algorithm
2286
2287         * a-coorse.adb (Replace_Element): changed parameter name in call to
2288         conditional insert operation.
2289
2290         * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment
2291
2292         * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in
2293         Generic_Iteration
2294
2295         * a-ciorse.adb (Replace_Element): changed parameter name in call to
2296         conditional insert operation.
2297
2298         * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in
2299         Generic_Iteration.
2300
2301         * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in
2302         instead of mode inout.
2303
2304         * a-chtgop.adb (Adjust): modified comments to reflect current AI-302
2305         draft
2306         (Generic_Read): preserve existing buckets array if possible
2307         (Generic_Write): don't send buckets array length anymore
2308
2309         * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in
2310         instead of mode inout.
2311
2312         * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets
2313         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2314
2315         * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets
2316         (Iterate): manipulate busy-bit here, instead of in Generic_Iteration
2317         (Replace_Element): local operation is now an instantiation
2318
2319         * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually
2320         check current length.
2321         (Generic_Replace_Element): new operation
2322
2323 2006-10-31  Doug Rupp  <rupp@adacore.com>
2324
2325         * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
2326         Call TBK$SYMBOLIZE without omitting parameters.
2327
2328 2006-10-31  Vincent Celier  <celier@adacore.com>
2329
2330         * symbols-processing-vms-ia64.adb,
2331         symbols-processing-vms-alpha.adb (Process): Do not include symbols
2332         that come from generic instantiations in bodies.
2333
2334 2006-10-31  Pat Rogers  <rogers@adacore.com>
2335
2336         * a-rttiev.ads, a-rttiev.adb: 
2337         This is a significant redesign primarily for the sake of automatic
2338         timer task termination but also to fix a design flaw.
2339         Therefore we are now using an RTS lock, instead of a protected
2340         object, to provide mutual exclusion to the queue of pending events
2341         and the type Timing_Event is no longer a protected type.
2342
2343 2006-10-31  Robert Dewar  <dewar@adacore.com>
2344             Cyrille Comar  <comar@adacore.com>
2345             Ben Brosgol  <brosgol@adacore.com>
2346
2347         * debug.adb:  Update flags documentation
2348
2349         * gnat_ugn.texi: Add documentation for new -gnatwq switch
2350         Clean up documentation for several other warning switches
2351         Clarify how task stack size can be specified with various
2352         versions of Windows.
2353         Add note that -gnatVo includes ranges including loops
2354         Add documentation for -gnatL switch
2355         Add note on elaboration warning for initializing variables
2356         Add documentation for new -gnatwt warning switch
2357         Document new form of pragma Warnings (On|Off, string)
2358         Add comment on use of pragma Warnings to control warnings
2359         Add documentation for -gnatjnn switch
2360         Modify section on interfacing with C for VMS 64-bit.
2361         Add doc for -gnatVe/E
2362         Add documentation of new warning flags -gnatww/-gnatwW
2363         Add warnings about address clause overlays to list of warnings
2364         (Exception Handling Control): Document that the option --RTS must be
2365         used consistently for gcc and gnatbind.
2366         Clarify that inlining is not always possible
2367         Update documentation on pragma Unchecked_Union.
2368
2369         * gnat_rm.texi: 
2370         Add documentation for new extended version of pragma Obsolescent
2371         Add documentation for implementation defined attribute 'Stub_Type.
2372         Add note on use of Volatile in asm statements
2373         Add documentation on use of pragma Unreferenced in context clause
2374         Document new form of pragma Warnings (On|Off, pattern)
2375         Document pragma Wide_Character_Encoding
2376         Add note that pragma Restrictions (No_Elaboration_Code) is only fully
2377         enforced if code generation is active.
2378         Add section on pragma Suppress to document GNAT specific check
2379         Alignment_Check
2380         Clarify difference between No_Dispatching_Calls & No_Dispatch.
2381         Add documentation for pragma Restrictions (No_Elaboration_Code)
2382
2383         * gnat-style.texi: 
2384         Add comments on layout of subprogram local variables in the
2385         presence of nested subprograms.
2386
2387         * ug_words: Resync.
2388
2389         * elists.ads: Minor reformatting
2390         Node returns Node_Or_Entity_Id (doc change only)
2391
2392         * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION
2393
2394         * g-arrspl.ads (Create): Update comments.
2395
2396         * sem.ads: Add details on the handling of the scope stack.
2397
2398         * usage.adb: Update documentation.
2399
2400         * validsw.ads, validsw.adb: 
2401         Add definition of Validity_Check_Components and implement -gnatVe/E
2402
2403         * vms_data.ads: Add missing VMS qualifiers.
2404
2405         * s-addope.ads: Add documentation on overflow and divide by zero
2406
2407 2006-10-31  Robert Dewar  <dewar@adacore.com>
2408             Thomas Quinot  <quinot@adacore.com>
2409             Arnaud Charlet  <charlet@adacore.com>
2410
2411         * fmap.adb: Put routines in alpha order
2412
2413         * g-boumai.ads: Remove redundant 'in' keywords
2414
2415         * g-cgi.adb: Minor reformatting
2416
2417         * g-cgi.ads: Remove redundant 'in' keywords
2418
2419         * get_targ.adb: Put routines in alpha order
2420
2421         * prj-attr.ads: Minor reformatting
2422
2423         * s-atacco.ads: Minor reformatting
2424
2425         * scn.adb: Put routines in alpha order
2426
2427         * sinput-l.adb: Minor comment fix
2428
2429         * sinput-p.adb: Minor comment fix
2430
2431         * s-maccod.ads: Minor reformatting
2432
2433         * s-memory.adb: Minor reformatting
2434
2435         * s-htable.adb: Fix typo in comment.
2436
2437         * s-secsta.adb: Minor comment update.
2438
2439         * s-soflin.adb: Minor reformatting
2440
2441         * s-stoele.ads: 
2442         Add comment about odd qualification in Storage_Offset declaration
2443
2444         * s-strxdr.adb: 
2445         Remove unnecessary 'in' keywords for formal parameters.
2446
2447         * treeprs.adt: Minor reformatting
2448
2449         * urealp.adb: Put routines in alpha order
2450
2451         * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version
2452         taking string.
2453
2454         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2455
2456         * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords
2457
2458         * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so
2459         workaround as on other platforms.
2460
2461         * g-eacodu-vms.adb: Remove redundant 'in' keywords
2462         * g-expect-vms.adb: Remove redundant 'in' keywords
2463
2464         * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a
2465         clear error message if the list-of-files file cannot be opened.
2466
2467         * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the
2468         equality operator is always visible.
2469
2470         * lang.opt: Woverlength-strings: New option.
2471
2472         * nmake.adt: 
2473         Update copyright, since nmake.ads and nmake.adb have changed.
2474
2475         * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function .
2476         (Binder_Output_Time_Stamps_Set): removed.
2477         (Old_Binder_Output_Time_Stamp): idem.
2478         (New_Binder_Output_Time_Stamp): idem.
2479         (Recording_Time_From_Last_Bind): idem.
2480         (Recording_Time_From_Last_Bind): Make constant.
2481
2482         * output.ads, output.adb (Write_Str): Allow LF characters
2483         (Write_Spaces): New procedure
2484
2485         * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100%
2486
2487         * inline.adb: Minor reformatting
2488
2489         * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords
2490
2491         * s-mastop-vms.adb: Remove redundant 'in' keywords
2492
2493         * s-osprim-vms.adb: Remove redundant 'in' keywords
2494
2495         * s-trafor-default.adb: Remove redundant 'in' keywords
2496
2497         * 9drpc.adb: Remove redundant 'in' keywords
2498
2499         * s-osinte-mingw.ads: Minor reformatting
2500
2501         * s-inmaop-posix.adb: Minor reformatting
2502
2503         * a-direio.ads: Remove quotes from Compile_Time_Warning message
2504
2505         * a-exexda.adb: Minor code reorganization
2506
2507         * a-filico.adb: Minor reformatting
2508
2509         * a-finali.adb: Minor reformatting
2510
2511         * a-nudira.ads: Remove quote from Compile_Time_Warning message
2512
2513         * a-numeri.ads: Minor reformatting
2514
2515         * a-sequio.ads: Remove quotes from Compile_Time_Warning message
2516
2517         * exp_pakd.ads: Fix obsolete comment
2518
2519         * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb,
2520         a-wtenio.adb (Put): Avoid assuming low bound of string is 1.
2521         Probably not a bug, but certainly neater and more efficient.
2522
2523         * a-tienio.adb: Minor reformatting
2524
2525         * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start
2526         Avoid assuming low bound of string is 1.
2527
2528         * gnatbind.adb: Change Bindusg to package and rename procedure as
2529         Display, which now ensures that it only outputs usage information once.
2530         (Scan_Bind_Arg): Avoid assuming low bound of string is 1.
2531
2532         * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by
2533         Table'First.
2534
2535         * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill
2536         warning.
2537         (Match): Add pragma Assert to ensure that Matches'First is zero
2538
2539         * g-regpat.ads (Match): Document that Matches lower bound must be zero
2540
2541         * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check
2542         documented preconditions (also kills warnings about bad indexes).
2543
2544         * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First
2545         is 1.
2546         (Build_Import_Library): Ditto;
2547
2548         * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1
2549
2550         * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1.
2551
2552         * sem_case.adb (Analyze_Choices): Add pragma Assert to check that
2553         lower bound of choice table is 1.
2554
2555         * sem_case.ads (Analyze_Choices): Document that lower bound of
2556         Choice_Table is 1.
2557
2558         * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of
2559         string is 1.
2560
2561         * uintp.adb (Init_Operand): Document that low bound of Vec is always 1,
2562         and add appropriate Assert pragma to suppress warnings.
2563
2564         * atree.h, atree.ads, atree.adb
2565         Change Elist24 to Elist25
2566         Add definitions of Field28 and Node28
2567         (Traverse_Field): Use new syntactic parent table in sinfo.
2568
2569         * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2570
2571         * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only
2572
2573         * exp_tss.adb: Put routines in alpha order
2574
2575         * fe.h: Remove redundant declarations.
2576
2577 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
2578         * utils.c (builtin_function): Rename to gnat_builtin_function.
2579         Move common code to add_builtin_function.
2580         * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
2581         gnat_builtin_function.
2582         * gigi.h (builtin_function): Rename to gnat_builtin_function.
2583         Change the signature.
2584
2585 2006-10-16  Brooks Moses  <bmoses@stanford.edu>
2586
2587         * Makefile.in: Add TEXI2PDF definition.
2588         * Make-lang.in: Add "ada.pdf" target.
2589
2590 2006-10-03  Kazu Hirata  <kazu@codesourcery.com>
2591
2592         * decl.c, utils.c: Fix comment typos.
2593         * utils.c: Fix a typo.
2594
2595 2006-09-28  Eric Botcazou  <ebotcazou@adacore.com>
2596
2597         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag
2598         on "pure" Ada subprograms if SJLJ exceptions are used.
2599         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING
2600         on the declaration node of JMPBUF_SAVE.
2601         * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes
2602         of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception.
2603         * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS.
2604
2605 2006-08-20  Laurent GUERBY  <laurent@guerby.net>
2606
2607         PR ada/28716
2608         g-socket.adb (Bind_Socket): Call Set_Address.
2609
2610 2006-09-15  Eric Botcazou  <ebotcazou@adacore.com>
2611
2612         PR ada/15802
2613         * decl.c (same_discriminant_p): New static function.
2614         (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent
2615         subtype and we have discriminants, fix up the COMPONENT_REFs
2616         for the discriminants to make them reference the corresponding
2617         fields of the parent subtype after it has been built.
2618
2619 2006-09-15  Roger Sayle  <roger@eyesopen.com>
2620
2621         PR ada/18817
2622         * utils.c (max_size): Perform constant folding of (A ? B : C) - D
2623         into A ? B - D : C - D when calculating the size of a MINUS_EXPR.
2624
2625 2006-09-13  Olivier Hainque  <hainque@adacore.com>
2626
2627         PR ada/29025
2628         * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address
2629         of a SAVE_EXPR, just make the operand addressable/not-readonly and
2630         let the common gimplifier code make and propagate a temporary copy.
2631         (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable
2632         out/in-out actuals and defer setting the addressable/readonly bits
2633         to the gimplifier.
2634
2635 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2636
2637         PR ada/28591
2638         * decl.c (components_to_record): Defer emitting debug info for the
2639         record type associated with the variant until after we are sure to
2640         actually use it.
2641
2642 2006-09-13  Eric Botcazou  <ebotcazou@adacore.com>
2643
2644         PR ada/21952
2645         * gigi.h (gnat_internal_attribute_table): Declare.
2646         * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above.
2647         * utils.c (gnat_internal_attribute_table): New global variable.
2648         (builtin_function): Always call decl_attributes on the builtin.
2649         (handle_const_attribute): New static function.
2650         (handle_nothrow_attribute): Likewise.
2651
2652 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2653
2654         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2655
2656 2006-06-23  Olivier Hainque  <hainque@adacore.com>
2657
2658         * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have
2659         not been able to get a constant upper bound from TYPE_SIZE_UNIT.
2660
2661 2006-06-20  James A. Morrison  <phython@gcc.gnu.org>
2662             Eric Botcazou  <ebotcazou@adacore.com>
2663
2664         PR ada/18692
2665         * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
2666         check-gnat into check-acats.
2667
2668 2006-06-17  Karl Berry  <karl@gnu.org>
2669
2670         * gnat-style.texi (@dircategory): Use "Software development"
2671         instead of "Programming", following the Free Software Directory.
2672
2673 2006-06-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2674
2675         PR ada/27944
2676         * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
2677
2678 2006-06-06  Laurent GUERBY  <laurent@guerby.net>
2679
2680         PR ada/27769
2681         mlib-utl.adb: Use Program_Name.
2682         
2683 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2684
2685         * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c,
2686         sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c,
2687         trans.c, utils.c: Fix comment typos.  Follow spelling
2688         conventions.
2689         * gnat_rm.texi, gnat_ugn.texi, : Fix typos.  Follow spelling
2690         conventions.
2691
2692 2006-05-19  Nicolas Setton  <setton@adacore.com>
2693
2694         * misc.c (gnat_dwarf_name): New function.
2695         (LANG_HOOKS_DWARF_NAME): Define to it.
2696
2697 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2698
2699         * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H).
2700         (ada/misc.o): Likewise.
2701         (ada/utils.o): Likewise.
2702
2703 2006-04-08  Aurelien Jarno  <aurel32@debian.org>
2704
2705         * Makefile.in: Add Ada support for GNU/kFreeBSD.
2706         * s-osinte-kfreebsd-gnu.ads: New file.
2707
2708 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
2709
2710         * Make-lang.in: Rename docdir to gcc_docdir.
2711
2712 2006-03-04  Eric Botcazou  <ebotcazou@adacore.com>
2713
2714         * gigi.h (get_ada_base_type): Delete.
2715         * utils2.c (get_ada_base_type): Likewise.
2716         * trans.c (convert_with_check): Operate in the real base type.
2717
2718 2006-03-03  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2719
2720         * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
2721
2722 2006-03-02  Richard Sandiford  <richard@codesourcery.com>
2723
2724         * utils.c (create_var_decl): Use have_global_bss_p when deciding
2725         whether to make the decl common.
2726
2727 2006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com>
2728
2729         * Make-lang.in (Ada): Remove
2730         (.PHONY): Remove Ada
2731
2732 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2733
2734         * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an
2735         aggregate, check the interpretations of the other operand to find one
2736         that may be a boolean array.
2737
2738         (Analyze_Selected_Component): Fix flow-of-control typo in case where
2739         the prefix is a private extension.
2740
2741 2006-02-17  Eric Botcazou  <botcazou@adacore.com>
2742
2743         PR ada/26315
2744
2745         * utils2.c (find_common_type): If both input types are BLKmode and
2746         have the same constant size, keep using the first one.
2747
2748         * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround.
2749
2750         * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant.
2751
2752         * misc.c (gnat_handle_option): New case for -Woverlength-strings.
2753
2754 2006-02-17  Jose Ruiz  <ruiz@adacore.com>
2755
2756         * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 
2757         s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 
2758         s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 
2759         s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add
2760         Abort_Defer/Undefer pairs to avoid the possibility of a task being
2761         aborted while owning a lock.
2762
2763 2006-02-17  Javier Miranda  <miranda@adacore.com>
2764             Robert Dewar  <dewar@adacore.com>
2765
2766         * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed
2767         through an access to class-wide interface we force the displacement of
2768         the pointer to the allocated object to reference the corresponding
2769         secondary dispatch table.
2770         (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2,
2771         if Long_Shifts are supported on the target, even if 64 bit divides
2772         are not supported (configurable run time mode).
2773         (Expand_N_Type_Conversion): Do validity check if validity checks on
2774         operands are enabled.
2775         (Expand_N_Qualified_Expression): Do validity check if validity checks
2776         on operands are enabled.
2777
2778 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2779
2780         * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity
2781         must be materialized when the renamed expression is an explicit
2782         dereference.
2783
2784 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2785
2786         * freeze.adb (Statically_Discriminated_Components): Return false if
2787         the bounds of the type of the discriminant are not static expressions.
2788
2789         * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if
2790         the bounds of the discriminant type are not static.
2791
2792 2006-02-17  Robert Dewar  <dewar@adacore.com>
2793
2794         * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD,
2795         then we close To if it is valid.
2796
2797 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2798
2799         * init.c (facility_resignal_table): new array
2800         (__gnat_default_resignal_p): enhance default predicate to resignal if
2801         VMS condition has one of the predefined facility codes.
2802
2803 2006-02-17  Vasiliy Fofanov  <fofanov@adacore.com>
2804
2805         * Makefile.in: Use VMS64 specialized versions of several units in
2806         Interfaces.C hierarchy to be compatible with HP C default size choices.
2807         Use the default version of Ada.Synchronous_Task_Control for VxWorks 653.
2808
2809 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2810
2811         * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram
2812         instantiation, the corresponding entity is the related_instance of the
2813         wrapper package created for the instance.
2814
2815 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2816
2817         * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if
2818         the current instance is nested within another instance in a child unit.
2819
2820 2006-02-17  Javier Miranda  <miranda@adacore.com>
2821             Ed Schonberg  <schonberg@adacore.com>
2822
2823         * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent
2824         type we cannot inherit the primitive operations; we inherit the
2825         Corresponding_Record_Type (which has the list of primitive operations).
2826         (Check_Anonymous_Access_Types): When creating anonymous access types for
2827         access components, use Rewrite in order to preserve the tree structure,
2828         for ASIS use.
2829         (Analyze_Object_Declaration): For limited types with access
2830         discriminants with defaults initialized by an aggregate, obtain
2831         subtype from aggregate as for other mutable types.
2832         (Derived_Type_Declaration): If the derived type is a limited interface,
2833         set the corresponding flag (Is_Limited_Record is not sufficient).
2834
2835 2006-02-17  Ed Schonberg  <schonberg@adacore.com>
2836
2837         * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order
2838         to inline a function that returns an unconstrained type, the return
2839         expression must be the first variable declared in the body of the
2840         function.
2841
2842 2006-02-17  Javier Miranda  <miranda@adacore.com>
2843
2844         * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an
2845         abstract interface type, the static analysis is not enough to know if
2846         the interface is implemented or not by the source tagged type. Hence
2847         we must pass the work to the expander to generate the required code to
2848         evaluate the conversion at run-time.
2849         (Resolve_Equality_Op): Do not apply previous
2850         transformation if expansion is disasbled, to prevent anomalies when
2851         locating global references in a generic unit.
2852
2853 2006-02-17  Vincent Celier  <celier@adacore.com>
2854
2855         * snames.ads, snames.adb: New standard names for new project attributes:
2856         archive_builder, archive_indexer, compiler_pic_option,
2857         config_body_file_name, config_body_file_name_pattern,
2858         config_file_switches, config_file_unique, config_spec_file_name,
2859         config_spec_file_name_pattern, default_builder_switches,
2860         default_global_compiler_switches, default_language,
2861         dependency_file_kind, global_compiler_switches, include_path,
2862         include_path_file, language_kind, linker_executable_option,
2863         linker_lib_dir_option, linker_lib_name_option, mapping_file_switches,
2864         roots, runtime_project.
2865
2866 2006-02-17  Matthew Heaney  <heaney@adacore.com>
2867
2868         * a-convec.ads, a-convec.adb: 
2869         (operator "&"): handle potential overflow for large index types
2870         (Insert): removed Contraint_Error when using large index types
2871         (Insert_Space): removed Constraint_Error for large index types
2872         (Length): moved constraint check from Length to Insert
2873
2874         * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared
2875         as not null access.
2876         Explicit raise statements now include an exception message.
2877         (operator "&"): handle potential overflow for large index types
2878         (Insert): removed Contraint_Error when using large index types
2879         (Insert_Space): removed Constraint_Error for large index types
2880         (Length): moved constraint check from Length to Insert
2881
2882 2006-02-17  Robert Dewar  <dewar@adacore.com>
2883
2884         * s-wchcnv.adb: Document handling of [ on output (we do not change
2885         this to ["5B"] and the new comments say why not.
2886
2887         * gnat_ugn.texi: 
2888         Add note for -gnatVo that this now includes the cases of type
2889         conversions and qualified expressions.
2890         Add comments on handling of brackets encoding for Text_IO
2891
2892 2006-02-17  Ramon Fernandez  <fernandez@adacore.com>
2893             Thomas Quinot  <quinot@adacore.com>
2894             Robert Dewar  <dewar@adacore.com>
2895             Javier Miranda  <miranda@adacore.com>
2896
2897         * expander.adb: Fix typo in comment
2898
2899         * exp_pakd.adb: Fix typo
2900         Minor comment reformatting.
2901
2902         * g-dyntab.adb: Minor reformatting
2903
2904         * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of
2905         aliased subprograms to look for the abstract interface subprogram.
2906
2907 2006-02-16  Eric Botcazou  <ebotcazou@adacore.com>
2908
2909         * env.c (__gnat_setenv): Use size_t.
2910         (__gnat_unsetenv): Likewise.
2911         (__gnat_clearenv): Likewise.
2912
2913 2006-02-16  Arnaud Charlet  <charlet@adacore.com>
2914
2915         * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
2916
2917 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
2918
2919         * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads,
2920         g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads,
2921         i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb,
2922         s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb,
2923         s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb,
2924         s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb,
2925         s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb,
2926         s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads,
2927         s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed,
2928         no longer used.
2929
2930 2006-02-13  Jose Ruiz  <ruiz@adacore.com>
2931
2932         * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit
2933         protection against race conditions is not needed.
2934         (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the
2935         fallback handler.
2936         (Set_Specific_Handler): Add mutual exclusive access to the specific
2937         handler.
2938         (Specific_Handler): Add mutual exclusive access for retrieving the
2939         specific handler.
2940
2941         * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall
2942         back handler.
2943
2944         * s-taskin.ads (Common_ATCB): Remove pragma Atomic for
2945         Fall_Back_Handler and Specific_Handler.
2946
2947         * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task
2948         termination handlers.
2949         Set two different owerflow depending on the maximal stack size.
2950
2951         * s-solita.adb (Task_Termination_Handler_T): Document why explicit
2952         protection against race conditions is not needed when executing the
2953         task termination handler.
2954
2955 2006-02-13  Robert Dewar  <dewar@adacore.com>
2956
2957         * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb,
2958         a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb,
2959         a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
2960         a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb,
2961         a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb,
2962         a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads,
2963         a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads,
2964         a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb,
2965         a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads,
2966         a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
2967         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb,
2968         a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads,
2969         a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb,
2970         a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb,
2971         a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb,
2972         a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb,
2973         a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads,
2974         a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb,
2975         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads,
2976         a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb,
2977         g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb,
2978         g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb,
2979         mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb,
2980         prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb,
2981         s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb,
2982         s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads,
2983         s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb,
2984         s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb,
2985         s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads,
2986         s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb,
2987         a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb,
2988         fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb,
2989         par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb,
2990         system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor
2991         reformatting.
2992
2993 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
2994
2995         * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb,
2996         s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb,
2997         s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb,
2998         s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb,
2999         a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb,
3000         s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb,
3001         a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb,
3002         s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb,
3003         s-tataat.adb, s-tpobop.adb: Remove redundant with clauses.
3004
3005 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3006
3007         * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 
3008         s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 
3009         s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 
3010         s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 
3011         s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 
3012         s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed,
3013         replaced by anonymous access type.
3014         (pthread_sigmask): Now take an access sigset_t
3015
3016         * s-osinte-hpux.ads:  Ditto.
3017         (pthread_mutex_t, pthread_cond_t): Update definitions to support
3018         properly 32 and 64 bit ABIs.
3019
3020 2006-02-13  Pascal Obry  <obry@adacore.com>
3021
3022         * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 
3023         s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 
3024         s-taprop-linux.adb, s-taprop-solaris.adb,
3025         s-taprop-vms.adb (Create_Task): Remove task adjustment code. This
3026         adjustement is already done when calling this routine.
3027
3028 2006-02-13  Pascal Obry  <obry@adacore.com>
3029
3030         * system-mingw.ads (Underlying_Priorities): Update the priority mapping
3031         table to take advantage of the 16 priority levels available on Windows
3032         2000 and XP. On NT4 there are only 7 priority levels, this is properly
3033         supported by this new mapping.
3034
3035 2006-02-13  Nicolas Setton  <setton@adacore.com>
3036
3037         * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types.
3038         (get_encoding): New subprogram. Extracts the encodings from an encoded
3039         Ada name.
3040
3041 2006-02-13  Pascal Obry  <obry@adacore.com>
3042             Nicolas Roche  <roche@adacore.com>
3043             Arnaud Charlet  <charlet@adacore.com>
3044
3045         * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode
3046         support.
3047         (__gnat_try_lock): Add unicode support by using a specific section on
3048         Windows.
3049         (__gnat_get_current_dir): Idem.
3050         (__gnat_open_read): Idem.
3051         (__gnat_open_rw): Idem.
3052         (__gnat_open_create): Idem.
3053         (__gnat_create_output_file): Idem.
3054         (__gnat_open_append): Idem.
3055         (__gnat_open_new): Idem.
3056         (__gnat_file_time_name): Idem.
3057         (__gnat_set_file_time_name): Idem.
3058         (__gnat_stat): Idem.
3059         (win32_no_block_spawn): Idem.
3060         (__gnat_locate_exec_on_path): Idem.
3061         (__gnat_opendir): New routine.
3062         (__gnat_closedir): Idem.
3063         (__gnat_readdir): Add new parameter length (pointer to int). Update
3064         implementation to use it and add specific Win32 code for Unicode
3065         support.
3066         (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c
3067         (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c
3068         (convert_addresses): Do not define this dummy routine on VMS.
3069
3070         * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT
3071         runtime Unicode support will be activated.
3072         (S2WS): String to Wide-String conversion. This version just copy a
3073         string in non Unicode version.
3074         (WS2S): Wide-String to String conversion. This version just copy a
3075         string in non Unicode version.
3076
3077         * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c.
3078         (Open): Now import __gnat_opendir from adaint.c.
3079         (Read): Change the implementation to support unicode characters. It is
3080         not possible to use strlen() on Windows as this version supports only
3081         standard ASCII characters. So the length of the directory entry is now
3082         returned from the imported __gnat_readdir routine.
3083         Update copyright notice.
3084
3085         * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c.
3086         (opendir): Moved to adaint.c.
3087
3088         * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation.
3089         (Get_Directory): Fix wrong indexing.
3090         (Getenv): replace __gnat_get_env_value_ptr from adaint.c by
3091         __gnat_getenv from env.c
3092         (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv
3093         from env.c
3094
3095         * env.h, env.c: New file.
3096
3097         * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from
3098         adaint.c by __gnat_getenv from env.c
3099
3100         * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from
3101         adaint.c by __gnat_getenv from env.c
3102
3103         * Make-lang.in: Add env.o in the list of C object needed by gnat1
3104         and gnatbind.
3105         Update dependencies.
3106
3107 2006-02-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3108             Olivier Hainque  <hainque@adacore.com>
3109             Eric Botcazou  <ebotcazou@adacore.com>
3110
3111         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted.
3112         
3113         * gigi.h (value_factor_p): Add prototype and description, now public.
3114
3115         * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type
3116         promotion for field with rep clause if the associated size was proven
3117         to be in error.
3118         Expand comments describing attempts to use a packable type.
3119         (gnat_to_gnu_entity) <E_Signed_Integer_Subtype,
3120         E_Floating_Point_Subtype>: Inherit alias set of what we are making a
3121         subtype of to ensure conflicts amongst all subtypes in a hierarchy,
3122         necessary since these are not different types and pointers may
3123         actually designate any subtype in this hierarchy.
3124         (gnat_to_gnu_entity, case E_Record_Type): Always make fields for
3125         discriminants but put them into record only if not Unchecked_Union;
3126         pass flag to components_to_record showing Unchecked_Union.
3127         (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no
3128         components before variants; don't set TYPE_UNCHECKED_UNION_P.
3129         (components_to_record): New argument UNCHECKED_UNION.
3130         Remove special case code for Unchecked_Union and instead use main code
3131         with small changes.
3132
3133         PR ada/26096
3134         (gnat_to_gnu_entity) <E_Variable>: Do not initialize the
3135         aligning variable with the expression being built, only its inner
3136         field.
3137
3138         * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to
3139         emit_sequence_entry_statements.
3140         (emit_sequence_entry_statements, body_with_handlers_p): Delete.
3141         (establish_gnat_vms_condition_handler): Move before
3142         Subprogram_Body_to_gnu.
3143         (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler
3144         for a subprogram if it has a foreign convention or is exported.
3145         (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is
3146         substituted for a CONST_DECL.
3147         (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass
3148         Etype to assoc_to_constructor.
3149         (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore
3150         discriminants of Unchecked_Union.
3151         (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses
3152         don't need cluttering preprocessor directives.
3153         (establish_gnat_vms_condition_handler): New function. Establish the GNAT
3154         condition handler as current in the compiled function.
3155         (body_with_handlers_p): New function. Tell whether a given sequence of
3156         statements node is attached to a package or subprogram body and involves
3157         exception handlers possibly nested within inner block statements.
3158         (emit_sequence_entry_statements): New function, to emit special
3159         statements on entry of sequences when necessary. Establish GNAT
3160         condition handler in the proper cases for VMS.
3161         (Handled_Sequence_Of_Statements_to_gnu): Start block code with
3162         emit_sequence_entry_statements.
3163
3164         * utils2.c (find_common_type): If both input types are BLKmode and
3165         have a constant size, use the smaller one.
3166         (build_simple_component_ref): Also match if FIELD and NEW_FIELD are
3167         the same.
3168
3169         * utils.c (value_factor_p): Make public, to allow uses from other gigi
3170         units.
3171         (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types.
3172         (convert, case UNION_TYPE): Remove special treatment for unchecked
3173         unions.
3174
3175         PR ada/18659
3176         (update_pointer_to): Update variants of pointer types to
3177         unconstrained arrays by attaching the list of fields of the main
3178         variant.
3179
3180 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3181             Robert Dewar  <dewar@adacore.com>
3182
3183         * a-exexpr.adb, a-exexpr-gcc.adb
3184         (Process_Raise_Exception): Removed, merged with Propagate_Exception.
3185         (Propagate_Exception): Now take extra From_Signal_Handler parameter.
3186         Remove code unused for exception propagation for the compiler itself
3187         from a-except.adb and update to still share separate packages.
3188
3189         * a-except.ads, a-except.adb: Ditto.
3190         Add comments that this version is now used only by the compiler and
3191         other basic tools. The full version that includes the Ada 2005 stuff
3192         is in separate files a-except-2005.ads/adb. The reason is that we do
3193         not want to cause bootstrap problems with compilers not recognizing
3194         Wide_Wide_String.
3195         Add exception reason code PE_Implicit_Return
3196         Add new exception reason code (Null Exception_Id)
3197
3198         * a-except-2005.adb, a-except-2005.ads: New files.
3199
3200         * s-wchcon.ads: (Get_WC_Encoding_Method): New function.
3201
3202         * s-wchcon.adb: New file.
3203
3204         * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c.
3205         (traceback.o deps): Likewise.
3206         (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris.
3207         Activate build of GMEM instrumentation library on VMS targets.
3208         (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib.
3209         Use a-except-2005.ads/adb for all run-time library builds unless
3210         specified otherwise.
3211         [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to
3212         s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads.
3213         Use s-parame.adb on all native platforms.
3214         Use s-parame-vxworks.adb on all vxworks platforms.
3215         Add env.c env.h in LIBGNAT_SRCS
3216         Add env.o in LIBGNAT_OBJS
3217         (GNATMAKE_OBJS): Remove ctrl_c.o object.
3218         (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of
3219         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
3220         supports VxWorks 6 RTPs.
3221         (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of
3222         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
3223
3224         * types.h, types.ads (Terminate_Program): New exception
3225         Add comment on modifying multiple versions of a-except.adb when the
3226         table of exception reasons is modified.
3227         Add exception reason code PE_Implicit_Return
3228         Add new exception reason code (Null Exception_Id)
3229
3230         * clean.adb (Initialize): Get the target parameters before checking
3231         if target is OpenVMS. Move the OpenVMS specific code here from package
3232         body elaboration code.
3233
3234 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3235             Vincent Celier  <celier@adacore.com>
3236             Robert Dewar  <dewar@adacore.com>
3237
3238         * ali-util.adb (Get_File_Checksum): Update to account for change in
3239         profile of Initialize_Scanner.
3240
3241         * gprep.adb (Gnatprep): Update to account for change in profile of
3242         Initialize_Scanner.
3243         (Process_One_File): Same.
3244
3245         * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the
3246         common code between Get_Code_Unit and Get_Source_Unit. Reimplement
3247         that behaviour using the new Unit information recorded in the source
3248         files table, rather than going through all units every time.
3249         (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit.
3250         (Get_Source_Unit): Same.
3251
3252         * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for
3253         change in profile of Initialize_Scanner.
3254         (Prepare_To_Preprocess): Same.
3255
3256         * lib.ads: Fix typo in comment (templace -> template).
3257
3258         * prj-part.adb (Parse_Single_Project): Update to account for change in
3259         profile of Initialize_Scanner.
3260
3261         * scn.adb (Initialize_Scanner): Account for change in profile of
3262         Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng.
3263         Also record the association of the given Source_File_Index to the
3264         corresponding Unit_Number_Type.
3265
3266         * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove
3267         procedure.
3268         (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords.
3269         Remove Unit formal for generic scanner: this formal
3270         is only relevant to Scn (the scanner instance used to parse Ada source
3271         files), not to other instances. Update comment accordingly.
3272         (Scan): Use new function Snames.Is_Keyword_Name.
3273
3274         * sinfo-cn.adb: Fix typo in comment.
3275
3276         * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute
3277         Unit.
3278
3279         * sinput.ads (Source_File_Record): New component Unit, used to capture
3280         the unit identifier (if any) associated to a source file.
3281
3282         * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component
3283         Unit in Source_File_Record.
3284
3285         * sinput-p.adb (Source_File_Is_Subunit): Update to account for change
3286         in profile of Initialize_Scanner.
3287
3288         * scans.adb (Initialize_Ada_Keywords): New procedure
3289
3290         * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the
3291         Ada keywords in the Namet table, without the need to call
3292         Initialize_Scanner.
3293
3294         * snames.adb: Add pragma Ada_2005 (synonym for Ada_05)
3295         (Is_Keyword_Name): New function
3296
3297         * snames.ads: Add subtype Configuration_Pragma_Names
3298         Add pragma Ada_2005 (synonym for Ada_05)
3299         (Is_Keyword_Name): New function
3300
3301         * snames.h: Add pragma Ada_2005 (synonym for Ada_05)
3302
3303 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3304
3305         * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice
3306         index.
3307
3308         * a-stwima.adb (To_Set): Add extra check when N = 0.
3309
3310         * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow.
3311
3312 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3313
3314         * s-parame-mingw.adb, s-parame-linux.adb,
3315         s-parame-solaris.adb: Removed, replaced by s-parame.adb
3316
3317         * s-parame-vxworks.ads: Fix typo.
3318
3319         * s-parame-vxworks.adb: New file.
3320
3321         * s-parame.adb: Version now used by all native platforms.
3322         (Default_Stack_Size): Use 2 megs for default stack size and use
3323         __gl_default_stack_size when available.
3324         (Minimum_Stack_Size): Use 12K.
3325
3326         * s-taprop-mingw.adb: Set default stack size linker switch to 2megs.
3327         (Create_Task): Refine implementation taking advantage of the XP stack
3328         size support. On XP, we now create the thread using the flag
3329         STACK_SIZE_PARAM_IS_A_RESERVATION.
3330
3331         * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant.
3332
3333         * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows
3334         XP and 0 on older Windows versions.
3335
3336         * interfac-vms.ads: Removed, no longer used.
3337
3338 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3339
3340         * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 
3341         a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 
3342         a-cohase.adb: All explicit raise statements now include an exception
3343         message.
3344
3345         * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb
3346         (Update_Element_Preserving_Key): renamed op to just Update_Element.
3347         Explicit raise statements now include an exception message
3348
3349         * a-cihase.ads, a-cohase.ads: Removed comment.
3350
3351         * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb,
3352         a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads,
3353         a-szbzha.adb, a-szfzha.ads: New files.
3354
3355 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3356
3357         * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
3358         quicksort.
3359
3360 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3361
3362         * lang.opt: Wvariadic-macros: New option.
3363         Wold-style-definition: Likewise.
3364         Wmissing-format-attribute: Likewise.
3365
3366         * misc.c (gnat_handle_option): New cases for -Wvariadic-macros,
3367         -Wold-style-definition and -Wmissing-format-attribute.
3368
3369 2006-02-13  Robert Dewar  <dewar@adacore.com>
3370
3371         * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec)
3372
3373         * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files.
3374
3375 2006-02-13  Nicolas Roche  <roche@adacore.com>
3376
3377         * a-envvar.adb, a-envvar.ads: New files.
3378
3379 2006-02-13  Douglas Rupp  <rupp@adacore.com>
3380
3381         * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads
3382
3383         * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files.
3384
3385 2006-02-13  Pat Rogers  <rogers@adacore.com>
3386
3387         * a-rttiev.adb, a-rttiev.ads: New files.
3388
3389 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
3390
3391         * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb,
3392         a-wwboio.ads, a-zzboio.adb, a-zzboio.ads:  New files.
3393
3394         * impunit.adb, Makefile.rtl: Added new Ada 2005 units.
3395
3396 2006-02-13  Robert Dewar  <dewar@adacore.com>
3397
3398         * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 
3399         sem_case.adb: Minor code reorganization (not Present should be No)
3400
3401 2006-02-13  Geert Bosch  <bosch@adacore.com>
3402             Gary Dismukes  <dismukes@adacore.com>
3403
3404         * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of
3405         0, since the lower bound of the actual string may be greater than one.
3406
3407         PR ada/20753
3408
3409         (Put): Fix condition to raise Layout_Error when invalid
3410         layout is requested.
3411
3412 2006-02-13  Vincent Celier  <celier@adacore.com>
3413
3414         * back_end.adb (Scan_Compiler_Arguments): Check if
3415         Search_Directory_Present is True and, if it is, add the argument in
3416         the source search directory path.
3417
3418         * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set
3419         Search_Directory_Present to True.
3420
3421 2006-02-13  Joel Brobecker  <brobecke@adacore.com>
3422
3423         * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as
3424         volatile, to tell the compiler to preserve this variable at any level
3425         of optimization.
3426         (Gen_Versions_Ada): Temporarily work around codegen bug.
3427
3428 2006-02-13  Vincent Celier  <celier@adacore.com>
3429
3430         * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke
3431         gcc to link with option -shared-libgcc.
3432         (Gnatlink): Remove duplicate switches -shared-libgcc
3433
3434 2006-02-13  Robert Dewar  <dewar@adacore.com>
3435
3436         * gnatvsn.ads (Current_Year): New constant, used to easily update
3437         copyright on all GNAT tools.
3438
3439         * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed
3440         copyright notice.
3441
3442 2006-02-13  Robert Dewar  <dewar@adacore.com>
3443
3444         * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space
3445         after hyphen (small aesthetic change useful for a range of numbers
3446         using ^-^.
3447         Suppress range checks for a couple of assignments which otherwise
3448         cause validity checks with validity checking turned on.
3449
3450         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size):
3451         Improvement in error message for object.
3452         (Rep_Item_Too_Late): Remove '!' in warning message.
3453
3454 2006-02-13  Robert Dewar  <dewar@adacore.com>
3455             Eric Botcazou  <ebotcazou@adacore.com>
3456
3457         * err_vars.ads: Suppress range checks for a couple of assignments
3458         which otherwise cause validity checks with validity checking turned on.
3459         Update comments.
3460
3461         * errout.adb (Error_Msg_Internal): Do not suppress warning messages.
3462         Make message unconditional if it is a warning.
3463         (Error_Msg_NEL): Always output warning messages.
3464         Suppress range checks for a couple of assignments which otherwise
3465         cause validity checks with validity checking turned on.
3466
3467         * errout.ads (Message Insertion Characters): Document that '!' is
3468         implied by '?' in error messages.
3469
3470         * gnat1drv.adb: (Bad_Body): Remove '!' in warning message.
3471         (Gnat1drv): Use a goto to end of main subprogram instead of
3472         Exit_Program (E_Success) so that finalization can occur normally.
3473
3474 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
3475
3476         * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
3477         wrapped around.
3478
3479 2006-02-13  Vincent Celier  <celier@adacore.com>
3480
3481         * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New
3482         Unchecked_Conversion functions.
3483         (Modification_Time): Use direct conversion of OS_Time to Calendar time
3484         when OpenVMS returns False.
3485
3486         * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads,
3487         a-dirval.adb (OpenVMS): New Boolean function
3488
3489 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3490             Thomas Quinot  <quinot@adacore.com>
3491
3492         * checks.adb (Build_Discriminant_Checks): If the expression being
3493         checks is an aggregate retrieve the values of its discriminants to
3494         generate the check, rather than creating a temporary and a reference
3495         to it.
3496         (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag
3497         (Install_Null_Excluding_Check): Ditto
3498         (Selected_Length_Checks): Build actual subtype for the original Ck_Node,
3499         not for the renamed object, so that the actual itype is attached in the
3500         proper context.
3501
3502 2006-02-13  Robert Dewar  <dewar@adacore.com>
3503             Vincent Celier  <celier@adacore.com>
3504
3505         * debug.adb: Eliminate numeric switches for binder/gnatmake
3506
3507         * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug
3508         switches for the compiler.
3509         (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake
3510         (Scan_Make_Switches): When failing with an illegal switch, output an
3511         error message with the full switch.
3512         Eliminate numeric switches for binder/gnatmake
3513
3514         * switch.ads, switch.adb (Bad_Switch): New procedure
3515
3516         * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches.
3517         Remove 0-9 as debug flag character possibilities
3518         -d is now controlling the primary stack size when its value is a
3519         positive. Also add checks against invalid values, and support for kb,
3520         mb. Ditto for -D switch.
3521
3522 2006-02-13  Robert Dewar  <dewar@adacore.com>
3523             Serguei Rybin  <rybin@adacore.com>
3524
3525         * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with
3526         save/restore routines.
3527         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3528         were not always properly handled previously.
3529         Since we are changing the tree format anyway, also get rid of the
3530         junk obsolete Immediate_Errors flag.
3531         (Tree_Read): Change the way of reading Tree_Version_String - now we
3532         read the version string from the tree even if its length is not the
3533         same as the length of the version string computed from Gnatvsn.
3534         (Search_Directory_Present): New Boolean flag for the compiler.
3535         Define Tree_Version_String as a dynamic string.
3536         (Default_Stack_Size): new variable, used to handle switch -d.
3537
3538         * par-prag.adb: 
3539         For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit
3540         only for main unit.
3541         Add pragma Ada_2005 (synonym for Ada_05)
3542         Properly handle Ada_Version_Explicit and Ada_Version_Config, which
3543         were not always properly handled previously.
3544
3545         * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change
3546         explicit Ada_95 to Ada_2005.
3547
3548 2006-02-13  Javier Miranda  <miranda@adacore.com>
3549             Robert Dewar  <dewar@adacore.com>
3550             Ed Schonberg  <schonberg@adacore.com>
3551
3552         * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend
3553         against errors in the source program: a private types for which the
3554         corresponding full type declaration is missing and pragma CPP_Virtual
3555         is used.
3556         (Is_Unchecked_Union): Check flag on Implementation_Base_Type.
3557         (Is_Known_Null): New flag
3558         (Has_Pragma_Pure): New flag
3559         (No_Return): Present in all entities, set only for procedures
3560         (Is_Limited_Type): A type whose ancestor is an interface is limited if
3561         explicitly declared limited.
3562         (DT_Offset_To_Top_Func): New attribute that is present in E_Component
3563         entities. Only used for component marked Is_Tag. If present it stores
3564         the Offset_To_Top function used to provide this value in tagged types
3565         whose ancestor has discriminants.
3566
3567         * exp_ch2.adb: Update status of new Is_Known_Null flag
3568
3569         * sem_ch7.adb: Maintain status of new Is_Known_Null flag
3570
3571         * sem_cat.adb (Get_Categorization): Don't treat function as Pure in
3572         the categorization sense if Is_Pure was set by pragma Pure_Function.
3573
3574 2006-02-13  Quentin Ochem  <ochem@adacore.com>
3575             Olivier Hainque  <hainque@adacore.com>
3576
3577         * bindusg.adb: Updated documentation for -d and -D switches.
3578
3579         * raise.h (__gnat_set_globals): added new parameter for
3580         Default_Stack_Size.
3581
3582         * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement.
3583         (__gnat_handle_vms_condition): Adjust context before raise.
3584         (__gnat_install_handler): Restore the global vector setup for GCC
3585         versions before 3.4, as the frame based circtuitry is not available
3586         in this case.
3587         (__gnat_set_globals): added a parameter default_stack_size
3588         (__gl_default_stack_size): new variable.
3589
3590 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3591
3592         * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable
3593         "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept
3594         does not exist in the Ada RM.
3595         (Compatible_Int_Bounds): Determine whether two integer range bounds
3596         are of equal length and have the same start and end values.
3597         (Is_Int_Range_Bounds): Determine whether a node is an integer range.
3598         (Build_Record_Aggr_Code): Perform proper sliding of a nested array
3599         aggregate when it is part of an object declaration.
3600         (Build_Record_Aggr_Code)  If the aggregate ttype is a derived type that
3601         constrains discriminants of its parent, add explicitly the discriminant
3602         constraints of the ancestor by retrieving them from the
3603         stored_constraint of the parent.
3604
3605 2006-02-13  Robert Dewar  <dewar@adacore.com>
3606
3607         * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If
3608         attribute Mechanism_Code is applied to renamed subprogram, modify
3609         prefix to point to base subprogram.
3610         Max/Min attributes now violate Restriction No_Implicit_Conditionals
3611
3612         * sinfo.ads: Document that Mechanism_Code cannot be applied to
3613         renamed subprograms so that the front-end must replace the prefix
3614         appropriately.
3615
3616 2006-02-13  Javier Miranda  <miranda@adacore.com>
3617             Gary Dismukes  <dismukes@adacore.com>
3618
3619         * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for
3620         availability of RE_Interface_Tag.
3621         (Build_Initialization_Call): Fix wrong access to the discriminant value.
3622         (Freeze_Record_Type): Do not generate the tables associated with
3623         timed and conditional dispatching calls through synchronized
3624         interfaces if compiling under No_Dispatching_Calls restriction.
3625         When compiling for Ada 2005, for a nonabstract
3626         type with a null extension, call Make_Controlling_Function_Wrappers
3627         and insert the wrapper function declarations and bodies (the latter
3628         being appended as freeze actions).
3629         (Predefined_Primitive_Bodies): Do not generate the bodies of the
3630         predefined primitives associated with timed and conditional
3631         dispatching calls through synchronized interfaces if we are
3632         compiling under No_Dispatching_Calls.
3633         (Build_Init_Procedure):  Use RTE_Available to check if a run-time
3634         service is available before generating a call.
3635         (Make_Controlling_Function_Wrappers): New procedure.
3636         (Expand_N_Full_Type_Declaration): Create a class-wide master for
3637         access-to-limited-interfaces because they can be used to reference
3638         tasks that implement such limited interface.
3639         (Build_Offset_To_Top_Functions): Build the tree corresponding to the
3640         procedure spec and body of the Offset_To_Top function that is generated
3641         when the parent of a type with discriminants has secondary dispatch
3642         tables.
3643         (Init_Secondary_Tags): Handle the case in which the parent of the type
3644         containing secondary dispatch tables has discriminants to generate the
3645         correct arguments to call Set_Offset_To_Top.
3646         (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions.
3647
3648         * a-tags.ads, a-tags.adb: (Check_Index): Removed.
3649         Add Wide_[Wide_]Expanded_Name.
3650         (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly
3651         the same functionality of Get_Prim_Op_Address but applied to predefined
3652         primitive operations because the pointers to the predefined primitives
3653         are now saved in a separate table.
3654         (Parent_Size): Modified to get access to the separate table of primitive
3655         operations or the parent type.
3656         (Set_Predefined_Prim_Op_Address): New subprogram that provides the same
3657         functionality of Set_Prim_Op_Address but applied to predefined primitive
3658         operations.
3659         (Set_Signature): New subprogram used to store the signature of a DT.
3660         (Displace): If the Offset_To_Top value is not static then call the
3661         function generated by the expander to get such value; otherwise use
3662         the value stored in the table of interfaces.
3663         (Offset_To_Top): The type of the actual has been changed to Address to
3664         give the correct support to tagged types with discriminants. In this
3665         case this value is stored just immediately after the tag field.
3666         (Set_Offset_To_Top): Two new formals have been added to indicate if the
3667         offset_to_top value is static and hence pass this value to the run-time
3668         to store it in the table of interfaces, or else if this value is dynamic
3669         and then pass to the run-time the address of a function that is
3670         generated by the expander to provide this value for each object of the
3671         type.
3672
3673         * rtsfind.ads (Default_Prin_Op_Count): Removed.
3674         (Default_Prim_Op_Count): New entity
3675         (Get_Predefined_Prim_Op_Address): New entity
3676         (Set_Predefined_Prim_Op_Address): New entity
3677         (RE_Set_Signature): New entity
3678
3679 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3680             Ed Schonberg  <schonberg@adacore.com>
3681
3682         * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to
3683         Make_Adjust_Call done for a newly-allocated object.
3684
3685         * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements
3686         in a subprogram are wrapped in a cleanup block, indicate that the
3687         subprogram contains an inner block with an exception handler.
3688         (Make_Adjust_Call): New Boolean formal Allocator indicating whether the
3689         Adjust call is for a newly-allocated object. In that case we must not
3690         assume that the finalization list chain pointers are correct (since they
3691         come from a bit-for-bit copy of the original object's pointers) so if
3692         the attach level would otherwise be zero (no change), we set it to 4
3693         instead to cause the pointers to be reset to null.
3694
3695         * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning
3696         reset chain pointers to null.
3697
3698 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3699
3700         * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a
3701         string, and the context requires a loop for the assignment (e.g.
3702         because the left-hand side is packed), generate a unique name for the
3703         temporary that holds the string, to prevent spurious name clashes.
3704
3705 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3706             Javier Miranda  <miranda@adacore.com>
3707             Robert Dewar  <dewar@adacore.com>
3708             Gary Dismukes  <dismukes@adacore.com>
3709
3710         * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that
3711         return unconstrained arrays.
3712         Update comments.
3713         (Expand_Call):  An indirect call through an access parameter of a
3714         protected operation is not a protected call.
3715         Add circuit to raise CE in Ada 2005 mode following call
3716         to Raise_Exception.
3717         (Register_DT_Entry): Do nothing if
3718         the run-time does not give support to abstract interfaces.
3719         (Freeze_Subprogram): In case of dispatching operations, do not generate
3720         code to register the operation in the dispatch table if the source
3721         is compiled with No_Dispatching_Calls.
3722         (Register_Predefined_DT_Entry): Generate code that calls the new
3723         run-time subprogram Set_Predefined_Prim_Op_Address instead of
3724         Set_Prim_Op_Address.
3725
3726         * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks
3727         on array assignments if the right-hand side is a function call that has
3728         been inlined. Check is performed on the assignment in the block.
3729         (Process_Bounds): If bounds and range are overloaded, apply preference
3730         rule for root operations to disambiguate, and diagnose true ambiguity.
3731         (Analyze_Assignment): Propagate the tag for a class-wide assignment with
3732         a tag-indeterminate right-hand side even when Expander_Active is True.
3733         Needed to ensure that dispatching calls to T'Input are allowed and
3734         get the tag of the target class-wide object.
3735
3736         * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override
3737         an inherited primitive operation that already overrides several
3738         abstract interface primitives. For transitivity, the new entity must
3739         also override all the abstract interface primitives covered by the
3740         inherited overriden primitive.
3741         Emit warning if new entity differs from homograph in same scope only in
3742         that one has an access parameter and the other one has a parameter of
3743         a general access type with the same designated type, at the same
3744         position in the signature.
3745         (Make_Inequality_Operator): Use source locations of parameters and
3746         subtype marks from corresponding equality operator when creating the
3747         tree structure for the implicit declaration of "/=". This does not
3748         change anything in behaviour except that the decoration of the
3749         components of the subtree created for "/=" allows ASIS to get the
3750         string images of the corresponding identifiers.
3751         (Analyze_Return_Statement): Remove '!' in warning message.
3752         (Check_Statement_Sequence): Likewise.
3753         (Analyze_Subprogram_Body): For an access parameter whose designated type
3754         is an incomplete type imported through a limited_with clause, use the
3755         type of the corresponding formal in the body.
3756         (Check_Returns): Implicit return in No_Return procedure now raises
3757         Program_Error with a compile time warning, instead of beging illegal.
3758         (Has_Single_Return):  Function returning unconstrained type cannot be
3759         inlined if expression in unique return statement is not an identifier.
3760         (Build_Body_To_Inline): It is possible to inline a function call that
3761         returns an unconstrained type if all return statements in the function
3762         return the same local variable. Subsidiary procedure Has_Single_Return
3763         verifies that the body conforms to this restriction.
3764
3765         * sem_res.adb (Resolve_Equality_Op): If the operands do not have the
3766         same type, and  one of them is of an anonymous access type, convert
3767         the other operand to it, so that this is a valid binary operation for
3768         gigi.
3769         (Resolve_Type_Conversion): Handle subtypes of protected types and
3770         task types when accessing to the corresponding record type.
3771         (Resolve_Allocator): Add '\' in 2-line warning message.
3772         Remove '!' in warning message.
3773         (Resolve_Call): Add '\' in 2-line warning message.
3774         (Valid_Conversion): Likewise.
3775         (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the
3776         resulting type may be an access type with an implicit dereference.
3777         Obtain the proper component from the designated type.
3778         (Make_Call_Into_Operator): Handle properly a call to predefined equality
3779         given by an expanded name with prefix Standard, when the operands are
3780         of an anonymous access type.
3781         (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_
3782         Explicit_Dereference and Resolve_Selected_Component, to verify that the
3783         prefix of the expression is not of an incomplete type. Allows full
3784         diagnoses of all semantic errors.
3785         (Resolve_Actuals): If the actual is an allocator whose directly
3786         designated type is a class-wide interface we build an anonymous
3787         access type to use it as the type of the allocator. Later, when
3788         the subprogram call is expanded, if the interface has a secondary
3789         dispatch table the expander will add a type conversion to force
3790         the displacement of the pointer.
3791         (Resolve_Call): If a function that returns an unconstrained type is
3792         marked Inlined_Always and inlined, the call will be inlined and does
3793         not require the creation of a transient scope.
3794         (Check_Direct_Boolean_Op): Removed
3795         (Resolve_Comparison_Op): Remove call to above
3796         (Resolve_Equality_Op): Remove call to above
3797         (Resolve_Logical_Op): Inline above, since this is only call.
3798         (Valid_Conversion): Handle properly conversions between arrays of
3799         convertible anonymous access types.
3800
3801         PR ada/25885
3802
3803         (Set_Literal_String_Subtype): If the lower bound is not static, wrap
3804         the literal in an unchecked conversion, because GCC 4.x needs a static
3805         value for a string bound.
3806
3807 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3808             Hristian Kirtchev  <kirtchev@adacore.com>
3809
3810         * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the
3811         components of the corresponding record, take into account component
3812         definitions that are access definitions.
3813         (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a
3814         procedure is not considered a dispatching call and will be expanded
3815         properly.
3816
3817 2006-02-13  Javier Miranda  <miranda@adacore.com>
3818
3819         * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the
3820         controlling argument of the dispatching call is an abstract interface
3821         class-wide type then we use it directly.
3822         Check No_Dispatching_Calls restriction.
3823         (Default_Prim_Op_Position): Remove the code that looks for the last
3824         entity in the list of aliased subprograms. This code was wrong in
3825         case of renamings.
3826         (Fill_DT_Entry): Add assertion to avoid the use of this subprogram
3827         when the source is compiled with the No_Dispatching_Calls restriction.
3828         (Init_Predefined_Interface_Primitives): No need to inherit primitives
3829         if we are compiling with restriction No_Dispatching_Calls.
3830         (Make_Disp_XXX): Addition of assertion to avoid the use of all these
3831         subprograms if we are compiling under No_Dispatching_Calls restriction.
3832         (Make_DT): Generate a dispatch table with a single dummy entry if
3833         we are compiling with the No_Dispatching_Calls restriction. In
3834         addition, in this case we don't generate code that calls to the
3835         following run-time subprograms: Set_Type_Kind, Inherit_DT.
3836         (Make_Select_Specific_Data_Table): Add assertion to avoid the use
3837         of this subprogram if compiling with the No_Dispatching_Calls
3838         restriction.
3839         (Expand_Type_Conversion): Instead of using the actual parameter,
3840         the argument passed as parameter to the conversion function was
3841         erroneously referenced by the expander.
3842         (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address,
3843         Set_Predefined_Primitive_Op_Address and Set_Signature.
3844         (Expand_Dispatching_Call): Generate call to
3845         Get_Predefined_Prim_Op_Address for predefined primitives.
3846         (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for
3847         predefined primitives.
3848         (Make_DT, Make_Secondary_DT): If the tagged type has no user defined
3849         primitives we reserve one dummy entry to ensure that the tag does not
3850         point to some memory that is associated with some other object. In
3851         addition, remove all the old code that generated the assignments
3852         associated with the signature of the dispatch table and replace them
3853         by a call to the new subprogram Set_Signature.
3854         (Set_All_DT_Position): Change the algorithm because now we have a
3855         separate dispatch table associated with predefined primitive operations.
3856         (Expand_Interface_Conversion): In case of non-static offset_to_top
3857         add explicit dereference to get access to the object after the call
3858         to displace the pointer to the object.
3859         (Expand_Interface_Thunk): Modify the generation of the actual used
3860         in the calls to the run-time function Offset_To_Top to fulfil its
3861         new interface.
3862         (Make_DT): Add the new actuals required to call Set_Offset_To_Top.
3863
3864 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3865
3866         * exp_dist.adb (Copy_Specification): For access parameters, copy
3867         Null_Exclusion flag, which will have been set for stream subprograms
3868         in Ada2005 mode.
3869
3870 2006-02-13  Pascal Obry  <obry@adacore.com>
3871
3872         * expect.c (__gnat_expect_portable_execvp): New implementation. The
3873         previous implementation was using the C runtime spawnve routine but
3874         the corresponding wait was using directly the Win32 API. This was
3875         causing some times a lock when waiting for an event using
3876         WaitForSingleObject in __gnat_waitpid. This new implementation uses
3877         the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32
3878         API fixes this problem.
3879
3880 2006-02-13  Robert Dewar  <dewar@adacore.com>
3881
3882         * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
3883         call.
3884
3885 2006-02-13  Thomas Quinot  <quinot@adacore.com>
3886
3887         * exp_pakd.ads: Fix typos in comments.
3888
3889         * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed
3890         array reference that is an explicit dereference, mark the converted
3891         (packed) array reference as analyzed to prevent a forthcoming
3892         reanalysis from resetting its type to the original (non-packed) array
3893         type.
3894
3895 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3896             Javier Miranda  <miranda@adacore.com>
3897             Eric Botcazou  <ebotcazou@adacore.com>
3898
3899         * exp_util.ads, exp_util.adb (Find_Prim_Op,
3900         Is_Predefined_Primitive_Operation): When
3901         searching for the predefined equality operator, verify that operands
3902         have the same type.
3903         (Is_Predefined_Dispatching_Operation): Remove the code that looks
3904         for the last entity in the list of aliased subprograms. This code
3905         was wrong in case of renamings.
3906         (Set_Renamed_Subprogram): New procedure
3907         (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the
3908         Exp_Type constant computed when entering this subprogram.
3909         (Known_Null): New function
3910         (OK_To_Do_Constant_Replacement): New function
3911         (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag
3912         (Side_Effect_Free): An attribute reference 'Input is not free of
3913         side effect, unlike other attributes that are functions. (from code
3914         reading).
3915         (Remove_Side_Effects): Expressions that involve packed arrays or records
3916         are copied at the point of reference, and therefore must be marked as
3917         renamings of objects.
3918         (Is_Predefined_Dispatching_Operation): Return false if the operation is
3919         not a dispatching operation.
3920
3921         PR ada/18819
3922         (Remove_Side_Effects): Lift enclosing type conversion nodes for
3923         elementary types in all cases.
3924
3925 2006-02-13  Javier Miranda  <miranda@adacore.com>
3926
3927         * freeze.adb (Freeze_Entity): Handle subtypes of protected types and
3928         task types when accessing to the corresponding record type.
3929         Remove '!' in warning message.
3930
3931 2006-02-13  Olivier Hainque  <hainque@adacore.com>
3932
3933         * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment),
3934         to avoid useless and space inefficient overalignments on targets where
3935         Max_Alignment is larger than 16.
3936
3937 2006-02-13  Pascal Obry  <obry@adacore.com>
3938
3939         * g-catiio.adb (Sec_Number): New type used to compute the number of
3940         seconds since 1-1-1970.
3941         (Image) [Natural]: The parameter was an Integer, as we can't deal with
3942         negative numbers (years, months...) it is better to have a Natural here.
3943         Code clean-up.
3944         (Image) [Number]: Change parameter from Long_Integer to Number.
3945         (Image): Use Number type to compute the seconds since 1-1-1970 to fix an
3946         overflow for dates past year 2038.
3947
3948 2006-02-13  Matthew Heaney  <heaney@adacore.com>
3949
3950         *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
3951         Constraint_Error.
3952
3953 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
3954
3955         * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and
3956         native platforms.
3957         (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that
3958         finalization can occur normally.
3959
3960 2006-02-13  Vincent Celier  <celier@adacore.com>
3961
3962         * gnatcmd.adb (Rules_Switches): New table
3963         (Add_To_Rules_Switches): New procedure
3964         (GNATCmd): For command CHECK, put all options following "-rules" in the
3965         Rules_Switches table. Append these -rules switches after the -cargs
3966         switches.
3967
3968 2006-02-13  Robert Dewar  <dewar@adacore.com>
3969
3970         * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM):
3971         These two cases were generating incorrect output, and if this unit
3972         was built with checks on, generated a discriminant mismatch constraint
3973         error.
3974
3975 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
3976             Robert Dewar  <dewar@adacore.com>
3977
3978         * lib-xref.adb (Get_Type_Reference): For a private type whose full
3979         view is an array type, indicate the component type as well, for
3980         navigation purposes.
3981         (Generate_Reference): Don't consider array ref on LHS to be a case
3982         of violating pragma Unreferenced.
3983         Do not give Ada 2005 warning except on real reference.
3984
3985 2006-02-13  Vincent Celier  <celier@adacore.com>
3986
3987         * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the
3988         main source, add switch -mdebug-main=_ada_ so that the executable can
3989         be debugged by the standard VMS debugger.
3990         (Gnatmake): Set No_Main_Subprogram to True when there is no main
3991         subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly.
3992         Exit the Multi_Main_Loop when Unique_Compile is True after compilation
3993         of the last source, as the binding and linking phases are never
3994         performed.
3995         Set all executable obsolete when rebuilding a library.
3996
3997         * makeutl.adb (Linker_Options_Switches): Do not process empty linker
3998         options.
3999
4000 2006-02-13  Javier Miranda  <miranda@adacore.com>
4001
4002         PR ada/23973
4003
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.
4012
4013 2006-02-13  Robert Dewar  <dewar@adacore.com>
4014
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)
4018
4019 2006-02-13  Javier Miranda  <miranda@adacore.com>
4020
4021         * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
4022         against source containing syntax errors.
4023
4024 2006-02-13  Vincent Celier  <celier@adacore.com>
4025
4026         * prj.adb (Reset): Initialize the first element of table Namings with
4027         the standard naming data.
4028
4029 2006-02-13  Vincent Celier  <celier@adacore.com>
4030
4031         * prj.ads (Error_Warning): New enumeration type
4032
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.
4043
4044         * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources.
4045         Call Prj.Proc.Process with parameter When_No_Sources.
4046
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.
4058
4059 2006-02-13  Vincent Celier  <celier@adacore.com>
4060
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.
4067
4068 2006-02-13  Javier Miranda  <miranda@adacore.com>
4069             Gary Dismukes  <dismukes@adacore.com>
4070             Robert Dewar  <dewar@adacore.com>
4071
4072         * restrict.ads (No_Dispatching_Calls): New GNAT restriction.
4073
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.
4090
4091         * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow
4092         calling it from Exp_Ch3.Make_Controlling_Function_Wrappers.
4093
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
4098
4099 2006-02-13  Douglas Rupp  <rupp@adacore.com>
4100
4101         * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
4102
4103 2006-02-13  Javier Miranda  <miranda@adacore.com>
4104
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.
4113
4114 2006-02-13  Javier Miranda  <miranda@adacore.com>
4115             Ed Schonberg  <schonberg@adacore.com>
4116
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.
4129
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
4141
4142 2006-02-13  Hristian Kirtchev  <kirtchev@adacore.com>
4143             Ed Schonberg  <schonberg@adacore.com>
4144             Gary Dismukes  <dismukes@adacore.com>
4145
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.
4175
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>
4180
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.
4189
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
4208
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.
4238
4239 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4240             Javier Miranda  <miranda@adacore.com>
4241
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.
4268
4269 2006-02-13  Bob Duff  <duff@adacore.com>
4270
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.
4282
4283 2006-02-13  Javier Miranda  <miranda@adacore.com>
4284
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).
4293
4294 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4295             Robert Dewar  <dewar@adacore.com>
4296
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
4301
4302 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4303             Javier Miranda  <miranda@adacore.com>
4304
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.
4318
4319 2006-02-13  Thomas Quinot  <quinot@adacore.com>
4320
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.
4326
4327 2006-02-13  Ed Schonberg  <schonberg@adacore.com>
4328             Robert Dewar  <dewar@adacore.com>
4329
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)
4336
4337         * sprint.ads: Document use of $ for implicit run time routine call
4338
4339 2006-02-13  Quentin Ochem  <ochem@adacore.com>
4340
4341         * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
4342         task name.
4343
4344 2006-02-13  Bob Duff  <duff@adacore.com>
4345
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.
4350
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.
4356
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).
4364
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.
4369
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.
4374
4375 2006-02-13  Robert Dewar  <dewar@adacore.com>
4376
4377         * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
4378
4379 2006-02-13  Eric Botcazou  <ebotcazou@adacore.com>
4380
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.
4386
4387 2006-02-13  Arnaud Charlet  <charlet@adacore.com>
4388             Ben Brosgol  <brosgol@adacore.com>
4389             Robert Dewar  <dewar@adacore.com>
4390
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
4414
4415         * ug_words: Added entry for gnatcheck
4416
4417         * g-ctrl_c.ads (Install_Handler): Enhance comments
4418
4419         * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination
4420
4421         * g-trasym.ads: Add documentation on how to do off line symbolic
4422         traceback computation.
4423
4424         * s-fatgen.adb: Add comments for Unaligned_Valid
4425
4426         * stand.ads: Fix typo in comment
4427
4428 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4429
4430         * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
4431
4432 2006-02-06  Roger Sayle  <roger@eyesopen.com>
4433
4434         * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
4435
4436 2006-02-03  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4437
4438         PR target/25926
4439         * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
4440         implementation that calls __main.
4441
4442 2006-01-25  Peter O'Gorman  <peter@pogma.com>
4443
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).
4448
4449         (powerpc-darwin): Pass -shared-libgcc when building shared library.
4450
4451 2006-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4452
4453         PR ada/24533
4454         * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
4455
4456 2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4457
4458         * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t.
4459
4460 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4461
4462         * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer
4463         needed.
4464
4465 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4466
4467         * Make-lang.in: Update dependencies
4468
4469 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4470
4471         * Make-lang.in: Add rule for ada/exp_sel.o
4472
4473 2005-12-12  Arnaud Charlet  <charlet@adacore.com>
4474
4475         * Makefile.in (mingw section): Remove EH_MECHANISM setting.
4476
4477 2005-12-09  Arnaud Charlet  <charlet@adacore.com>
4478
4479         * gnatvsn.ads (Library_Version): Bump to version 4.2
4480         (ASIS_Version_Number): Bumped.
4481
4482 2005-12-09  Doug Rupp  <rupp@adacore.com>
4483
4484         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change
4485         Ada bind file prefix on VMS from b$ to b__.
4486         (Build_Dynamic_Library): Change Init file suffix on VMS from $init to
4487         __init.
4488
4489         * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to
4490         Targparm.OpenVMS_On_Target.
4491         (Object_Suffix): Initialize with target object suffix.
4492         (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__.
4493
4494         * butil.adb: Change some Hostparm.OpenVMS checks to
4495         Targparm.OpenVMS_On_Target.
4496
4497         * clean.adb: Change some Hostparm.OpenVMS checks to
4498         Targparm.OpenVMS_On_Target.
4499         (Object_Suffix): Initialize with call to Get_Target_Object_Suffix.
4500         ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change
4501         Ada bind file prefix on VMS from b$ to b__.
4502
4503         * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in
4504         --GCC so that Get_Target_Parameters can find system.ads.
4505         (Gnatlink): Call Get_Target_Parameters in mainline.
4506         Initialize standard packages for Targparm.
4507         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
4508         (Process_Args): Also Check for object files with target object
4509         extension.
4510         (Make_Binder_File_Names): Create with target object extension.
4511         (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$
4512         to b__.
4513
4514         * mlib-prj.adb: Change some Hostparm.OpenVMS checks to
4515         Targparm.OpenVMS_On_Target.
4516         ({declaration},Build_Library,Check_Library): Change Ada bind file
4517         prefix on VMS from b$ to b__.
4518
4519         * osint-b.adb: Change some Hostparm.OpenVMS checks to
4520         Targparm.OpenVMS_On_Target.
4521         (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to
4522         b__.
4523
4524         * targext.c: New file.
4525
4526         * Makefile.in: add support for vxworks653 builds
4527         (../../vxaddr2line): gnatlink with targext.o.
4528         (TOOLS_LIBS): Move targext.o to precede libgnat.
4529         (init.o, initialize.o): Minor clean up in dependencies.
4530         (GNATLINK_OBJS): Add targparm.o, snames.o
4531         Add rules fo building targext.o and linking it explicitly with all
4532         tools.
4533         Also add targext.o to gnatlib.
4534
4535         * Make-lang.in: Add rules for building targext.o and linking it in
4536         with gnat1 and gnatbind.
4537         Add entry for exp_sel.o.
4538
4539         * osint.adb Change some Hostparm.OpenVMS checks to
4540         Targparm.OpenVMS_On_Target.
4541         (Object_File_Name): Use target object suffix.
4542
4543         * osint.ads (Object_Suffix): Remove, no longer used.
4544         (Target_Object_Suffix): Initialize with target object suffix.
4545
4546         * rident.ads: Add special exception to license.
4547
4548         * targparm.adb (Get_Target_Parameters): Set the value of
4549         Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive
4550         value.
4551         (Get_Target_Parameters): Set OpenVMS_On_Target if openvms.
4552         
4553         * targparm.ads: Add special exception to license.
4554
4555         * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New
4556         function.
4557         (Copy_File): Make sure from file is closed if error on to file
4558         (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions.
4559
4560         * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix.
4561         (Executable_Suffix): Intialize with Get_Target_Executable_Suffix.
4562
4563         * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with
4564         target object suffix.
4565
4566 2005-12-09  Jose Ruiz  <ruiz@adacore.com>
4567             Quentin Ochem  <ochem@adacore.com>
4568             Florian Villoing  <villoing@adacore.com>
4569
4570         * a-taster.ads, a-taster.adb: New files.
4571
4572         * a-elchha.adb (Last_Chance_Handler): Change the task termination soft
4573         link to the version that does nothing. This way the task termination
4574         routine is not executed twice for the environment task when finishing
4575         because of an unhandled exception.
4576
4577         * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination
4578         handler because of an unhandled exception.
4579
4580         * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from
4581         System.Tasking.Utilities instead of that in System.Tasking.Stages.
4582
4583         * s-finimp.adb (initialization code): Modify the soft link for the
4584         finalization of the global list instead of Adafinal.
4585
4586         * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this
4587         non-tasking version of the soft link for task termination. We do
4588         nothing since if we are using the non-tasking version it
4589         means that the task termination functionality is not used.
4590         (Null_Finalize_Global_List): Add this null version for the procedure
4591         in charge of finalizing the global list for controlled objects.
4592         (Null_Adafinal): Remove this procedure. Adafinal_NT has been created
4593         instead for handling run-time termination in a more flexible way.
4594         (Adafinal_NT): This new procedure will take care of finalizing the
4595         global list for controlled objects if needed, but no tasking
4596         finalization.
4597
4598         * s-tarest.adb (Task_Lock): Do not try to lock again the
4599         Global_Task_Lock if we already own it. Otherwise, we get blocked in
4600         some run-time operations.
4601         (Task_Unlock): Do not try to actually unlock the Global_Task_Lock
4602         until all nested locks have been released.
4603         (Task_Wrapper): Call the fall-back task termination handler. It
4604         applies to all tasks but the environment task.
4605         (Finalize_Global_Tasks): Add the call for the task termination
4606         procedure for the environment task.
4607         (Task_Wrapper): suppress warnings around declaration of
4608         Secondary_Stack_Address.
4609
4610         * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been
4611         moved to the Common_ATCB record.
4612         (Task_Lock): Global_Task_Lock_Nesting has been moved to the
4613         Common_ATCB record.
4614         (Task_Unlock): Global_Task_Lock_Nesting has been moved to the
4615         Common_ATCB record.
4616
4617         * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting,
4618         Fall_Back_Handler, and Specific_Handler.
4619
4620         * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already
4621         defined in Ada.Task_Termination, to avoid circular dependencies.
4622         (Termination_Handler): Redefine this type here, alredy defined in
4623         Ada.Task_Termination, for avoiding circular dependencies.
4624         (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required
4625         for storing task termination handlers. In addition,
4626         Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to
4627         Common_ATCB because it is used by both the regular and the restricted
4628         run times.
4629         (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to
4630         Common_ATCB because it is used by both the regular and the restricted
4631         run times.
4632         (Common_ATCB): Added a dynamic task analyzer field.
4633
4634         * s-tassta.adb (Abort_Tasks): Move the code in charge of checking
4635         potentially blocking operations to System.Tasking.Utilities.Abort_Tasks.
4636         (Task_Wrapper): Call the task termination handler. It applies to all
4637         tasks but the environment task.
4638         (Finalize_Global_Tasks): Call the task termination procedure for the
4639         environment task. The call to Finalize_Global_List is now performed
4640         using the soft links mechanism.
4641         (Task_Wrapper): added dynamic stack analysis.
4642
4643         * s-tasuti.adb (Abort_Tasks): The code in charge of checking
4644         potentially blocking operations has been moved from
4645         System.Tasking.Stages.Abort_Tasks to this procedure. There can be
4646         direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass
4647         through System.Tasking.Stages.Abort_Tasks, and we do not want to miss
4648         this run-time check.
4649
4650         * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version
4651         of task termination procedure.
4652         (Init_Tasking_Soft_Links): Install the task-safe version of the soft
4653         link for the task termination procedure.
4654
4655         * bindusg.adb: (Bindusg): Added documentation for -u option.
4656
4657         * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis.
4658         (Get_Main_C): Add handling of dynamic stack analysis.
4659         (Gen_Output_File_C): Add external functions for dynamic stack analysis.
4660
4661         * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination).
4662         (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis
4663         (GNATRTL_NONTASKING_OBJS): Add AltiVec files.
4664
4665         * opt.ads: Added flags used by dynamic stack measurement.
4666         (Max_Line_Length): Remove (not used anymore)
4667
4668         * s-io.ads, s-io.adb (Standard_Error): new subprogram
4669         (Standart_Output): new subprogram
4670         (Set_Output): new subprogram
4671         (Put): now uses the value of Current_Out to know if the output has to be
4672         send to stderr or stdout.
4673         
4674         * s-stausa.ads: Complete implementation.
4675
4676         * switch-b.adb: Added handling of -u switch for dynamic stack analysis.
4677         
4678         * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the
4679         list of Ada 05 files.
4680         (GNAT Library Units): Add AltiVec files.
4681
4682         * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb,
4683         g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads
4684         g-alvety.ads, g-alvevi.ads: New files providing altivec API.
4685
4686 2005-12-09  Nicolas Setton  <setton@adacore.com>
4687
4688         * adaint.c (__gnat_locate_regular_file): Return immediately if
4689         file_name is empty.
4690
4691 2005-12-09  Javier Miranda  <miranda@adacore.com>
4692             Hristian Kirtchev  <kirtchev@adacore.com>
4693
4694         * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body
4695         to the specification because the frontend generates code that uses this
4696         subprogram.
4697         (Set_Interface_Table): Add missing assertion.
4698         Update documentation describing the run-time structure.
4699         (Displace): New subprogram that displaces the pointer to the object
4700         to reference one of its secondary dispatch tables.
4701         (IW_Membership): Modified to use the new table of interfaces.
4702         (Inherit_TSD): Modified to use the new table of interfaces.
4703         (Register_Interface_Tag): Use the additional formal to fill the
4704         contents of the new table of interfaces.
4705         (Set_Interface_Table): New subprogram that stores in the TSD the
4706         pointer to the table of interfaces.
4707         (Set_Offset_To_Top): Use the additional formal to save copy of
4708         the offset value in the table of interfaces.
4709         Update structure of GNAT Primary and Secondary dispatch table diagram.
4710         Add comment section on GNAT dispatch table prologue.
4711         (Offset_To_Signature): Update the constant value of the Signature field.
4712         (Dispatch_Table): Update comment on hidden fields in the prologue.
4713         (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD,
4714         Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change
4715         the type of formal parameter T to Tag, introduce additional assertions.
4716         (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type
4717         conversion.
4718         (Get_Tagged_Kind, Set_Tagged_Kind): New bodies.
4719
4720         * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual
4721         in all the calls to Expand_Interface_Thunk. Instead of referencing the
4722         record component containing the tag of the secondary dispatch table we
4723         have to use the Offset_To_Top run-time function to get this information;
4724         otherwise if the pointer to the base of the object has been displace
4725         we get a wrong value if we use the 'position attribute.
4726
4727         * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in
4728         all the calls to Expand_Interface_Thunk.
4729         (Make_Secondary_DT): Secondary dispatch tables do not have a table of
4730         interfaces; hence the call to Set_Interface_Table was clearly wrong.
4731         (Collect_All_Interfaces): Modify the internal subprogram Collect to
4732         ensure that the interfaces implemented by the ancestors are placed
4733         at the header of the generated list.
4734         (Expand_Interface_Conversion): Handle the case in which the displacement
4735         associated with the interface conversion is not statically known. In
4736         this case we generate a call to the new run-time subprogram Displace.
4737         (Make_DT): Generate and fill the new table of interfaces.
4738         (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for
4739         Get_Tagged_Kind and Set_Tagged_Kind.
4740         (Tagged_Kind): New function that determines the tagged kind of a type
4741         with respect to limitedness and concurrency and returns a reference to
4742         RE_Tagged_Kind.
4743         (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body,
4744         Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the
4745         primary dispatch table for a type.
4746         (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and
4747         secondary dispatch table respectively of a tagged type.
4748
4749         * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal.
4750         (Expand_Interface_Conversion): New subprogram to indicate if the
4751         displacement of the type conversion is statically known.
4752         (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind.
4753
4754         * rtsfind.ads (RE_Offset_To_Top): New entity
4755         (RTU_Id): Add Ada_Task_Termination to the list so that it is made
4756         accessible to users.
4757         (Re_Displace): New entity
4758         (RE_Interface_Data): New entity
4759         (RE_Set_Interface_Data): New_Entity
4760         (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind,
4761         Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged,
4762         RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected,
4763         RE_TK_Tagged, RE_TK_Task.
4764
4765         * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram
4766         Init_Secondary_Tags_Internal to allow its use with interface types and
4767         also to generate the code for the new additional actual required
4768         by Set_Offset_To_Top.
4769         (Build_Init_Statements): In case of components associated with abstract
4770         interface types there is no need to generate a call to its IP.
4771         (Freeze_Record_Type): Generate Select Specific Data tables only for
4772         concurrent types.
4773         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate
4774         the bodies and specifications of the predefined primitive operations
4775         dealing with dispatching selects and abort, 'Callable, 'Terminated only
4776         for concurrent types.
4777
4778         * exp_sel.ads, exp_sel.adb: New files.
4779
4780         * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body,
4781         Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle
4782         properly protected objects and attach handler in the case of the
4783         restricted profile.
4784         Move embeded package Select_Expansion_Utilities into a separate external
4785         package.
4786         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select,
4787         Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel.
4788         (Build_K, Build_S_Assignment): New subprograms, part of the select
4789         expansion utilities.
4790         (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call,
4791         Expand_N_Timed_Entry_Call): Optimize expansion of select statements
4792         where the trigger is a dispatching procedure of a limited tagged type.
4793
4794 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4795
4796         * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand
4797         pointer initialization values. Make a SAVE_EXPR instead. Add comments
4798         about the use and expansion of SAVE_EXPRs in the various possible
4799         renaming handling cases.
4800         (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by
4801         abusing DECL_FCONTEXT.
4802
4803 2005-12-09  Matthew Heaney  <heaney@adacore.com>
4804
4805         * a-convec.adb (Merge): Added assertions to check whether vector params
4806         are sorted.
4807
4808         * a-coinve.adb (Merge): Added assertions to check whether vector params
4809         are sorted.
4810
4811         * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302
4812         draft.
4813         (Cursor'Read): raises PE
4814
4815         * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem
4816         to its default value.
4817
4818         * a-cihama.adb: Manually check whether cursor's key and elem are
4819         non-null
4820
4821         * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode
4822         (Merge): Assert that target and source lists are in order
4823         (Swap): Declare non-const temporaries, to pass to Splice
4824
4825         * a-cdlili.ads: (Splice): Changed param name and param mode
4826
4827         * a-cdlili.adb: (Splice): Changed param name and param mode
4828         (Merge): Assert that target and source lists are in order
4829         (Swap): Declare non-const temporaries, to pass to Splice
4830
4831         * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null
4832         (Write): declare Stream param as not null
4833
4834         * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include
4835         an exception message.
4836
4837 2005-12-09  Thomas Quinot  <quinot@adacore.com>
4838             Robert Dewar  <dewar@adacore.com>
4839
4840         * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1,
4841         which is the absolute maximum length we can support.
4842
4843         * frontend.adb: For the processing of configuration pragma files,
4844         remove references to Opt.Max_Line_Length, which is not checked anymore.
4845
4846         * namet.ads (Name_Buffer): Adjust size to reflect increase on max line
4847         length.
4848
4849         * scn.adb, scng.adb: 
4850         Always check line length against the absolute supported maximum,
4851         Hostparm.Max_Line_Length.
4852
4853         * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported
4854         value for the maximum line length is Max_Line_Length (not
4855         Column_Number'Last).
4856         Minor error msg update
4857         (Set_Style_Check_Options): New interface returning error msg
4858         Minor code reorganization (processing for 'M' was out of alpha order)
4859
4860         * switch-c.adb: New interface for Set_Style_Check_Options
4861
4862         * stylesw.ads (Set_Style_Check_Options): New interface returning error
4863         msg.
4864
4865 2005-12-09  Javier Miranda  <miranda@adacore.com>
4866
4867         * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records
4868         with IP subprogram were only supported if there were limited types.
4869
4870         * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized
4871         records with IP subprogram were only supported if there were limited
4872         types.
4873
4874 2005-12-09  Olivier Hainque  <hainque@adacore.com>
4875             Eric Botcazou  <ebotcazou@adacore.com>
4876
4877         * trans.c (tree_transform, emit_check): Adjust calls to
4878         build_call_raise, passing the now expected GNAT_NODE argument.
4879
4880         * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better
4881         source line information than what the current global locus indicates
4882         when appropriate.
4883
4884         * utils2.c (build_simple_component_ref): Return 0 if the offset of the
4885         field has overflowed.
4886         (build_call_raise): Add a GNAT_NODE argument to convey better source
4887         line information than what the current global locus indicates when
4888         appropriate.
4889         (build_component_ref): Adjust call to build_call_raise.
4890
4891 2005-12-09  Pascal Obry  <obry@adacore.com>
4892
4893         * g-diopit.adb (Find): Fix test to exit the iterator and make sure that
4894         the iterator is quitting iteration on parent directory.
4895
4896 2005-12-09  Javier Miranda  <miranda@adacore.com>
4897
4898         * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types
4899         and the assignment to a class-wide object, before the assignment we
4900         generate a run-time check to ensure that the tag of the Target is
4901         covered by the tag of the source.
4902
4903 2005-12-09  Robert Dewar  <dewar@adacore.com>
4904
4905         * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean
4906         parameter in call to Image_Wide_Character.
4907
4908         * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean
4909         parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency.
4910         (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with
4911         annoying FFFE/FFFF inconsistency.
4912
4913 2005-12-09  Robert Dewar  <dewar@adacore.com>
4914             Javier Miranda  <miranda@adacore.com>
4915             Ed Schonberg  <schonberg@adacore.com>
4916
4917         * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case
4918         of type conversion.
4919         (Find_Interface): New subprogram that given a tagged type and one of its
4920         component associated with the secondary table of an abstract interface
4921         type, return the entity associated with such abstract interface type.
4922         (Make_Subtype_From_Expr): If type has unknown discriminants, always use
4923         base type to create anonymous subtype, because entity may be a locally
4924         declared subtype or generic actual.
4925         (Find_Interface): New subprogram that given a tagged type and one of its
4926         component associated with the secondary table of an abstract interface
4927         type, return the entity associated with such abstract interface type.
4928
4929         * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the
4930         conversion cannot be handled at compile time. In this case we pass this
4931         information to the expander to generate the appropriate code.
4932
4933 2005-12-09  Robert Dewar  <dewar@adacore.com>
4934             Ed Schonberg  <schonberg@adacore.com>
4935             Gary Dismukes  <dismukes@adacore.com>
4936             Javier Miranda  <miranda@adacore.com>
4937             Hristian Kirtchev  <kirtchev@adacore.com>
4938
4939         * einfo.adb (Itype_Printed): New flag
4940         (Is_Limited_Type): Derived types do not inherit limitedness from
4941         interface progenitors.
4942         (Is_Return_By_Reference_Type): Predicate does not apply to limited
4943         interfaces.
4944
4945         * einfo.ads (Itype_Printed): New flag
4946         Move Is_Wrapper_Package to proper section
4947         Add missing Inline for Is_Volatile
4948
4949         * output.ads, output.adb (Write_Erase_Char): New procedure
4950         (Save/Restore_Output_Buffer): New procedures
4951         (Save/Restore_Output_Buffer): New procedures
4952
4953         * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes
4954         Add missing support for anonymous access type
4955         (Write_Id): Insert calls to Write_Itype
4956         (Write_Itype): New procedure to output itypes
4957
4958         * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle
4959         use of "limited" in declaration.
4960
4961         * sinfo.ads, sinfo.adb: 
4962         Formal derived types can carry an explicit "limited" indication.
4963
4964         * sem_ch3.adb: Add with and use of Targparm.
4965         (Create_Component): If Frontend_Layout_On_Target is True and the
4966         copied component does not have a known static Esize, then reset
4967         the size and positional fields of the new component.
4968         (Analyze_Component_Declaration): A limited component is
4969         legal within a protected type that implements an interface.
4970         (Collect_Interfaces): Do not add to the list the interfaces that
4971         are implemented by the ancestors.
4972         (Derived_Type_Declaration): If the parent of the full-view is an
4973         interface perform a transformation of the tree to ensure that it has
4974         the same parent than the partial-view. This simplifies the job of the
4975         expander in order to generate the correct object layout, and it is
4976         needed because the list of interfaces of the full-view can be given in
4977         any order.
4978         (Process_Full_View): The parent of the full-view does not need to be
4979         a descendant of the parent of the partial view if both parents are
4980         interfaces.
4981         (Analyze_Private_Extension_Declaration): If declaration has an explicit
4982         "limited" the parent must be a limited type.
4983         (Build_Derived_Record_Type): A derived type that is explicitly limited
4984         must have limited ancestor and progenitors.
4985         (Build_Derived_Type): Ditto.
4986         (Process_Full_View): Verify that explicit uses of "limited" in partial
4987         and full declarations are consistent.
4988         (Find_Ancestor_Interface): Remove function.
4989         (Collect_Implemented_Interfaces): New procedure used to gather all
4990         implemented interfaces by a type.
4991         (Contain_Interface): New function used to check whether an interface is
4992         present in a list.
4993         (Find_Hidden_Interface): New function used to determine whether two
4994         lists of interfaces constitute a set equality. If not, the first
4995         differing interface is returned.
4996         (Process_Full_View): Improve the check for the "no hidden interface"
4997         rule as defined by AI-396.
4998
4999 2005-12-09  Robert Dewar  <dewar@adacore.com>
5000
5001         * freeze.adb (Freeze_Record_Type): Only test for useless pack on record
5002         types, not on record subtypes.
5003         (Freeze_Entity): Code cleanup. Add barrier to the loop
5004         that generates the references for primitive operations. This allows to
5005         remove an unnecessary exception handler.
5006         Code reformatting and comment clean ups.
5007
5008 2005-12-09  Vincent Celier  <celier@adacore.com>
5009
5010         * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U
5011         If GNAT CHECK is called with a project file, but with no
5012         source on the command line, call gnatcheck with all the compilable
5013         sources of the project.
5014         Take into account the new command Check, for gnatcheck. Treat as for
5015         other ASIS tools: take into account project, specific package Check and
5016         Compiler switches.
5017         For ASIS tools, add the switches in package Compiler for
5018         the invocation of the compiler.
5019
5020         * prj-attr.adb: Add package Check and its attributes
5021
5022         * vms_conv.ads (Command_Type): New command Check, for gnatcheck
5023
5024         * vms_conv.adb (Initialize): Change Params of command Check to
5025         unlimited files.
5026         Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target.
5027         Add data for new command Check
5028
5029         * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT
5030         ELIM.
5031         Add qualifiers for Check command options
5032         (Command_Type): New command Check
5033
5034 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5035
5036         * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a
5037         command line switch overruns the output buffer.
5038
5039 2005-12-09  Robert Dewar  <dewar@adacore.com>
5040
5041         * sem_prag.adb: Processing for new pragma Complete_Representation
5042         (Analyze_Pragma, case Debug): Implement two argument form.
5043
5044         * par-prag.adb: Entry for new pragma Complete_Representation
5045         (Prag, case Debug): Recognize two argument form of pragma Debug
5046         New interface for Set_Style_Check_Options.
5047
5048         * sem_ch13.adb: Implement new pragma Complete_Representation.
5049
5050         * snames.adb, snames.ads, snames.h: Entry for new pragma
5051         Complete_Representation.
5052
5053 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5054
5055         * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for
5056         available user-specified stream attributes on limited parameters to
5057         also test the type directly rather than only its underlying type (for
5058         Ada 95) and, in the case of Ada 2005, to check that the user-specified
5059         attributes are visible at the point of the subprogram declaration.
5060         For Ada 2005, the error message is modified to indicate that the
5061         type's stream attributes must be visible (again, only for -gnat05).
5062
5063 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5064
5065         * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of
5066         anonymous access types.
5067
5068         * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for
5069         matching of anonymous access types and anonymous access to subprogram
5070         types. 'R'M 4.9.1 (2/2).
5071
5072 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5073
5074         * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference
5075         rule prematurely when operands are universal, remaining ambiguities
5076         will be removed during resolution.
5077         Code cleanup.
5078
5079         * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations
5080         that are Ada 2005 functions.
5081         (Has_Abstract_Interpretation): Subsidiary to
5082         Remove_Conversions, to remove ambiguities caused by abstract operations
5083         on numeric types when operands are universal.
5084
5085 2005-12-09  Robert Dewar  <dewar@adacore.com>
5086
5087         * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization
5088         for case where spec is categorized.
5089
5090 2005-12-09  Javier Miranda  <miranda@adacore.com>
5091
5092         * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
5093         types use the corresponding record type. This was not needed before
5094         the implementation of Ada 2005 synchronized types because
5095         concurrent types were never tagged types in Ada 95.
5096
5097 2005-12-09  Ed Schonberg  <schonberg@adacore.com>
5098
5099         * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the
5100         first subtype of the type of the expression to verify that it is a
5101         legal Time type.
5102
5103 2005-12-09  Robert Dewar  <dewar@adacore.com>
5104
5105         * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides
5106         decoded names.
5107
5108 2005-12-09  Quentin Ochem  <ochem@adacore.com>
5109             Robert Dewar  <dewar@adacore.com>
5110             Ed Falis  <falis@adacore.com>
5111             Florian Villoing  <villoing@adacore.com>
5112             Thomas Quinot  <quinot@adacore.com>
5113             Arnaud Charlet  <charlet@adacore.com>
5114
5115         * gnat_ugn.texi: Created section "Stack Related Tools"
5116         Moved "Stack Overflow Checking" subsection from "Switches for gcc" to
5117         "Stack Related Tools"
5118         Added subsection "Static Stack Usage Analysis"
5119         Added subsection "Dynamic Stack Usage Analysis"
5120         Include documentation of itypes in sprint listing (-gnatG)
5121         Documented gnatbind -D switch (default sec stack size for fixed sec
5122         stacks).
5123         Added Interrupt_State and Persistent_BSS to list of configuration
5124         pragmas.
5125         Add missing doc for maximum value of nnn in -gnatyMnnn
5126
5127         * gnat_rm.texi: Document the AltiVec binding.
5128         Add documentation for pragma Complete_Representation
5129         Shortened an overly long line (> 79 chars)
5130         Clarify documentation of unchecked conversion in implementation
5131         defined cases.
5132         Document two argument form of pragma Debug
5133
5134         * types.ads (Column_Number): Update documentation.
5135
5136         * exp_ch7.ads (Make_Adjust_Call): Document the special processing for
5137         library level Finalize_Storage_Only objects (these are not attached to
5138         any finalization list).
5139
5140         * system-mingw.ads: (Underlying_Priorities): Update comment.
5141
5142 2005-12-09  Robert Dewar  <dewar@adacore.com>
5143
5144         * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads,
5145         i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
5146         inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads,
5147         i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads,
5148         krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb,
5149         lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb,
5150         interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads,
5151         s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor
5152         reformatting.
5153
5154 2005-12-09  Robert Dewar  <dewar@adacore.com>
5155
5156         * s-vaflop-vms-alpha.adb: (Ne_F): New function
5157         (Ne_G): New function
5158
5159         * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code
5160         for tag assignment.
5161         (Rewrite_Comparison): Handle case where operation is not a comparison
5162         and ignore, and also handle type conversion case.
5163
5164 2005-12-09  Thomas Quinot  <quinot@adacore.com>
5165
5166         * exp_aggr.ads: Fix typo in comment.
5167         ???-mark Convert_Aggr_In_Assignment as needing documentation.
5168
5169 2005-12-09  Gary Dismukes  <dismukes@adacore.com>
5170
5171         * layout.adb: Replace various uses of byte by storage unit throughout.
5172         (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a
5173         static size, convert to storage units before returning, to conform to
5174         spec.
5175
5176 2005-12-09  Matthew Gingell  <gingell@adacore.com>
5177
5178         * g-exctra.ads: Fix typo in comment.
5179
5180 2005-12-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5181
5182         * utils.c: Minor reformatting.
5183
5184 2005-12-09  Robert Dewar  <dewar@adacore.com>
5185
5186         * g-soccon.ads: 
5187         Further comment fixes to make the status of the default file clear
5188
5189         * s-bitops.adb: Clarify comment for Bits_Array
5190
5191 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5192
5193         * Make-lang.in (ada.install-normal): Remove.
5194
5195 2005-12-07  Rafael Ávila de Espíndola  <rafael.espindola@gmail.com>
5196
5197         * Make-lang.in: Remove all dependencies on s-gtype.
5198
5199 2005-12-05  Richard Guenther  <rguenther@suse.de>
5200
5201         * utils.c (convert): Use fold_convert where appropriate.
5202
5203 2005-12-05  Paolo Bonzini  <bonzini@gnu.org>
5204
5205         * Makefile.in (gnatlib): Fix regex, using \. instead of . when
5206         a period is meant.
5207
5208 2005-12-02  Richard Guenther  <rguenther@suse.de>
5209
5210         * trans.c (gnat_gimplify_expr): Use buildN instead of build.
5211
5212 2005-12-01  Roger Sayle  <roger@eyesopen.com>
5213
5214         * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST
5215         nodes.
5216
5217 2005-11-23  Laurent GUERBY  <laurent@guerby.net>
5218
5219         * mlib-prj.adb (Build_Library): Initialize Delete.
5220
5221 2005-11-21  Joel Sherrill <joel.sherrill@oarcorp.com>
5222
5223         * socket.c: Add extern int h_errno for rtems since networking header
5224         files are not available at this point in a tool bootstrap. Newlib
5225         only has basic C library header files.
5226
5227 2005-11-19  Richard Guenther  <rguenther@suse.de>
5228         Roger Sayle  <roger@eyesopen.com>
5229
5230         PR ada/23717
5231         * misc.c (internal_error_function): Don't use vsprintf to format
5232         the error message text, instead use pp_format_text and the new
5233         pretty printer APIs.  This allows handling of %qs, %w, etc.
5234
5235 2005-11-18  Laurent GUERBY  <laurent@guerby.net>
5236
5237         PR ada/24857
5238         * Makefile.in: Use s-auxdec-empty for RTEMS.
5239
5240 2005-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
5241
5242         PR ada/22333
5243         * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make
5244         a temporary if taking the address of something that is neither
5245         reference, declaration, or constant, since the gimplifier
5246         can't handle that case.
5247
5248 2005-11-17  Laurent GUERBY  <laurent@guerby.net>
5249
5250         PR ada/24857
5251         * s-auxdec-empty.ads, s-auxdec-empty.adb: New files.
5252         
5253 2005-11-16  Richard Guenther  <rguenther@suse.de>
5254
5255         * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux.
5256
5257 2005-11-16  Joel Sherrill <joel.sherrill@oarcorp.com>
5258
5259         PR ada/24855
5260         * raise-gcc.c: Add missing stdarg.h include.
5261  
5262 2005-11-16  Richard Guenther  <rguenther@suse.de>
5263
5264         * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency.
5265         (ada/misc.o): Likewise.
5266
5267 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5268
5269         * g-soccon.ads: Minor reformatting. Update comments.
5270
5271         * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to
5272         gain visibility on the declaration of struct timeval.
5273
5274         * g-soccon-freebsd.ads,
5275         g-soccon-darwin.ads,
5276         g-soccon-tru64.ads,
5277         g-soccon-aix.ads,
5278         g-soccon-irix.ads,
5279         g-soccon-hpux.ads,
5280         g-soccon-solaris.ads,
5281         g-soccon-vms.ads,
5282         g-soccon-mingw.ads,
5283         g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants.
5284
5285         * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads,
5286         g-soccon-solaris-64.ads, g-soccon-linux-64.ads,
5287         g-soccon-linux-x86.ads: New files.
5288
5289         * g-socthi-mingw.adb: 
5290         (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants
5291
5292         * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads
5293         (time_t, suseconds_t): New types constructed to match the tv_sec
5294         and tv_usec fields of C struct timeval.
5295         (Timeval): Construct structure in terms of the new types.
5296         (Host_Errno): New function (imported from socket.c), returns last hosts
5297         database error.
5298
5299         * g-socthi-vxworks.adb:  Add error handling circuitry.
5300
5301         * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for
5302         components of struct timeval.
5303         (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry.
5304         (Check_Selector): In error conditions, clear internal socket sets to
5305         avoid a memory leak.
5306         (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If,
5307         Send_Timeout, Receive_Timeout.
5308
5309         * g-socthi.ads (time_t, suseconds_t): New types constructed to match
5310         the tv_sec and tv_usec fields of C struct timeval.
5311         (Timeval): Construct structure in terms of the new types.
5312         (Host_Errno): New function (imported from socket.c), returns last hosts
5313         database error.
5314
5315         * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the
5316         hosts database last error code.
5317
5318         * gen-soccon.c: Complete value expansion should not be performed on
5319         TARGET, as it has the form of a math expression, and some components
5320         may be platform-defined macros.
5321         For VxWorks, generate the OK and ERROR values.
5322         New constants giving the sizes of the components of C struct timeval.
5323
5324 2005-11-14  Robert Dewar  <dewar@adacore.com>
5325             Ed Schonberg  <schonberg@adacore.com>
5326
5327         PR ada/18434
5328
5329         * types.ads: Include All_Checks in Suppress_Array
5330
5331         * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as
5332         not(a=b), since we no longer do this rewriting, and hence it is not
5333         needed.
5334         (Elaboration_Checks_Suppressed): Add special casing to
5335         deal with different cases of static and dynamic elaboration checks (all
5336         checks does not count in the first case, but does in the second).
5337         (Expr_Known_Valid): Do not assume that the result of any arbitrary
5338         function call is valid, since this is not the case.
5339         (Ensure_Valid): Do not apply validity check to a real literal
5340         in a universal or fixed context
5341
5342         * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for
5343         elementary types using the operator in standard. It is cleaner not to
5344         modify the programmers intent, especially in the case of floating-point.
5345         (Rewrite_Comparison): Fix handling of /= (this was always wrong, but
5346         it did not matter because we always rewrote a/=b to not(a=b).
5347         (Expand_Allocator_Expression): For an allocator expression whose nominal
5348         subtype is an unconstrained packed type, convert the expression to its
5349         actual constrained subtype.
5350         Implement warning for <= or >= where < or > not possible
5351         Fix to Vax_Float tests (too early in many routines, causing premature
5352         Vax_Float expansions.
5353
5354         * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma
5355         to be used with packages and generic packages as well as with
5356         subprograms.
5357         (Suppress): Set All_Checks, but not Elaboration_Check, for case
5358         of pragma Suppress (All_Checks)
5359         (Analyze_Pragma, case Warnings): Implement first argument allowed to be
5360         a string literal for precise control over warnings.
5361         Avoid raise of pragma in case of unrecognized pragma and just return
5362         instead.
5363
5364         * sem_prag.ads: Minor reformatting
5365
5366         * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;"
5367         with call to new procedure Bad_Switch. Call Scan_Pos with new parameter
5368         Switch. Do not handle any exception.
5369         Include -gnatwx as part of -gnatg (warn on redundant parens)
5370         Allow optional = after -gnatm
5371         (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no
5372         longer sets Elaboration_Checks.
5373         Code to set warning mode moved to Sem_Warn
5374         so that it can be shared by pragma processing.
5375
5376         * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if
5377         statement.
5378
5379         * s-taprop-solaris.adb: 
5380         Change some <= to =, to avoid new warning
5381
5382         * a-exexda.adb, prj-proc.adb: 
5383         Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0)
5384         Fix obvious typo (Total_Errors_Detected <= 0 should be = 0)
5385
5386 2005-11-14  Robert Dewar  <dewar@adacore.com>
5387
5388         * exp_vfpt.adb: Handle /= case
5389         (Expand_Vax_Conversion): Properly recognize Conversion_OK flag
5390         so that we do not get duplicate scaling for fixed point conversions.
5391
5392         * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function
5393
5394 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5395
5396         * system-lynxos-ppc.ads, system-lynxos-x86.ads: 
5397         Increase default priority on Lynx from 15 to 17, and meet the Ada
5398         requirement that Default_Priority be ((Priority'First +
5399         Priority'Last) / 2) by increasing the range of Interrupt_Priority.
5400
5401 2005-11-14  Vincent Celier  <celier@adacore.com>
5402
5403         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
5404         mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
5405         mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb,
5406         mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb,
5407         mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads,
5408         mlib-tgt-lynxos.adb (DLL_Prefix): New function
5409
5410 2005-11-14  Doug Rupp  <rupp@adacore.com>
5411
5412         * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in
5413         private part.
5414
5415 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5416
5417         * s-traces-default.adb, s-trafor-default.ads,
5418         s-tratas-default.adb: Fix compilation errors.
5419
5420 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5421
5422         * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before
5423         raising the exception so the memory used is freed.
5424
5425 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5426
5427         * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant.
5428         (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used.
5429         (convert_address): Update comments and list of platforms using this.
5430
5431         * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed,
5432         no longer used.
5433
5434 2005-11-14  Pascal Obry  <obry@adacore.com>
5435             Vincent Celier  <celier@adacore.com>
5436
5437         * gnatdll.adb (Parse_Command_Line): Remove redundant use of
5438         GNAT.Command_Line.
5439
5440         * memroot.adb: Remove redundant with/use clause on
5441         System.Storage_Elements.
5442
5443 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5444
5445         * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used.
5446         (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp
5447         related code to a-exexpr.adb
5448         (Save_Occurrence_And_Private): Move GCC EH related code to
5449         a-exexpr-gcc.adb
5450         (Raise_Current_Excep): Add new variable Id with pragma
5451         volatile, to ensure that the variable lives on stack.
5452
5453         * a-exexpr-gcc.adb, raise-gcc.c: New file.
5454
5455         * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code
5456         from a-except.adb.
5457         Move GCC EH related code to a-exexpr-gcc.adb
5458
5459         * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and
5460         64-bit Solaris
5461         Split the Linux version of g-soccon into separate variants for 32 and 64
5462         bit platforms.
5463         (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET)
5464         vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS).
5465         install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use
5466         of host variable $(RANLIB_FLAGS).
5467         (alpha64-dec-*vms*): Fix translations for 64 bit compiler.
5468         Code clean up: remove unused/obsolete targets.
5469         (EH_MECHANISM): New variable introduced to differenciate between the
5470         two EH mechanisms statically.
5471         (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually.
5472         (LIBGNAT_OBJS): Add raise-gcc.o
5473         (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of
5474         s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that
5475         supports VxWorks 6 RTPs.
5476         (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of
5477         i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs.
5478
5479         * raise.c: Move all GCC EH-related routines to raise-gcc.c
5480
5481 2005-11-14  Jose Ruiz  <ruiz@adacore.com>
5482
5483         * s-tassta.adb (Create_Task): Move the code in charge of resetting the
5484         deferral level, when abort is not allowed, to a later stage (the
5485         Task_Wrapper).
5486         (Task_Wrapper): If Abort is not allowed, reset the deferral level since
5487         it will not get changed by the generated code. It was previously done
5488         in Create_Task.
5489
5490 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5491             Olivier Hainque  <hainque@adacore.com>
5492             Eric Botcazou  <ebotcazou@adacore.com>
5493
5494         * decl.c:
5495         Factor common code to build a storage type for an unconstrained object
5496         from a fat or thin pointer type and a constrained object type.
5497         (annotate_value): Handle BIT_AND_EXPR.
5498         (annotate_rep): Don't restrict the back annotation of inherited
5499         components to the type_annotate_only case.
5500         (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if
5501         we are not defining the type.
5502         <E_Record_Type>: Likewise.
5503         (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure
5504         to get advantage of the new maybe_stabilize_reference interface, to
5505         ensure that what we reference is indeed stabilized instead of relying
5506         on assumptions on what the stabilizer does.
5507         (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete
5508         type imported through a limited_with clause, use its non-limited view.
5509         (Has_Stdcall_Convention): New macro, to centralize the Windows vs others
5510         differentiation.
5511         (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix
5512         of #if sections + explicit comparisons of convention identifiers.
5513         (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary
5514         before early-returning for certain types when code generation is
5515         disabled.
5516         (gnat_to_gnu_entity) <object>: Adjust comment attached to the
5517         nullification of gnu_expr we do for objects with address clause and
5518         that we are not defining.
5519         (elaborate_expression_1): Do not create constants when creating
5520         variables needed by the debug info: the dwarf2 writer considers that
5521         CONST_DECLs is used only to represent enumeration constants, and emits
5522         nothing for them.
5523         (gnat_to_gnu_entity) <object>: When turning a non-definition of an
5524         object with an address clause into an indirect reference, drop the
5525         initializing expression.
5526         Include "expr.h".
5527         (STACK_CHECK_BUILTIN): Delete.
5528         (STACK_CHECK_PROBE_INTERVAL): Likewise.
5529         (STACK_CHECK_MAX_FRAME_SIZE): Likewise.
5530         (STACK_CHECK_MAX_VAR_SIZE): Likewise.
5531         (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree
5532         corresponding to the renamed object as ignored for debugging purposes.
5533
5534         * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size &
5535         related): For a prefix that is a dereference of a fat or thin pointer,
5536         if there is an actual subtype provided by the front-end, use that
5537         subtype to build an actual type with bounds template.
5538         (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype
5539         is provided by the front-end, use that subtype to compute the size of
5540         the deallocated object.
5541         (gnat_to_gnu): When adding a statement into an elaboration procedure,
5542         check for a potential violation of a No_Elaboration_Code restriction.
5543         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5544         with extra arguments to control whether to recurse through non-values
5545         and to let the caller know if the stabilization has succeeded.
5546         (gnat_stabilize_reference): Now a simple wrapper around
5547         maybe_stabilize, for common uses without restriction on lvalues and
5548         without need to check for the success indication.
5549         (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to
5550         pass false instead of 0 as the FORCE argument which is a bool.
5551         (Identifier_to_gnu): Remove checks ensuring that an renamed object
5552         attached to a renaming pointer has been properly stabilized, as no such
5553         object is attached otherwise.
5554         (call_to_gnu): Invoke create_var_decl to create the temporary when the
5555         function uses the "target pointer" return mechanism.
5556         Reinstate conversion of the actual to the type of the formal
5557         parameter before any other specific treatment based on the passing
5558         mechanism. This turns out to be necessary in order for PLACEHOLDER
5559         substitution to work properly when the latter type is unconstrained.
5560
5561         * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a
5562         common pattern.
5563         (maybe_stabilize_reference): New function, like gnat_stabilize_reference
5564         with extra arguments to control whether to recurse through non-values
5565         and to let the caller know if the stabilization has succeeded.
5566
5567         * utils2.c (gnat_build_constructor): Only sort the fields for possible
5568         static output of record constructor if all the components are constant.
5569         (gnat_build_constructor): For a record type, sort the list of field
5570         initializers in increasing bit position order.
5571         Factor common code to build a storage type for an unconstrained object
5572         from a fat or thin pointer type and a constrained object type.
5573         (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between
5574         types variants, and process special cases of VIEW_CONVERT expressions
5575         as their NOP_EXPR counterpart to ensure we get to the
5576         CORRESPONDING_VARs associated with CONST_DECls.
5577         (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs
5578         on the right-hand side.
5579
5580         * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring
5581         a common pattern.
5582         (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we
5583         are converting back to its original type.
5584         (convert) <JM input>: Fallthrough regular conversion code instead of
5585         extracting the object if converting to a type variant.
5586         (create_var_decl): When a variable has an initializer requiring code
5587         generation and we are at the top level, check for a potential violation
5588         of a No_Elaboration_Code restriction.
5589         (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN
5590         SIZE and SIZE_UNIT which we need for later back-annotations.
5591         * utils.c: (convert) <STRING_CST>: Remove obsolete code.
5592         <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type
5593         is an unchecked union.
5594         (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions.
5595         (convert) <VIEW_CONVERT_EXPR>: When the types have the same
5596         main variant, just replace the VIEW_CONVERT_EXPR.
5597         <UNION_TYPE>: Revert 2005-03-02 change.
5598
5599         * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR.
5600
5601         * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions.
5602
5603 2005-11-14  Matthew Heaney  <heaney@adacore.com>
5604
5605         * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 
5606         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 
5607         a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 
5608         a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 
5609         a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
5610         a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 
5611         Compiles against the spec for ordered maps described in sections
5612         A.18.6 of the most recent (August 2005) AI-302 draft.
5613
5614 2005-11-14  Olivier Hainque  <hainque@adacore.com>
5615
5616         * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations
5617         to ensure bias adjustments take place when need be and to prevent
5618         occurrences of intermediate overflows.
5619
5620 2005-11-14  Matthew Gingell  <gingell@adacore.com>
5621             Olivier Hainque  <hainque@adacore.com>
5622
5623         * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on
5624         ia64 HP-UX.
5625
5626         * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven
5627         tracebacks on ia64 HP-UX and provide explanatory comment.
5628         Enable backtraces on ia64 GNU/Linux.
5629         (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real
5630         base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly.
5631
5632 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
5633             Javier Miranda  <miranda@adacore.com>
5634
5635         * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads,
5636         exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads,
5637         exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads,
5638         einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces.
5639
5640         * a-tags.ads, a-tags.adb: Major rewrite and additions to implement
5641         properly new Ada 2005 interfaces (AI-345) and add run-time checks (via
5642         assertions).
5643
5644         * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New
5645         subprogram that generates the external name associated with a
5646         secondary dispatch table.
5647         (Get_Secondary_DT_External_Name): New subprogram that generates the
5648         external name associated with a secondary dispatch table.
5649
5650 2005-11-14  Emmanuel Briot  <briot@adacore.com>
5651
5652         * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity
5653         line in the ALI file to include both an instantiation reference, and a
5654         returned value.
5655
5656 2005-11-14  Vincent Celier  <celier@adacore.com>
5657
5658         * clean.adb (Check_Project): Look for Ada code in extending project,
5659         even if Ada is not specified as a language.
5660         Use new function DLL_Prefix for DLL_Name
5661         (Clean_Interface_Copy_Directory): New procedure
5662         (Clean_Library_Directory): New procedure
5663         (Clean_Directory): Remove procedure, no longer used
5664         (Clean_Project): Do not delete any file in an externally built project
5665
5666         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object
5667         directory of an extending project, even when there are no Ada source
5668         present.
5669         (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path
5670         (Set_Ada_Paths.Add.Recursive_Add): Ditto
5671
5672         * mlib-prj.adb (Check_Library): For all library projects, get the
5673         library file timestamp.
5674         (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir
5675         (Build_Library): Use new function DLL_Prefix for the DLL_Name
5676         (Clean): Remove procedure, no longer used
5677         (Ultimate_Extension_Of): New function
5678         (Build_Library): When cleaning the library directory, only remove an
5679         existing library file and any ALI file of a source of the project.
5680         When cleaning the interface copy directory, remove any source that
5681         could be a source of the project.
5682
5683         * prj.ads, prj.adb (Project_Empty): Add values of new components
5684         Library_TS and All_Imported_Projects.
5685         (Project_Empty): Add values for new components of Project_Data:
5686         Library_ALI_Dir and Display_Library_ALI_Dir
5687
5688         * prj-attr.adb: New project level attribute name Library_ALI_Dir
5689
5690         * prj-nmsc.adb (Check_Library_Attributes): Take into account new
5691         attribute Library_ALI_Dir.
5692         (Check_Library_Attributes): The library directory cannot be the same as
5693         any source directory of the project tree.
5694         (Check_Stand_Alone_Library): The interface copy directory cannot be
5695         the same as any source directory of the project tree.
5696
5697         * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete
5698         all temporary files.
5699
5700 2005-11-14  Robert Dewar  <dewar@adacore.com>
5701             Ed Schonberg  <schonberg@adacore.com>
5702
5703         * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5704         (Check_Elab_Call): A call within a protected body is never an
5705         elaboration call, and does not require checking.
5706         (Same_Elaboration_Scope): Take into account protected types for both
5707         entities.
5708         (Activate_Elaborate_All_Desirable): New procedure
5709
5710         * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate
5711         desirable
5712
5713         * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable
5714         (Elab_Error_Msg): Use -da to include internal unit links, not -de.
5715
5716         * lib-writ.ads, lib-writ.adb: 
5717         Implement new AD/ED for Elaborate_All/Elaborate desirable
5718         Use new Elaborate_All_Desirable flag in N_With_Clause node
5719
5720         * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for
5721         N_Free_Statement nodes.
5722         Define new class N_Subprogram_Instantiation
5723         Add Elaborate_Desirable flag to N_With_Clause node
5724         Add N_Delay_Statement (covering two kinds of delay)
5725
5726         * debug.adb: Introduce d.f flag for compiler
5727         Add -da switch for binder
5728
5729 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5730             Cyrille Comar  <comar@adacore.com>
5731
5732         * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity
5733         for task component, in the case of a limited aggregate. The enclosed
5734         object declaration will create it earlier. Otherwise, in the case of a
5735         nested aggregate, the object may appear in the wrong scope.
5736         (Convert_Aggr_In_Object_Decl): Create a transient scope when needed.
5737         (Gen_Assign): If the component being assigned is an array type and the
5738         expression is itself an aggregate, wrap the assignment in a block to
5739         force finalization actions on the temporary created for each row of the
5740         enclosing object.
5741         (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl
5742         structures are initialized after all discriminants are set so that
5743         they can be accessed even when their offset is dynamic.
5744
5745 2005-11-14  Robert Dewar  <dewar@adacore.com>
5746             Hristian Kirtchev  <kirtchev@adacore.com>
5747
5748         * sem_attr.adb: Implement Machine_Rounding attribute
5749         (Analyze_Access_Attribute): The access attribute may appear within an
5750         aggregate that has been expanded into a loop.
5751         (Check_Task_Prefix): Add semantic check for attribute 'Callable and
5752         'Terminated whenever the prefix is of a task interface class-wide type.
5753         (Analyze_Attribute): Add semantic check for attribute 'Identity whenever
5754         the prefix is of a task interface class-wide type.
5755
5756         * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant
5757         to avoid warnings.
5758
5759         * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function
5760         Remove pragma Inline for [Unaligned_]Valid.
5761         Add comments that Valid routines do not work for Vax_Float
5762
5763         * exp_attr.adb: Implement Machine_Rounding attribute
5764
5765         * snames.h: Add entry for Machine_Rounding attribute
5766
5767 2005-11-14  Javier Miranda  <miranda@adacore.com>
5768             Robert Dewar  <dewar@adacore.com>
5769             Hristian Kirtchev  <kirtchev@adacore.com>
5770
5771         * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size
5772         and related): For a prefix that is an explicit dereference of an
5773         access to unconstrained packed array type, annotate the dereference
5774         with an actual subtype so GIGI can make a correct size computation.
5775         (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and
5776         'Unrestricted_Access, if the designated type is an interface we
5777         add a type conversion to force the displacement of the pointer
5778         to the secondary dispatch table.
5779         Use Universal_Real instead of Long_Long_Float when we need a high
5780         precision float type for the generated code (prevents gratuitous
5781         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
5782         (Expand_N_Attribute_Reference): Add support for attribute 'Callable and
5783         'Terminated for task interface class-wide objects. Generate a call to
5784         the predefined dispatching routine used to retrieve the _task_id from
5785         a task corresponding record.
5786         (Expand_Fpt_Attribute): Major change to properly handle Vax_Float
5787
5788         * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package
5789         (Check_Dispatching_Operation): Protect the frontend againts
5790         previously detected errors.
5791
5792         * Makefile.rtl: Add new instantiations of system.fat_gen
5793
5794         * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 
5795         Change name of instantiated package for better consistency
5796         with newly added system.fat_gen instantiations.
5797
5798         * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads,
5799         s-fvagfl.ads: New files.
5800
5801 2005-11-14  Cyrille Comar  <comar@adacore.com>
5802             Thomas Quinot  <quinot@adacore.com>
5803
5804         * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an
5805         assignment of a value of a tagged type that has been rewritten to a
5806         block statement, it is known by construction that no checks are
5807         necessary for the statements within the block: analyze it with checks
5808         suppressed.
5809         (Expand_N_If_Statement): When killing a dead then-branch in an
5810         if-statement that has elsif_parts, recompute the Current_Value node
5811         for any entity whose value is known from the condition of the first
5812         elsif_part.
5813         (Expand_N_Return_Statement): When returning a mutable record, convert
5814         the return value into its actual subtype in order to help the backend
5815         to return the actual size instead of the maximum. This is another
5816         aftermath of not returning mutable records on the sec-stack anymore.
5817
5818         * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to
5819         handling of error msg for suspicious reverse range iteration.
5820         (Check_Possible_Current_Value_Condition): Move declaration from body to
5821         spec, to allow this subprogram to be called from exp_ch5.
5822
5823 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5824
5825         * exp_dist.adb (Append_Array_Traversal): Modify constrained case to
5826         generate a set of nested array aggregates instead of a single flat
5827         aggregate for multi-dimensional arrays.
5828
5829 2005-11-14  Pascal Obry  <obry@adacore.com>
5830
5831         * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned
5832         by spawnve is a process handle, no need to convert. Add a parameter
5833         close to control wether the process handle must be closed.
5834         (__gnat_waitpid): Fix implementation, the pid returned by spawnve is
5835         a process handle, not need to convert.
5836         (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec.
5837
5838         * g-expect.adb: (Kill): Document the new close parameter.
5839         (Close): Do not release the process handle in the kill there as
5840         waitpid() is using it.
5841         (Send_Signal): Release the process handle.
5842
5843 2005-11-14  Robert Dewar  <dewar@adacore.com>
5844
5845         * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we
5846         need a high precision float type for the generated code (prevents
5847         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5848         used).
5849
5850         * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we
5851         need a high precision float type for the generated code (prevents
5852         gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float)
5853         used).
5854         (Expand_Width_Attribute): In configurable run-time, the attribute is not
5855         allowed on non-static enumeration subtypes. Force a load error to emit
5856         the correct diagnostic.
5857
5858 2005-11-14  Thomas Quinot  <quinot@adacore.com>
5859             Robert Dewar  <dewar@adacore.com>
5860             Ed Schonberg  <schonberg@adacore.com>
5861
5862         * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual
5863         subtype to compute the size of the designated object at run-time,
5864         create such a subtype and store it in the Actual_Designated_Subtype
5865         attribute of the N_Free_Statement.
5866         Generate itype for classwide designated object in both cases of
5867         user-specified storage pool: specific and class-wide, not only in the
5868         specific case.
5869         Raise CE when trying to set a not null access type object to null.
5870         (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with
5871         an explicit loop, because freeze nodes make its position variable.
5872
5873         * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not
5874         null object.
5875
5876 2005-11-14  Javier Miranda  <miranda@adacore.com>
5877
5878         * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function,
5879         Build_Stream_Procedure): Add the null-excluding attribute to the first
5880         formal.
5881         This has no semantic meaning under Ada95 mode but it is a
5882         requirement under Ada05 mode.
5883
5884         * par-ch3.adb (P_Access_Definition): Addition of warning message if
5885         the null exclusion is used under Ada95 mode
5886         (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95.
5887         (P_Access_Definition): Remove assertion that forbids the use of
5888         the null-exclusion feature in Ada95.
5889
5890 2005-11-14  Robert Dewar  <dewar@adacore.com>
5891
5892         * impunit.adb: Exclude container helper units not intended for use by
5893         users.
5894
5895 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5896
5897         * freeze.adb (Freeze_Entity): For an access formal that is an access
5898         to subprogram, freeze the anonymous subprogram type at the same time,
5899         to prevent later freezing in the wrong scope, such as the enclosing
5900         subprogram body.
5901         (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_
5902         subprogram whenever available.
5903
5904 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5905
5906         PR ada/23732
5907         * gnatvsn.ads (Library_Version): Bump to 4.1
5908
5909 2005-11-14  Robert Dewar  <dewar@adacore.com>
5910
5911         * g-debpoo.adb (Set_Valid): Use Integer_Address instead of
5912         Storage_Offset to avoid wrap around causing invalid results.
5913
5914 2005-11-14  Pascal Obry  <obry@adacore.com>
5915
5916         * gnatbind.adb (Is_Cross_Compiler): New function returning True for
5917         cross-compiler.
5918         (Scan_Bind_Arg): Fail with an error message if -M option is used
5919         on a native compiler.
5920
5921 2005-11-14  Robert Dewar  <dewar@adacore.com>
5922             Vincent Celier  <celier@adacore.com>
5923
5924         * gprep.adb: Implement -C switch to scan comments
5925
5926         * scng.adb: Scan comment symbol separately if Replace_In_Comments set
5927
5928         * scans.ads: Comment updates (including new use of Tok_Comment in
5929         preprocessing)
5930
5931         * opt.ads: Add documentation for flags that are used by gprmake,
5932         currently and in the next version of gprmake.
5933         (Verbosity_Level): New variable
5934         Add Replace_In_Comments switch
5935
5936         * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm
5937         and -vm.
5938         Add /REPLACE_IN_COMMENTS for gnatprep -C switch
5939
5940 2005-11-14  Arnaud Charlet  <charlet@adacore.com>
5941
5942         * g-regpat.adb (Fail): raise Expression_Error including the diagnostic
5943         message, friendlier.
5944
5945 2005-11-14  Robert Dewar  <dewar@adacore.com>
5946
5947         * g-spitbo.adb: (Hash): Rotate by 3 instead of 1
5948
5949 2005-11-14  Doug Rupp  <rupp@adacore.com>
5950
5951         * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined.
5952
5953 2005-11-14  Robert Dewar  <dewar@adacore.com>
5954
5955         * interfac.ads: Change declarations of IEEE float types so that we no
5956         longer need a separate version of this package for VMS.
5957
5958 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
5959
5960         * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the
5961         internal entity created for the declaration of a child subprogram body
5962         with no spec as coming from source, to generate proper cross-reference
5963         information.
5964
5965 2005-11-14  Vincent Celier  <celier@adacore.com>
5966
5967         * make.adb (Compile_Sources): Change verbose message to minimum
5968         verbosity level High for "is in an Ada library", "is a read-only
5969         library" and "is an internal library",
5970         (Create_Binder_Mapping_File): Path name of ALI file for library project
5971         must include the library directory, not the object directory.
5972         (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called
5973         for new switches -vl, -vm and -vh.
5974         (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity
5975         (Check): Use minimum verbosity Medium for some Verbose_Msg calls
5976         (Compile_Sources): Do not attempt to compile if an ALI file is missing
5977         in a project that is externally built.
5978         (Compute_All_Imported_Projects): New procedure
5979         (Gnatmake): Check if importing libraries should be regenerated because
5980         at least an imported library is more recent.
5981         (Initialize): For each project compute the list of the projects it
5982         imports directly or indirectly.
5983         (Add_Library_Search_Dir): New procedure, used in place of
5984         Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
5985         put in the search paths.
5986         (Add_Source_Search_Dir): New procedure, used in place of
5987         Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are
5988         put in the search paths.
5989         (Mark_Directory): Resolve the absolute path the directory before marking
5990         it.
5991
5992         * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with
5993         call to new procedure Bad_Switch. Call Scan_Pos with new parameter
5994         Switch. Do not handle any exception.
5995         (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh
5996         so that the switch is recognized as valid.
5997         (Scan_Make_Switches): Implement new switches -vl, -vm and -vh.
5998
5999 2005-11-14  GNAT Script  <nobody@adacore.com>
6000
6001         * Make-lang.in: Makefile automatically updated
6002
6003 2005-11-14  Pascal Obry  <obry@adacore.com>
6004
6005         * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is
6006         used.
6007         (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used.
6008         In both cases the last argument was dropped.
6009
6010 2005-11-14  Eric Botcazou  <ebotcazou@adacore.com>
6011
6012         * namet.h: (Column_Numbe): New type.
6013         (Get_Column_Number): Define to sinput__get_column_number.
6014         (Instantiation): Define to sinput__instantiation.
6015         (Get_Column_Number): Declare.
6016         (Instantiation): Likewise.
6017
6018 2005-11-14  Robert Dewar  <dewar@adacore.com>
6019
6020         * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit
6021         syntax, which could cause compiler hangs.
6022
6023 2005-11-14  Vincent Celier  <celier@adacore.com>
6024
6025         * prj-ext.adb: Take into account new environment variable
6026         GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH
6027         are defined.
6028         (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH,
6029         normalize its path name, making it absolute and resolving symbolic
6030         links, and replace the original if resolved path is different.
6031
6032 2005-11-14  Vincent Celier  <celier@adacore.com>
6033
6034         * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project
6035         into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS.
6036
6037 2005-11-14  Emmanuel Briot  <briot@adacore.com>
6038
6039         * prj-pp.adb (Print): Do not output the with statement if the
6040         associated name is empty, which happens for virtual extending projects.
6041         (Print): Preserve the "extends all" attribute when printing the project.
6042
6043         * prj-tree.ads (String_Value_Of): Add comment about returned value for
6044         a virtual extending project.
6045
6046 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6047
6048         * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the
6049         rhs of an assignment even if the type is unconstrained, when the
6050         context is non-expanding.
6051         In an inlined body, if the context type is private,
6052         resolve with its full view, which must be a composite type.
6053
6054 2005-11-14  Robert Dewar  <dewar@adacore.com>
6055             Ed Schonberg  <schonberg@adacore.com>
6056
6057         * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package
6058         Do not give obsolescent warning on with of subprogram (since we
6059         diagnose calls)
6060         (Analyze_With_Clause): Add test for obsolescent package
6061         (Install_Context_Clauses): If the unit is the body of a child unit, do
6062         not install twice the private declarations of the parents, to prevent
6063         circular lists of Use_Clauses in a parent.
6064         (Implicit_With_On_Parent): Do add duplicate with_clause on parent when
6065         compiling body of child unit.
6066         Use new class N_Subprogram_Instantiation
6067         (Expand_With_Clause): If this is a private with_clause for a child unit,
6068         appearing in the context of a package declaration, then the implicit
6069         with_clauses generated for parent units are private as well.
6070         (License_Check): Do not generate message if with'ed unit is internal
6071
6072 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6073             Ed Schonberg  <schonberg@adacore.com>
6074             Thomas Quinot  <quinot@adacore.com>
6075
6076         * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose
6077         names are internal, because they will not have a corresponding partner
6078         in the actual package.
6079         (Analyze_Formal_Package): Move the setting of the formal package spec's
6080         Generic_Parent field so that it occurs prior to analyzing the package,
6081         to allow proper operation of Install_Parent_Private_Declarations.
6082         (Analyze_Package_Instantiation): Set the instantiated package entity's
6083         Package_Instantiation field.
6084         (Get_Package_Instantiation_Node): Move declaration to package spec.
6085         Retrieve the N_Package_Instantiation node when the Package_Instantiation
6086         field is present.
6087         (Check_Generic_Child_Unit): Within an inlined call, the only possible
6088         instantiation is Unchecked_Conversion, for which no parents are needed.
6089         (Inline_Instance_Body): Deinstall and record the use_clauses for all
6090         parent scopes of a scope being removed prior to inlining an instance
6091         body.
6092         (Analyze_Package_Instantiation): Do not perform front-end inlining when
6093         the current context is itself an instance within a non-instance child
6094         unit, to prevent scope stack errors.
6095         (Save_References): If the node is an aggregate that is an actual in a
6096         call, rewrite as a qualified expression to preserve some type
6097         information, to resolve possible ambiguities in the instance.
6098         (Instance_Parent_Unit): New global variable to record the ultimate
6099         parent unit associated with a generic child unit instance (associated
6100         with the existing Parent_Unit_Visible flag).
6101         (type Instance_Env): New component Instance_Parent_Unit for stacking
6102         parents recorded in the global Instance_Parent_Unit.
6103         (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env
6104         stack.
6105         (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when
6106         it's not a top-level unit, and only do this if Instance_Parent_Unit is
6107         not already set. Replace test of Is_Child_Unit with test of parent's
6108         scope against package Standard. Add comments and a ??? comment.
6109         (Remove_Parent): Revise condition for resetting Is_Immediately_Visible
6110         on a child instance parent to test that the parent equals
6111         Instance_Parent rather than simply checking that the unit is not a
6112         child unit.
6113         (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env.
6114         (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of
6115         a formal interface are ancestors of the corresponding actual.
6116         (Validate_Formal_Interface_Type): Additional legality checks.
6117         (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal
6118         interface types with ancestors.
6119         (Analyze_Formal_Package): If formal is a renaming, use renamed entity
6120         to diagnose attempts to use generic within its own declaration.
6121
6122 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6123             Javier Miranda  <miranda@adacore.com>
6124
6125         * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original
6126         discriminant.
6127         (Build_Private_Derived_Type): The entity of the created full view of the
6128         derived type does not come from source. If after installing the private
6129         declarations of the parent scope the parent is still private, use its
6130         full view to construct the full declaration of the derived type.
6131         (Build_Derived_Record_Type): Relax the condition that controls the
6132         execution of the check that verifies that the partial view and
6133         the full view agree in the set of implemented interfaces. In
6134         addition, this test now only takes into account the progenitors.
6135         (Derive_Interface_Subprograms): No need to derive subprograms
6136         of ancestors that are interfaces.
6137         (Derive_Subprograms): Remove formal No_Predefined_Prims and the
6138         associated code.
6139         Change name Is_Package to Is_Package_Or_Generic_Package
6140         (Complete_Subprograms_Derivation): Handle the case in which the full
6141         view is a transitive derivation of the ancestor of the partial view.
6142         (Process_Full_View): Rename local subprogram Find_Interface_In_
6143         Descendant to Find_Ancestor_Interface to leave the code more clear.
6144         Remove wrong code that avoids the generation of an error message
6145         when the immediate ancestor of the partial view is an interface.
6146         In addition some minor reorganization of the code has been done to
6147         leave it more clear.
6148         (Analyze_Type_Declaration): If type has previous incomplete tagged
6149         partial view, inherit properly its primitive operations.
6150         (Collect_Interfaces): Make public, for analysis of formal
6151         interfaces.
6152         (Analyze_Interface_Declaration): New procedure for use for regular and
6153         formal interface declarations.
6154         (Build_Derived_Record_Type): Add support for private types to the code
6155         that checks if a tagged type implements abstract interfaces.
6156         (Check_Aliased_Component_Type): The test applies in the spec of an
6157         instance as well.
6158         (Access_Type_Declaration): Clean up declaration of malformed type
6159         declared as an access to its own classwide type, to prevent cascaded
6160         crash.
6161         (Collect_Interfaces): For private extensions and for derived task types
6162         and derived protected types, the parent may be an interface that must
6163         be included in the interface list.
6164         (Access_Definition): If the designated type is an interface that may
6165         contain tasks, create Master_Id for it before analyzing the expression
6166         of the declaration, which may be an allocator.
6167         (Record_Type_Declaration): Set properly the interface kind, for use
6168         in allocators, the creation of master id's for task interfaces, etc.
6169
6170 2005-11-14  Javier Miranda  <miranda@adacore.com>
6171             Ed Schonberg  <schonberg@adacore.com>
6172
6173         * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be
6174         omitted in case of stream attribute subprograms.
6175         (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that
6176         appear immediately after a subprogram body, when there is no previous
6177         subprogram declaration.
6178         Change name Is_Package to Is_Package_Or_Generic_Package
6179         (Process_Formals): A non null qualifier on a non null named access
6180         type is not an error, and is a warning only if Redundant_Constructs
6181         are flagged.
6182
6183 2005-11-14  Gary Dismukes  <dismukes@adacore.com>
6184             Ed Schonberg  <schonberg@adacore.com>
6185
6186         * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure
6187         nested within Analyze_Package_Specification to install the private
6188         declarations and use clauses within each of the parent units of a
6189         package instance of a generic child package.
6190         (Analyze_Package_Specification): When entering a private part of a
6191         package associated with a generic instance or formal package, the
6192         private declarations of the parent must be installed (by calling new
6193         procedure Install_Parent_Private_Declarations).
6194         Change name Is_Package to Is_Package_Or_Generic_Package
6195         (Preserve_Full_Attributes): For a synchronized type, the corresponding
6196         record is absent in a generic context, which does not indicate a
6197         compiler error.
6198
6199 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6200
6201         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do
6202         not try to rewrite a renamed stream attribute, because the operations
6203         on the type may not have been generated.
6204         Handle properly a renaming_as_body generated for a stream operation
6205         whose default is abstract because the object type itself is abstract.
6206         (Find_Type): If the type is incomplete and appears as the prefix of a
6207         'Class reference, it is tagged, and its list of primitive operations
6208         must be initialized properly.
6209         (Chain_Use_Clauses): When chaining the use clauses that appear in the
6210         private declaration of a parent unit, prior to compiling the private
6211         part of a child unit, find on the scope stack the proper parent entity
6212         on which to link the use clause.
6213         (Note_Redundant_Use): Emit a warning when a redundant use clause is
6214         detected.
6215         (Analyze_Object_Renaming): An attribute reference is not a legal object
6216         if it is not a function call.
6217
6218 2005-11-14  Robert Dewar  <dewar@adacore.com>
6219             Ed Schonberg  <schonberg@adacore.com>
6220
6221         * sem_eval.adb: Implement d.f flag
6222         (Subtype_Statically_Match): A generic actual type has unknown
6223         discriminants when the corresponding actual has a similar partial view.
6224         If the routine is called to validate the signature of an inherited
6225         operation in a child instance, the generic actual matches the full view,
6226
6227 2005-11-14  Hristian Kirtchev  <kirtchev@adacore.com>
6228             Ed Schonberg  <schonberg@adacore.com>
6229             Robert Dewar  <dewar@adacore.com>
6230             Thomas Quinot  <quinot@adacore.com>
6231
6232         * sem_res.adb (Resolve_Call): Provide a better error message whenever
6233         a procedure call is used as a select statement trigger and is not an
6234         entry renaming or a primitive of a limited interface.
6235         (Valid_Conversion): If the operand has a single interpretation do not
6236         remove address operations.
6237         (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise
6238         statement to inhibit warning.
6239         (Resolve_Unary_Op): Do not produce a warning when
6240         processing an expression of the form -(A mod B)
6241         Use Universal_Real instead of Long_Long_Float when we need a high
6242         precision float type for the generated code (prevents gratuitous
6243         Vax_Float stuff when pragma Float_Representation (Vax_Float) used)
6244         (Resolve_Concatenation_Arg): Improve error message when argument is an
6245         ambiguous call to a function that returns an array.
6246         (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that
6247         there is an implicit operator in the given scope if we are within an
6248         instance: legality check has been performed on the generic.
6249         (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator
6250         after resolving operand, to avoid false warnings on overloaded calls.
6251
6252 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6253             Javier Miranda  <miranda@adacore.com>
6254
6255         PR ada/15604
6256
6257         * sem_type.adb (Covers): In an inlined body, a composite type matches
6258         a private type whose full view is a composite type.
6259         (Interface_Present_In_Ancestor): Protect the frontend against
6260         previously detected errors to ensure that its compilation
6261         with assertions enabled gives the same output that its
6262         compilation without assertions.
6263         (Interface_Present_In_Ancestor): Add support for private types.
6264         Change name In_Actual to In_Generic_Actual (clean up)
6265         (Disambiguate): New predicate In_Actual, to recognize expressions that
6266         appear in the renaming declaration generated for generic actuals, and
6267         which must be resolved in the outer context.
6268
6269 2005-11-14  Robert Dewar  <dewar@adacore.com>
6270             Thomas Quinot  <quinot@adacore.com>
6271             Hristian Kirtchev  <kirtchev@adacore.com>
6272             Ed Schonberg  <schonberg@adacore.com>
6273
6274         * sem_util.ads, sem_util.adb: Change name Is_Package to
6275         Is_Package_Or_Generic_Package.
6276         (Check_Obsolescent): New procedure.
6277         (Set_Is_Public): Remove obsolete junk test.
6278         (Set_Public_Status): Do not set Is_Public on an object whose declaration
6279         occurs within a handled_sequence_of_statemets.
6280         (Is_Controlling_Limited_Procedure): Factor some of the logic, account
6281         for a parameterless procedure.
6282         (Enter_Name): Recognize renaming declarations created for private
6283         component of a protected type within protected operations, so that
6284         the source name of the component can be used in the debugger.
6285
6286 2005-11-14  Ed Schonberg  <schonberg@adacore.com>
6287             Robert Dewar  <dewar@adacore.com>
6288
6289         * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals
6290         of a generic subprogram are not visible outside the body.
6291         (Set_Warning_Switch): New procedure (code to set warning mode moved
6292         here from Switch.C so that it can be shared by pragma processing.
6293         (Check_References): Special case warning for non-modified non-imported
6294         volatile objects.
6295         * par-prag.adb: Modify processing of pragma Warnings to accomodate new
6296         form with a string literal argument
6297
6298 2005-11-14  Javier Miranda  <miranda@adacore.com>
6299
6300         * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the
6301         anonymous access.
6302         (Write): Addition of "not null" to the anonymous access.
6303         (Read): Addition of "not null" to the anonymous access.
6304         (Write): Addition of "not null" to the anonymous access.
6305
6306         * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F,
6307         I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU,
6308         I_SU, I_U, I_WC): Addition of "not null" to the anonymous access.
6309         (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU,
6310         W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of
6311         "not null" to the anonymous access.
6312
6313 2005-11-14  Robert Dewar  <dewar@adacore.com>
6314
6315         * s-stoele.adb: Fix code for Address mod Storage_Offset for negative
6316         offset values
6317
6318 2005-11-14  Vincent Celier  <celier@adacore.com>
6319
6320         * switch.adb (Bad_Switch): New procedure
6321         (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate
6322         message when in error.
6323
6324         * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value,
6325         Too_Many_Output_Files): Remove declarations, no longer used.
6326         (Scan_Nat): New parameter Switch
6327         (Scan_Pos): Ditto
6328         (Bad_Switch): New procedure
6329
6330         * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;"
6331         with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith
6332         new parameter Switch. Replace "raise Too_Many_Output_Files;" with call
6333         to Osint.Fail. Do not handle any exception.
6334
6335 2005-11-14  Vincent Celier  <celier@adacore.com>
6336
6337         * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it
6338         designates a non existent directory.
6339
6340 2005-11-14  Robert Dewar  <dewar@adacore.com>
6341
6342         * xgnatugn.adb: Replace invalid membership test by 'Valid
6343
6344 2005-11-14  Vincent Celier  <celier@adacore.com>
6345
6346         * makegpr.adb (Gprmake): Do not attempt to build the global archive if
6347         there is no object directory.
6348
6349 2005-11-14  Robert Dewar  <dewar@adacore.com>
6350
6351         * usage.adb: Minor adjustment to output format, use nn instead of nnn
6352         (so that -gnateInnn does not run into next column)
6353
6354 2005-11-14  Ed Falis  <falis@adacore.com>
6355
6356         * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" =>
6357         "constrained"
6358
6359 2005-11-14  Cyrille Comar  <comar@adacore.com>
6360
6361         * s-chepoo.ads: Add comments on Dereference.
6362         Remove unnecessary inherited abstract primitives.
6363         Cosmetic cleanup.
6364
6365 2005-11-14  Robert Dewar  <dewar@adacore.com>
6366
6367         * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration
6368         node parameter, not needed, since it is available as Declaration_Node.
6369
6370 2005-11-14  Geert Bosch  <bosch@adacore.com>
6371
6372         * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and
6373         grammatically correct.
6374
6375 2005-11-14  Vincent Celier  <celier@adacore.com>
6376
6377         * s-fileio.ads: Correct spelling error in comment
6378
6379 2005-11-14  Cyrille Comar  <comar@adacore.com>
6380             Robert Dewar  <dewar@adacore.com>
6381             Vincent Celier  <celier@adacore.com>
6382             Ben Brosgol  <brosgol@adacore.com>
6383             Jose Ruiz  <ruiz@adacore.com>
6384             Pascal Obry  <obry@adacore.com>
6385
6386         * gnat_ugn.texi: 
6387         Document that -fstack-check is needed for strict compliance with the
6388         Ada 95 Reference Manual.
6389         Correct reference to VAX systems to meet HP guidelines
6390         Add documentation for new gnatmake switches -vl, -vm and -vh
6391         Replace DEC Ada by HP Ada
6392         Replace DIGITAL by HP
6393         Remove empty section on tools in compatibility section
6394         Clarify the Windows convention semantics.
6395         Document the Win32 calling convention.
6396         The Stdcall, Win32 and DLL convention are synonyms.
6397         Add a note in -gnatR description about zero size record components
6398         Note on new >= and <= warnings for -gnatwc
6399         Document that equal sign after -gnatm is optional.
6400         Note that strip is working fine on DLL built with a Library
6401         Project. The restriction apply only to DLL built with gnatdll.
6402         Update section about the way to debug a DLL.
6403         Update information about the DLL convention.
6404         Document -C switch for gnatprep
6405         Document new attribute Library_ALI_Dir
6406         Update elaboration doc to include implicit Elaborate pragmas now
6407         generated for subprogram instantiations.
6408         Document limitation on executable names that include spaces for --GCC,
6409         --GNATBIND, and --GNATLINK switches.
6410         Document that -w causes -gnatws to be added at start of gcc switches
6411
6412         * gnat_rm.texi: Document that -mieee is needed for generating infinite
6413         and NaN values in case of overflow on machines that are not fully
6414         compliant with the IEEE floating-point standard.
6415         Create a section describing the set of compiler options needed for
6416         strict compliance with the Ada 95 Reference Manual.
6417         Add documentation for pragma Obsolescent applied to a package
6418         Clarify potential issues of mixed language programs related to the
6419         I/O buffering enabling in the elaboration of the GNAT runtime.
6420         Add extra documentation for pragma Restrictions (No_Elaboration_Code)
6421         This documentation only patch adds extra documentsion for pragma
6422         Restrictions (No_Elaboration_Code), explaining why it is not possible
6423         to document this restriction in terms of allowed source constructs.
6424         Document string literal form of pragma Warnings
6425         Document new attribute Library_ALI_Dir
6426         Add documentation on stable attributes in project files that was missing
6427
6428         * gnat-style.texi: Indicate that paragraphs within a single comment
6429         should be separated by empty comment lines
6430
6431         * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and
6432         /05 respectively)
6433
6434         * bindusg.adb: Minor cleanup, put -m before -M for consistency
6435
6436 2005-11-14  Robert Dewar  <dewar@adacore.com>
6437
6438         * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb,
6439         a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb,
6440         a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads,
6441         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb,
6442         a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads,
6443         a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads,
6444         a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
6445         a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb,
6446         a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads,
6447         a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
6448         a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads,
6449         a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb,
6450         g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads,
6451         a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb,
6452         a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb,
6453         system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads,
6454         g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb,
6455         g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads,
6456         a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads,
6457         a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads,
6458         a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
6459         a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads,
6460         a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads,
6461         a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads,
6462         system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads,
6463         system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb,
6464         a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb,
6465         a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb,
6466         a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads,
6467         system-tru64.ads, system-aix.ads, system-solaris-x86.ads,
6468         system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads,
6469         s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb,
6470         system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads,
6471         system-interix.ads, system-solaris-sparc.ads,
6472         system-solaris-sparcv9.ads, s-inmaop-vms.adb,
6473         s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb,
6474         system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb,
6475         s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads,
6476         a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads,
6477         a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb,
6478         a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads,
6479         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
6480         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
6481         a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads,
6482         a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb,
6483         a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb,
6484         a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb,
6485         a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads,
6486         a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb,
6487         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
6488         a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads,
6489         a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads,
6490         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb,
6491         a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb,
6492         a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb,
6493         a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads,
6494         a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb,
6495         a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads,
6496         a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb,
6497         a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
6498         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
6499         a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads,
6500         a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb,
6501         a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb,
6502         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb,
6503         a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb,
6504         a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
6505         a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb,
6506         bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb,
6507         csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb,
6508         errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
6509         errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads,
6510         exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb,
6511         exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb,
6512         freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads,
6513         g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads,
6514         g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads,
6515         g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads,
6516         g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb,
6517         g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads,
6518         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads,
6519         g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads,
6520         g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb,
6521         gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb,
6522         gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb,
6523         g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb,
6524         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb,
6525         g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads,
6526         g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads,
6527         g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb,
6528         layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb,
6529         mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads,
6530         mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads,
6531         nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb,
6532         osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads,
6533         par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb,
6534         par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
6535         par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads,
6536         prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads,
6537         prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb,
6538         prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb,
6539         prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb,
6540         sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb,
6541         sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads,
6542         sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads,
6543         sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads,
6544         s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb,
6545         sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads,
6546         s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb,
6547         s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
6548         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb,
6549         s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads,
6550         s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb,
6551         s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
6552         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb,
6553         s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads,
6554         s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb,
6555         s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
6556         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb,
6557         s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads,
6558         s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb,
6559         s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
6560         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb,
6561         s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads,
6562         s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb,
6563         s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
6564         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb,
6565         s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads,
6566         s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads,
6567         s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb,
6568         s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads,
6569         s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads,
6570         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads,
6571         s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads,
6572         styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads,
6573         s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads,
6574         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb,
6575         s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads,
6576         s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads,
6577         s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads,
6578         s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads,
6579         s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb,
6580         s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads,
6581         s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
6582         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads,
6583         table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c,
6584         tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads,
6585         ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads,
6586         usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads,
6587         xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads,
6588         xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb,
6589         a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads,
6590         a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads,
6591         a-numaux-darwin.ads, a-numaux-darwin.adb,
6592         a-swuwha.ads, a-stunha.ads: Minor reformatting
6593
6594 2005-11-14  Robert Dewar  <dewar@adacore.com>
6595
6596         PR ada/18434
6597         * osint-m.adb: Add pragma Elaborate_All for Osint
6598
6599 2005-11-10  Eric Botcazou  <ebotcazou@adacore.com>
6600
6601         PR ada/23995
6602         * trans.c (call_to_gnu): Restore statement lost in translation.
6603
6604 2005-11-08  Eric Botcazou  <ebotcazou@adacore.com>
6605
6606         * init.c: Use the Linux-specific section for the IA-64/Linux target.
6607         (__gnat_adjust_context_for_raise): Add conditional code so that the
6608         IA-64 is also supported.
6609
6610 2005-11-03  James E Wilson  <wilson@specifix.com>
6611
6612         PR ada/23427
6613         * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in
6614         TREE_OVERFLOW check.
6615
6616 2005-09-21  Olivier Hainque  <hainque@adacore.com>
6617
6618         PR ada/22418
6619         * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects,
6620         as we create them to store a size in bits.
6621
6622 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
6623
6624         PR ada/21937
6625         PR ada/22328
6626         PR ada/22381
6627         PR ada/22383
6628         PR ada/22419
6629         PR ada/22420
6630         * utils2.c (build_return_expr): New helper function.
6631         * gigi.h (build_return_expr): Declare it.
6632         * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead
6633         of manually building the RETURN_EXPR tree.
6634         (call_to_gnu): Pass MODIFY_EXPR through build_binary_op.
6635         (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through
6636         build_binary_op for the "target pointer" case.  Use build_return_expr
6637         instead of manually building the RETURN_EXPR tree.
6638
6639 2005-09-16  Laurent GUERBY  <laurent@guerby.net>
6640
6641         PR ada/23788
6642         * s-tpinop.ads: Make this unit Preelaborate.
6643
6644 2005-09-16  Andreas Jaeger  <aj@suse.de>
6645
6646         * socket.c: Add string.h for memcpy.
6647
6648 2005-09-05  Arnaud Charlet  <charlet@adacore.com>
6649
6650         * dec-io.ads, dec-io.adb: Removed, no longer used.
6651
6652 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6653
6654         * a-calend-mingw.adb: Add call to OS_Primitives.Initialize;
6655
6656         * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
6657         s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb,
6658         s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb,
6659         s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that
6660         dependent units are Preelaborate.
6661         (Initialize): Call Interrupt_Managemeent.Initialize and
6662         OS_Primitives.Initialize to ensure proper initialization of this unit.
6663         Remove use of System.Soft_Links
6664         Make this unit Preelaborate.
6665
6666         * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
6667         s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads,
6668         s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads,
6669         s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads,
6670         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
6671         s-tratas.ads, s-tasinf.ads: Minor reformatting.
6672         Add pragma Preelaborate, since these packages are suitable for this
6673         categorization.
6674         Update comments.
6675
6676         * s-traent-vms.ads, s-intman-dummy.adb,
6677         s-taprop-dummy.adb: Make this unit Preelaborate.
6678
6679         * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads,
6680         s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb,
6681         s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads,
6682         s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb,
6683         s-intman-solaris.adb, s-intman-irix-athread.adb,
6684         s-intman-irix.adb: Mark this unit Preelaborate.
6685         (Initialize): New procedure.
6686         Update comments.
6687
6688         * s-taspri-linux.ads: Removed.
6689
6690         * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure,
6691         as done by other implementations (e.g. posix).
6692
6693         * s-taprop.ads (Timed_Delay): Update spec since the caller now is
6694         responsible for deferring abort.
6695         Mark this unit Preelaborate.
6696
6697         * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure
6698         proper initialization of the tasking run-time.
6699
6700         * s-tasdeb.ads: Mark this unit Preelaborate.
6701         (Known_Tasks): Add explicit default value to avoid elaboration code.
6702
6703         * s-inmaop-vms.adb (Elaboration code): Add call to
6704         Interrupt_Management.Initialize since the elaboration code depends on
6705         proper initialization of this package.
6706
6707         * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb,
6708         s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads,
6709         s-osprim-posix.adb: Make this unit Preelaborate.
6710
6711         * a-calend.adb: Add call to OS_Primitives.Initialize
6712
6713         * a-elchha.adb: Update use of Except.Id.Full_Name.
6714         Minor reformatting.
6715         Remove use of Ada.Exceptions.Traceback when possible, cleaner.
6716
6717         * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads:
6718         Move with clauses outside Warnings Off now that dependent units are
6719         Preelaborate.
6720         Use raise xxx with "..."; Ada 2005 form.
6721
6722         * a-taside.ads, a-taside.adb:
6723         Remove some dependencies, to make it easier to make this unit truly
6724         Preelaborate.
6725         Rewrite some code to be conformant with Preelaborate rules.
6726
6727         * g-os_lib.adb: Remove non-preelaborate code so that this unit can be
6728         marked Preelaborate in the future.
6729
6730         * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make
6731         these units Preelaborate.
6732
6733         * s-exctab.adb: Update use of Except.Id.Full_Name.
6734
6735         * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05.
6736         (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT,
6737         Set_Exc_Stack_Addr): Removed, no longer used.
6738         Remove reference to *Machine_State_Addr*, no longer needed.
6739
6740         * s-stalib.ads: Mark this unit as Preelaborate[_05].
6741         (Exception_Data): Full_Name is now a System.Address so that this unit
6742         can be made Preelaborate.
6743         Clean up/simplify code thanks to Full_Name being a System.Address.
6744         Remove obsolete pragma Suppress (All_Checks), no longer needed.
6745
6746         * s-taskin.ads, s-taskin.adb:
6747         Move with clauses outside Warnings Off now that dependent units are
6748         Preelaborate.
6749         Make this unit Preelaborate.
6750         (Initialize): New proceduure, replace elaboration code and makes the
6751         set up of the tasking run-time cleaner.
6752         (Detect_Blocking): Now a function instead of a deferred boolean, to
6753         obey Preelaborate rules.
6754
6755         * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr
6756         soft links, no longer used.
6757
6758         * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these
6759         packages are suitable for this categorization.
6760
6761         * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..."
6762         since we compile run-time sources in Ada 2005 mode.
6763         (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to
6764         avoid having s-taprop*.adb depend on s-soflin and to avoid code
6765         duplication.
6766         Remove reference to *Machine_State_Addr*, no longer needed.
6767
6768 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
6769
6770         * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb
6771         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6772         Remove reference to System.Exceptions.
6773
6774         * s-mastop-x86.adb: Removed, no longer used.
6775
6776         * s-traceb-mastop.adb: Adjust calls to Pop_Frame.
6777
6778         * a-excach.adb: Minor reformatting.
6779
6780         * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and
6781         instead fix new warnings that were hidden by this change.
6782         (AAA, ZZZ): Removed, replaced by...
6783         (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who
6784         are used instead of constants, to help make Ada.Exception truly
6785         preelaborate.
6786         (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error,
6787         Raise_Storage_Error): File is now a System.Address, to simplify code.
6788         (Elab code): Removed, no longer used.
6789         (Null_Occurrence): Remove Warnings Off and make this construct
6790         preelaborate.
6791         Remove code related to front-end zero cost exception handling, since
6792         it is no longer used.
6793         Remove -gnatL/-gnatZ switches.
6794
6795         * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg):
6796         Update use of Except.Msg.
6797
6798         * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads,
6799         freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related
6800         to front-end zero cost exception handling, since it is no longer used.
6801         Remove -gnatL/-gnatZ switches.
6802
6803         * lib-writ.ads: Minor reformatting
6804         Remove doc of UX
6805
6806         * Makefile.rtl: Remove references to s-except*, s-mastop-x86*
6807
6808         * Make-lang.in: Remove references to s-except.ads
6809
6810         * s-except.ads: Removed, no longer used.
6811
6812         * s-mastop.ads, s-mastop.adb:
6813         (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used.
6814         Remove reference to System.Exceptions.
6815
6816         * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb,
6817         switch-b.adb: Remove code related to front-end zero cost exception
6818         handling, since it is no longer used.
6819         Remove -gnatL/-gnatZ switches.
6820
6821 2005-09-01  Robert Dewar  <dewar@adacore.com>
6822             Gary Dismukes  <dismukes@adacore.com>
6823             Javier Miranda  <miranda@adacore.com>
6824
6825         * exp_ch4.adb (Expand_N_In): Replace test of expression in its own
6826         type by valid test and generate warning.
6827         (Tagged_Membership): Generate call to the run-time
6828         subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class"
6829         Change formal name Subtype_Mark to Result_Definition in several calls to
6830         Make_Function_Specification.
6831         (Expand_Allocator_Expression): Add tests for suppression of the AI-344
6832         check for proper accessibility of the operand of a class-wide allocator.
6833         The check can be left out if checks are suppressed or if the expression
6834         has a specific tagged type whose level is known to be safe.
6835
6836         * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that
6837         generates the run-time check associated with null-excluding entities.
6838         (Expand_N_Return_Statement): Add tests to determine if the accessibility
6839         check on the level of the return expression of a class-wide function
6840         can be elided. The check usually isn't needed if the expression has a
6841         specific type (unless it's a conversion or a formal parameter). Also
6842         add a test for whether accessibility checks are suppressed. Augment
6843         the comments to describe the conditions for performing the check.
6844
6845 2005-09-01  Hristian Kirtchev  <kirtchev@adacore.com>
6846             Javier Miranda  <miranda@adacore.com>
6847             Gary Dismukes  <dismukes@adacore.com>
6848             Ed Schonberg  <schonberg@adacore.com>
6849
6850         * a-tags.adb (IW_Membership): Give support to
6851         "Iface_CW_Typ in T'Class". For this purpose the functionality of this
6852         subprogram has been extended to look for the tag in the ancestors tag
6853         table.
6854         Update the structure of the GNAT Dispatch Table to reflect the
6855         additional two tables used in dispatching selects.
6856         Introduce appropriate array types and record components in
6857         Type_Specific_Data to reflect the two tables.
6858         (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in
6859         the TSD of a tag, indexed by position.
6860         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive
6861         operation kind in the TSD of a tag, indexed by position.
6862
6863         * a-tags.ads: Introduce an enumeration type to capture different
6864         primitive operation kinds. Define a constant reflecting the number of
6865         predefined primitive operations.
6866         (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index
6867         of an entry wrapper.
6868         (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of
6869         callable entity of a primitive operation.
6870
6871         * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the
6872         primitive operations used in dispatching selects for limited
6873         interfaces, limited tagged, task and protected types what implement a
6874         limited interface.
6875         (Freeze_Type): Generate the bodies of the primitive operations used in
6876         dispatching selects for limited tagged, task and protected types that
6877         implement a limited interface. Generate statements to populate the two
6878         auxiliary tables used for dispatching in select statements.
6879         (Freeze_Record_Type): Add call to initialize the dispatch table entries
6880         associated with predefined interface primitive operations.
6881         (Build_Dcheck_Function): Change Set_Subtype_Mark to
6882         Set_Result_Definition.
6883         (Build_Variant_Record_Equality): Change Subtype_Mark to
6884         Result_Definition.
6885         (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition.
6886         (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition.
6887         (Build_Assignment): Simplify the code that adds the run-time-check.
6888         (Expand_N_Object_Declaration): Code cleanup.
6889
6890         * exp_ch7.adb (Make_Clean): Select the appropriate type for locking
6891         entries when there is a protected type that implements a limited
6892         interface.
6893
6894         * exp_ch9.adb: Add package Select_Expansion_Utilities that contains
6895         common routines used in expansion of dispatching selects.
6896         (Add_Private_Declarations): Select the appropriate protection type when
6897         there is a protected type that implements a limited interface.
6898         (Build_Parameter_Block): Generate a wrapped parameter block.
6899         (Build_Protected_Subprogram_Body): Select the appropriate type for
6900         locking entries when there is a protected type that implements a
6901         limited interface.
6902         (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures
6903         classified as entry wrappers.
6904         (Expand_N_Asynchronous_Select): Add support for expansion of dispatching
6905         asynchronous selects.
6906         (Expand_N_Conditional_Entry_Call): Add support for expansion of
6907         dispatching conditional selects.
6908         (Expand_N_Protected_Type_Declaration): Select the appropriate type for
6909         protection when there is a protected type that implements limited
6910         interfaces.
6911         (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching
6912         timed selects.
6913         (Extract_Dispatching_Call): Extract the entity of the name of a
6914         dispatching call, the object parameter, actual parameters and
6915         corresponding formals.
6916         (Make_Initialize_Protection): Correct logic of protection initialization
6917         when there is a protected type that implements a limited interface.
6918         (Parameter_Block_Pack): Populate a wrapped parameter block with the
6919         values of actual parameters.
6920         (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter
6921         block and assign them to the original actual parameters.
6922
6923         * exp_ch9.ads (Subprogram_Protection_Mode): New type.
6924         (Build_Protected_Sub_Specification): Change the type and name of the
6925         last formal to account for the increased variety of protection modes.
6926
6927         * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all
6928         entities. Used to save the value of the Is_Hidden attribute when the
6929         limited-view is installed.
6930         (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change
6931         the attribute of procedures classified as entry wrappers.
6932         (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped
6933         entity of a primitive wrapper.
6934         (Write_Entity_Flags): Output the name and value of the
6935         Is_Primitive_Wrapper attribute.
6936         (Write_Field27_Name): Output the name and entity of the field Wrapped_
6937         Entity.
6938         (Underlying_Type): If we have an incomplete entity that comes from
6939         the limited view then we return the Underlying_Type of its non-limited
6940         view if it is already available.
6941         (Abstract_Interface_Alias): Flag applies to all subrogram kinds,
6942         including operators.
6943         (Write_Field26_Name): Add entry for Overridden_Operation
6944         (Overridden_Operation): New attribute of functions and procedures.
6945
6946         * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a
6947         predefined position in the dispatch table for the primitive operations
6948         used in dispatching selects.
6949         (Init_Predefined_Interface_Primitives): Remove the hardcoded number of
6950         predefined primitive operations and replace it with
6951         Default_Prim_Op_Count.
6952         (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec,
6953         Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update
6954         the names of the generated primitive operations used in dispatching
6955         selects.
6956         (Init_Predefined_Interface_Primitives): No need to inherit primitives in
6957         case of abstract interface types. They will be inherit by the objects
6958         implementing the interface.
6959         (Make_DT): There is no need to inherit the dispatch table of the
6960         ancestor interface for the elaboration of abstract interface types.
6961         The dispatch table will be inherited by the object implementing the
6962         interface.
6963         (Copy_Secondary_DTs): Add documentation.
6964         (Validate_Position): Improve this static check in case of
6965         aliased subprograms because aliased subprograms must have
6966         the same position.
6967         (Init_Predefined_Interface_Primitives): New subprogram that initializes
6968         the entries associated with predefined primitives of all the secondary
6969         dispatch tables.
6970         (Build_Anonymous_Access_Type): Removed.
6971         (Expand_Interface_Actuals): With the previous cleanup there is no need
6972         to build an anonymous access type. This allows further cleanup in the
6973         code generated by the expander.
6974         (Expand_Interface_Conversion): If the actual is an access type then
6975         build an internal function to handle the displacement. If the actual
6976         is null this function returns null because no displacement is
6977         required; otherwise performs a type conversion that will be
6978         expanded in the code that returns the value of the displaced actual.
6979         (Expand_Interface_Actuals): Avoid the generation of unnecessary type
6980         conversions that have no effect in the generated code because no
6981         displacement is required. Code cleanup; use local variables to
6982         avoid repeated calls to the subprogram directly_designated_type().
6983
6984         * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation):
6985         Classify the primitive operations used in dispatching selects as
6986         predefined.
6987         (Implements_Limited_Interface): Determine whether some type either
6988         directly implements a limited interface or extends a type that
6989         implements a limited interface.
6990         (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition.
6991         (Expand_Subtype_From_Expr): Do not build actual subtype if the
6992         expression is limited.
6993         (Find_Interface_Tag): Add code to handle class-wide types and
6994         entities from the limited-view.
6995
6996         * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for
6997         Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure,
6998         POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure,
6999         POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index,
7000         Set_Prim_Op_Kind.
7001
7002         * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type
7003         of procedure name or prefix that appears as a trigger in a triggering
7004         alternative.
7005
7006         * uintp.ads: Introduce constants Uint_11 and Uint_13.
7007
7008 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7009
7010         * s-tataat.adb, a-tasatt.adb:
7011         Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort.
7012
7013         * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved
7014         these procedures to body, and renamed Abort_Defer, Abort_Undefer.
7015         (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no
7016         longer used.
7017
7018 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7019             Jose Ruiz  <ruiz@adacore.com>
7020
7021         * s-taprop-vxworks.adb:
7022         Move with clauses outside Warnings Off now that dependent units are
7023         Preelaborate.
7024         (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper
7025         initialization of this unit.
7026         (Specific): Add new procedures Initialize and Delete so that this
7027         package can be used for VxWorks 5.x and 6.x
7028         (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide
7029         differences between VxWorks 5.x and 6.x
7030         Minor reformatting.
7031         (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by
7032         caller.
7033         Use only Preelaborate-compatible constructs.
7034
7035         * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from
7036         Primitives.Operations.
7037         (Delete, Initialize): New procedures.
7038
7039         * s-osinte-vxworks.adb: Body used to handle differences between
7040         VxWorks 5.x and 6.x
7041         (kill, Set_Time_Slice, VX_FP_TASK): New functions.
7042
7043         * s-osinte-vxworks.ads: Minor reformatting.
7044         Add VxWworks 6.x specific functions (only called from VxWorks 6 files).
7045         (VX_FP_TASK): Now a function, to handle differences between VxWorks 5
7046         and 6.
7047         (Set_Time_Slice): New function, replacing kerneltimeSlice to share code
7048         between Vxworks 5 and 6.
7049         (taskLock, taskUnlock): Removeed, no longer used.
7050
7051         * adaint.c: The wait.h header is not located in the sys directory on
7052         VxWorks when using RTPs.
7053         (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when
7054         using RTPs.
7055         (__gnat_dup): dup is available on Vxworks when using RTPs.
7056         (__gnat_dup2): dup2 is available on Vxworks when using RTPs.
7057
7058         * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs.
7059
7060         * expect.c: The wait.h header is not located in the sys directory on
7061         VxWorks when using RTPs.
7062
7063 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7064
7065         * g-soccon-vms.adb: Renamed to g-soccon-vms.ads
7066
7067         * g-soccon-vms.ads: Renamed from g-soccon-vms.adb
7068
7069         * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads,
7070         g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
7071         g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads,
7072         g-soccon-freebsd.ads: Add new constants:
7073          IP_MULTICAST_IF
7074          SO_RCVTIMEO/SO_SNDTIMEO
7075          IOV_MAX
7076
7077         * gen-soccon.c:
7078         Move all target-specific file inclusions and macro definitions to
7079         gsocket.h, in order to ensure that any C code in socket.c will see a
7080         set of constants that is consistent with the contents of g-soccon.ads.
7081
7082         * gsocket.h: Code imported from gen-soccon.c:
7083         Move all target-specific file inclusions and macro definitions to
7084         gsocket.h, in order to ensure that any C code in socket.c will see a set
7085         of constants that is consistent with the contents of g-soccon.ads.
7086         This change also makes gen-soccon self-contained (removing dependencies
7087         upon GCC internal headers).
7088
7089         * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX
7090         iovecs at a time.
7091         (To_Inet_Addr): Now a procedure instead of a function, more efficient.
7092
7093         * socket.c: Minor reformatting.
7094
7095 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7096             Thomas Quinot  <quinot@adacore.com>
7097
7098         * fname-sf.adb, mlib-tgt.ads,
7099         back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb,
7100         g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb,
7101         osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads,
7102         prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads,
7103         prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb,
7104         prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads,
7105         sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads,
7106         makegpr.adb: Remove redundant use_clauses.
7107
7108 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7109
7110         * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads,
7111         s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads,
7112         s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads,
7113         s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads,
7114         s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads,
7115         s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads,
7116         s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads,
7117         table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads,
7118         s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
7119         s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads,
7120         a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads,
7121         a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads,
7122         a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads,
7123         a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads,
7124         system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads,
7125         system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads,
7126         s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads,
7127         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
7128         s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads,
7129         s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads,
7130         s-vxwork-mips.ads, system-os2.ads, system-interix.ads,
7131         s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads,
7132         system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads,
7133         s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads,
7134         system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads,
7135         s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads,
7136         a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads,
7137         a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads,
7138         a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb,
7139         a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads,
7140         a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads,
7141         a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads,
7142         a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads,
7143         a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads,
7144         a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads,
7145         a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads,
7146         csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads,
7147         g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads,
7148         a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads,
7149         a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads,
7150         a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads,
7151         a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads,
7152         g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads,
7153         i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads,
7154         interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads,
7155         i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads,
7156         s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads,
7157         s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads,
7158         s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads,
7159         s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads,
7160         s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads,
7161         s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads,
7162         s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads,
7163         s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads,
7164         s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads,
7165         s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads,
7166         s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads,
7167         s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads,
7168         s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads,
7169         s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads,
7170         s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads,
7171         s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads,
7172         s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads,
7173         s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads,
7174         s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads,
7175         s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads,
7176         s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads,
7177         s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate
7178         and always use the no parameter form for consistency.
7179
7180         * gnat-style.texi: Document rules about Preelaborate/Pure pragmas.
7181
7182 2005-09-01  Robert Dewar  <dewar@adacore.com>
7183
7184         * binde.adb: Minor reformatting
7185         (Find_Elab_Order): Output warning if -p used with static elab order
7186
7187 2005-09-01  Robert Dewar  <dewar@adacore.com>
7188
7189         * checks.adb (Check_Needed): New procedure, deals with removing checks
7190         based on analysis of short-circuited forms. Also generates warnings for
7191         improper use of non-short-circuited forms.
7192         Code clean ups.
7193
7194 2005-09-01  Robert Dewar  <dewar@adacore.com>
7195
7196         * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks
7197         with 'Valid tests.
7198
7199 2005-09-01  Robert Dewar  <dewar@adacore.com>
7200
7201         * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet
7202         spec.
7203         Implement new insertion char < (conditional warning)
7204         * errutil.adb, erroutc.adb: Implement new insertion char <
7205         (conditional warning).
7206         * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads
7207         (Error_Msg_Warn): New variable for < insertion char.
7208         * prj-nmsc.adb: Implement new errout insertion char < (conditional
7209         warning).
7210         (Check_For_Source): Change value of Source_Id only after the current
7211         source has been dealt with.
7212
7213 2005-09-01  Robert Dewar  <dewar@adacore.com>
7214             Doug Rupp  <rupp@adacore.com>
7215
7216         * exp_attr.adb: Handle vax fpt for 'Valid attribute
7217         * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure
7218         * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb
7219         (Valid_D, Valid_F, Valid_G): New functions
7220
7221 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7222             Hristian Kirtchev  <kirtchev@adacore.com>
7223             Javier Miranda  <miranda@adacore.com>
7224
7225         * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten
7226         from object notation, the original node is unanalyzed and carries no
7227         semantic information, so that accessiblity checks must be performed on
7228         the type of the actual itself.
7229         (Expand_N_Subprogram_Declaration): Change last actual parameter for
7230         compatibility with Build_Protected_Sub_Specification.
7231         (Check_Overriding_Inherited_Interfaces): Add suport to handle
7232         overloaded primitives.
7233         (Register_Interface_DT_Entry): Use the new name of the formal
7234         the the calls to Expand_Interface_Thunk
7235
7236         * exp_dbug.ads: Augment comments on encoding of protected types to
7237         include the generation of dispatching subprograms when the type
7238         implements at least one interface.
7239
7240         * lib.ads: Extend information in Load_Stack to include whether a given
7241         load comes from a Limited_With_Clause.
7242
7243         * lib-load.adb (From_Limited_With_Chain): New predicate to determine
7244         whether a potential circularity is harmless, because it includes units
7245         loaded through a limited_with clause. Extends previous treatment which
7246         did not handle properly arbitrary combinations of limited and
7247         non-limited clauses.
7248
7249 2005-09-01  Nicolas Setton  <setton@adacore.com>
7250
7251         * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types
7252         to be encoded as typ___XBLU_lowerbound__upperbound instead of
7253         typ___XB_lowerbound__upperbound.
7254
7255 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7256
7257         * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate
7258         dummy access formal for RACW/RAS TypeCode TSS.
7259         (Build_TypeCode_Call): Do not generate dummy null access actual for
7260         calls to the TypeCode TSS.
7261
7262 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7263
7264         * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate
7265         fully qualified name, to distinguish instances with the same local name.
7266
7267         * g-souinf.ads (Enclosing_Entity): Document that entity name is now
7268         fully qualified.
7269
7270 2005-09-01  Robert Dewar  <dewar@adacore.com>
7271
7272         * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large
7273         packed arrays.
7274
7275 2005-09-01  Jerome Lambourg  <lambourg@adacore.com>
7276
7277         * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to
7278         (Free): New deallocation procedure for filter elements
7279         (Close): Deallocate any existing filter for the concerned connection
7280
7281 2005-09-01  Laurent Pautet  <pautet@adacore.com>
7282
7283         * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character
7284         position set is provided, we compute one in order to reduce the maximum
7285         length of the keys.  This computation first selects a character
7286         position between 1 and the minimum length of the keys in order to
7287         avoid reducing one of the keys to an empty string.
7288         (Initialize, Compute): When the ratio V to K is too low, the algorithm
7289         does not converge. The initialization procedure now comes with a
7290         maximum number of iterations such that when exceeded, an exception is
7291         raised in Compute. The user can initialize this ratio to another value
7292         and try again
7293         Reformating and updated headers.
7294
7295 2005-09-01  Javier Miranda  <miranda@adacore.com>
7296
7297         * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram
7298         that given an entity T creates and returns an Itype that duplicates the
7299         contents of T. The returned Itype has the null-exclusion
7300         attribute set to True, and its Etype attribute references T
7301         to keep the association between the two entities.
7302         Update copyright notice
7303
7304         * sem_aggr.adb (Check_Can_Never_Be_Null,
7305         Aggregate_Constraint_Checks, Resolve_Aggregate,
7306         Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup.
7307
7308         * sem_ch5.adb (Analyze_Assignment): Code cleanup.
7309
7310 2005-09-01  Gary Dismukes  <dismukes@adacore.com>
7311             Robert Dewar  <dewar@adacore.com>
7312             Hristian Kirtchev  <kirtchev@adacore.com>
7313
7314         * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to
7315         Result_Definition.
7316
7317         * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in
7318         function specs.
7319         Call Set_Result_Definition instead of Set_Subtype_Mark.
7320         (P_Subprogram_Specification): Add parsing of anonymous access result
7321         plus null exclusions. Call Set_Result_Definition instead of
7322         Set_Subtype_Mark.
7323
7324         * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7325         (P_Access_Type_Definition): Add parsing for an anonymous access result
7326         subtype, plus parsing for null exclusions. Call Set_Result_Definition
7327         instead of Set_Subtype_Mark.
7328
7329         * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419
7330         (Null_Exclusion_Present): Allow this flag for N_Function_Specification.
7331         (Result_Definition): New function for N_Function_Specifications.
7332         (Subtype_Mark): No longer allowed for N_Access_Function_Definition and
7333         N_Function_Specification.
7334         (Set_Null_Exclusion_Present): Allow this flag for
7335         N_Function_Specification.
7336         (Set_Result_Definition): New procedure for N_Function_Specifications.
7337         (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition
7338         and N_Function_Specification.
7339
7340         * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative,
7341         Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement.
7342         Add support for LIMITED NEW for Ada 2005 AI-419
7343         Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new
7344         syntax for anonymous access results.
7345         Replace Subtype_Mark field by Result_Definition in
7346         N_Function_Specification and N_Access_Definition specs.
7347         Add Null_Exclusion_Present to spec of N_Function_Specification.
7348         (Result_Definition): New function for N_Function_Specification and
7349         N_Access_Function_Definition.
7350         (Set_Result_Definition): New procedure for N_Function_Specification and
7351         N_Access_Function_Definition.
7352
7353         * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to
7354         Result_Definition for cases of N_Access_Function_Definition and
7355         N_Function_Specification.
7356         Print "not null" if Null_Exclusion_Present on N_Function_Specification.
7357
7358 2005-09-01  Vincent Celier  <celier@adacore.com>
7359
7360         * lib-writ.adb: Update Copyright notice
7361         (Write_With_Lines): On platforms where file names are case-insensitive,
7362         record the file names in lower case.
7363         (Write_ALI): For D lines, on platforms where file names are
7364         case-insensitive, record the file names in lower case.
7365
7366 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7367             Emmanuel Briot  <briot@adacore.com>
7368
7369         * lib-xref.adb (Output_Overridden_Op): Display information on
7370         overridden operation.
7371
7372         * lib-xref.ads: Add documentation on overridden operations.
7373
7374         * ali.ads (Xref_Entity_Record): Add support for storing the overriding
7375         information.
7376
7377         * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the
7378         overriding entity information.
7379
7380 2005-09-01  Vincent Celier  <celier@adacore.com>
7381
7382         * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources,
7383         including those that are inherited.
7384
7385 2005-09-01  Robert Dewar  <dewar@adacore.com>
7386
7387         * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config]
7388
7389         * par-prag.adb: Implement new pragma Debug_Policy
7390
7391         * sem_prag.adb Implement new pragma Debug_Policy
7392         (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit
7393         Component_Size attribute specification. Give warning for ignored pragma
7394         Pack.
7395
7396         * snames.h, snames.ads, snames.adb: Introduce entries in
7397         Preset_Names for Name_Disp_Asynchronous_Select,
7398         Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind,
7399         Name_Disp_Timed_Select.
7400         New pragma Debug_Policy
7401
7402         * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode
7403         explicitly.
7404         Switch -gnata also sets Debug_Pragmas_Enabled
7405
7406         * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to
7407         handle an explicit -gnata when compiling predefined files.
7408
7409 2005-09-01  Vincent Celier  <celier@adacore.com>
7410
7411         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object
7412         directories of projects that have no Ada sources.
7413
7414 2005-09-01  Robert Dewar  <dewar@adacore.com>
7415
7416         * scng.adb (Check_End_Of_Line): Count characters, rather than bytes
7417         (makes a difference for wide characters)
7418
7419         * widechar.adb, widechar.ads:
7420         Add Wide_Char_Byte_Count feature to count chars vs bytes
7421
7422 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7423             Ed Schonberg  <schonberg@adacore.com>
7424             Robert Dewar  <dewar@adacore.com>
7425
7426         * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal
7427         'Address attribute reference with an overloaded prefix, use the
7428         location of the prefix (not the location of the attribute reference) as
7429         the error location.
7430         (Analyze_Attribute, case 'Size): The name of an enumeration literal, or
7431         a function renaming thereof, is a valid prefix for 'Size (where it is
7432         intepreted as a function call).
7433         (Statically_Denotes_Entity): New predicate to determine whether the
7434         prefix of an array attribute can be considered static.
7435
7436         PR ada/9087
7437         (Eval_Attr): Fix failure to evaluate Component_Size for
7438         unconstrained arrays (resulted in wrong value in packed case, since
7439         back end cannot handle this case)
7440
7441 2005-09-01  Robert Dewar  <dewar@adacore.com>
7442
7443         * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to
7444         error msgs for most common cases.
7445         Use new errout insertion char < (conditional warning)
7446
7447 2005-09-01  Javier Miranda  <miranda@adacore.com>
7448             Ed Schonberg  <schonberg@adacore.com>
7449
7450         * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to
7451         become local to the whole package.
7452         (Install_Limited_Withed_Unit): Instead of unchaining real entities if
7453         the package was already analyzed the new algorithm "replaces" the
7454         real entities by the shadow ones. This is required to ensure that
7455         the order of these entities in the homonym chains does not change;
7456         otherwise we can have undefined references at linking time because
7457         in case of conflicts the external name of the entities will have
7458         a suffix that depends on the order of the entities in the chain.
7459         (Remove_Limited_With_Clause): Complementary code that completes the
7460         new algorithm and replaces the shadow entities by the real ones.
7461         (Install_Limited_Withed_Unit): When unchaining entities before the
7462         installation of the shadow entities, only regular entities of the
7463         public part must be taken into account. This is required to
7464         keep this routine in synch with the work done by Remove_Limited_
7465         With_Clause
7466         (Install_Limited_With_Clause): Introduce implicit limited_with_clause
7467         even if unit is analyzed, because the analysis of the unit is
7468         idempotent in any case, and the limited view of the unit may have to
7469         be installed for proper visibility.
7470         (Expand_Limited_With_Clause): Even if the unit in the implicit
7471         with_clause has been analyzed already, a limited view of the package
7472         must be built for the current context, if it does not exist yet.
7473
7474 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7475             Javier Miranda  <miranda@adacore.com>
7476             Gary Dismukes  <dismukes@adacore.com>
7477
7478         * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the
7479         defining entity for the instance body, make a new defining identifier
7480         rather than copying the entity of the spec, to prevent accidental
7481         sharing of the entity list.
7482         (Check_Private_View): When exchanging views of private types, build the
7483         list of exchanged views as a stack, to ensure that on exit the exchanges
7484         are undone in the proper order.
7485         (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation):
7486         Restore the compilation environment in case of instantiation_error.
7487         (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity
7488         for an anonymous access result.
7489         (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition
7490         (Formal_Entity): Handle properly the case of a formal package that
7491         denotes a generic package renaming.
7492
7493 2005-09-01  Thomas Quinot  <quinot@adacore.com>
7494
7495         * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the
7496         clause if the array aggregate is surrounded by parentheses.
7497
7498 2005-09-01  Cyrille Comar  <comar@adacore.com>
7499             Gary Dismukes  <dismukes@adacore.com>
7500             Ed Schonberg  <schonberg@adacore.com>
7501             Javier Miranda  <miranda@adacore.com>
7502
7503         * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the
7504         underlying type
7505         to check if a type is Constrained in cases related to code generation
7506         (rather than semantic checking) since otherwise we do not generate
7507         similar code for mutable private types depending if their
7508         discriminants are visible or not.
7509         (Check_Abstract_Overriding): Do not complain about failure to override
7510         the primitive operations used in dispatching selects since they will
7511         always be overriden at the freeze point of the type.
7512         (Access_Definition): Separate out handling for resetting the scope
7513         of an anonymous access function result type. Retrieve the scope
7514         of the associated function rather than using Current_Scope, which
7515         does not have a consistent value (depends on whether we're in the
7516         middle of analyzing formal parameters). Add ??? comment about
7517         finding a cleaner way to handle the special cases of scope setting.
7518         (Process_Incomplete_Dependents): A protected operation is never a
7519         dispatching operation (only its wrapper may be).
7520         (Build_Derived_Record_Type): In case of tagged private types that
7521         implement interfaces add derivation of predefined primitive
7522         operations.
7523         (Derive_Subprograms): Replace the Is_Interface_Derivation parameter
7524         by two parameters that are used in case of derivation from abstract
7525         interface types: No_Predefined_Prims is used to avoid the derivation
7526         of predefined primitives from the interface, and Predefined
7527         Prims_Only is used to complete the derivation predefined primitives
7528         in case of private tagged types implementing interfaces.
7529         Fix typo in comments
7530         (Find_Interface_In_Descendant): Protect the frontend against
7531         wrong code with large circularity chains.
7532         (Is_Private_Overriding): Add support for entities overriding interface
7533         subprograms. The test failed because Entities associated with overriden
7534         interface subprograms are always marked as hidden (and used to build
7535         the secondary dispatch table); in this case the overriden entity is
7536         available through the field abstract_interface_alias (cf. override_
7537         dispatching_operation)
7538         (Access_Definition): Set the scope of the type to Current_Scope for the
7539         case of a function with an anonymous access result type.
7540         (Access_Subprogram_Declaration): Handle creation of the type entity for
7541         an access-to-function type with an anonymous access result.
7542         (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition
7543         in handling for N_Access_Function_Definition.
7544         (Analyze_Subtype_Declaration): Modify the text of error message.
7545         (Derived_Type_Declaration): Modify the text of error message.
7546         (Process_Subtype): Modify the text of error message plus cleanup
7547         of one redundant error message.
7548         (Analyze_Component_Declaration): Code cleanup.
7549         (Analyze_Object_Declaration): Code cleanup.
7550         (Analyze_Subtype_Declaration): Propagate the null-exclusion
7551         attribute in case of access types. Code cleanup.
7552         (Array_Type_Declaration): Code cleanup.
7553         (Process_Discriminants): Create the new null-excluding itype
7554         if required. Code cleanup.
7555         (Process_Subtype): Create the new null-excluding itype if
7556         required. Code cleanup.
7557         (Build_Derived_Record_Type): Code cleanup to avoid calling
7558         twice the subprogram derive_subprograms in case of private
7559         types that implement interfaces. In this particular case the
7560         subprogram Complete_Subprograms_Derivation already does the
7561         job associated with the second call.
7562
7563         * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit
7564         conversion to the full view when generating an operation for a
7565         discriminant whose type may currently be private.
7566
7567 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7568             Javier Miranda  <miranda@adacore.com>
7569
7570         * sem_ch4.adb (Transform_Object_Operation): In a context off the form
7571         V (Obj.F), the rewriting does not involve the indexed component, but
7572         only the selected component itself.
7573         Do not apply the transformation if the analyzed node is an actual of a
7574         call to another subprogram.
7575         (Complete_Object_Operation): Retain the entity of the
7576         dispatching operation in the selector of the rewritten node. The
7577         entity will be used in the expansion of dispatching selects.
7578         (Analyze_One_Call): Improve location of the error message associated
7579         with interface.
7580         (Analyze_Selected_Component): No need to resolve prefix when it is a
7581         function call, resolution is done when parent node is resolved, as
7582         usual.
7583         (Analyze_One_Call): Add a flag to suppress analysis of the first actual,
7584         when attempting to resolve a call transformed from its object notation.
7585         (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies
7586         of the argument list for each interpretation of the operation.
7587         (Try_Object_Operation): The designated type of an access parameter may
7588         be an incomplete type obtained through a limited_with clause, in which
7589         case the primitive operations of the type are retrieved from its full
7590         view.
7591         (Analyze_Call): If this is an indirect call, and the return type of the
7592         access_to_subprogram is incomplete, use its full view if available.
7593
7594 2005-09-01  Javier Miranda  <miranda@adacore.com>
7595             Gary Dismukes  <dismukes@adacore.com>
7596
7597         * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous
7598         access types the null-exclusion and access-to-constant attributes must
7599         also match.
7600         (Analyze_Return_Statement): When the result type is an anonymous access
7601         type, apply a conversion of the return expression to the access type
7602         to ensure that appropriate accessibility checks are performed.
7603         (Analyze_Return_Type): For the case of an anonymous access result type,
7604         generate the Itype and set Is_Local_Anonymous_Access on the type.
7605         Add ??? placeholder for check to disallow returning a limited object
7606         in Ada 2005 unless it's an aggregate or a result of a function call.
7607         Change calls from Subtype_Mark to Result_Definition.
7608         (Analyze_Subprogram_Body): Change formal Subtype_Mark to
7609         Result_Definition in call to Make_Function_Specification.
7610         (Build_Body_To_Inline): Change Set_Subtype_Mark to
7611         Set_Result_Definition.
7612         (Make_Inequality_Operator): Change formal Subtype_Mark to
7613         Result_Definition in call to Make_Function_Specification.
7614         (Process_Formals): Create the new null-excluding itype if required.
7615         (New_Overloaded_Entity): For an entity overriding an interface primitive
7616         check if the entity also covers other abstract subprograms in the same
7617         scope. This is required to handle the general case, that is, overriding
7618         other interface primitives and overriding abstract subprograms inherited
7619         from some abstract ancestor type.
7620         (New_Overloaded_Entity): For an overriding entity that comes from
7621         source, note the operation that it overrides.
7622         (Check_Conformance, Type_Conformant): Addition of one new formal
7623         to skip controlling formals in the analysis. This is used to
7624         handle overloading of abstract interfaces.
7625         (Base_Types_Match): Add missing case for types imported from
7626         limited-with clauses
7627         (New_Overloaded_Entity): Add barrier to protect the use of
7628         the "alias" attribute.
7629
7630 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7631
7632         * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration,
7633         verify that the procedure and the entry are mode conformant.
7634         (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed
7635         as a different operator, which is often a cut-and-paste error.
7636
7637 2005-09-01  Javier Miranda  <miranda@adacore.com>
7638             Ed Schonberg  <schonberg@adacore.com>
7639
7640         * sem_disp.adb (Check_Controlling_Formals): Anonymous access types
7641         used in controlling parameters exclude null because it is necessary to
7642         read the tag to dispatch, and null has no tag.
7643         (Override_Dispatching_Operation): If the previous operation is inherited
7644         from an interface, it becomes hidden  and does not participate in later
7645         name resolution.
7646
7647 2005-09-01  Javier Miranda  <miranda@adacore.com>
7648             Ed Schonberg  <schonberg@adacore.com>
7649             Gary Dismukes  <dismukes@adacore.com>
7650
7651         * sem_res.adb (Resolve_Membership_Op): In case of the membership test
7652         "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend;
7653         the expander will generate the corresponding run-time check to evaluate
7654         the expression.
7655         (Resolve_Call): Check for legal type of procedure name or prefix that
7656         appears as a trigger in a triggering alternative.
7657         (Valid_Conversion): If expression is ambiguous and the context involves
7658         an extension of System, remove System.Address interpretations.
7659         (Resolve_Qualified_Expression): Reject the case of a specific-type
7660         qualification applied to a class-wide argument. Enhance comment
7661         to explain checking of Original_Node.
7662         (Resolve_Type_Conversion): The location of the error message was not
7663         general enough to handle the general case and hence it has been removed.
7664         In addition, this patch improves the text of the message.
7665         (Resolve_Type_Conversion): Add missing support for access to interface
7666         types.
7667         (Resolve_Type_Conversion): If the target is a class-wide interface type,
7668         do not expand if the expression is the actual in a call, because proper
7669         expansion will take place when the call itself is expanded.
7670         (Resolve_Allocator): If the context is an unchecked conversion, the
7671         allocator inherits its storage pool, if any, from the target type of
7672         the conversion.
7673
7674 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7675             Javier Miranda  <miranda@adacore.com>
7676
7677         * sem_type.adb (Add_One_Interp): If a candidate operation is an
7678         inherited interface operation that has an implementation, use the
7679         implementation to avoid spurious ambiguities.
7680         (Interface_Present_In_Ancestor): In case of concurrent types we can't
7681         use the Corresponding_Record_Typ attribute to look for the interface
7682         because it is set by the expander (and hence it is not always
7683         available). For this reason we traverse the list of interfaces
7684         (available in the parent of the concurrent type).
7685         (Interface_Present_In_Ancestor): Handle entities from the limited view
7686
7687 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7688
7689         * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags
7690         from the list of required components.
7691         (Is_Controlling_Limited_Procedure): Determine whether an entity is a
7692         primitive procedure of a limited interface with a controlling first
7693         parameter.
7694         (Is_Renamed_Entry): Determine whether an entry is a procedure renaming
7695         of an entry.
7696         (Safe_To_Capture_Value): A value (such as non_null) is not safe to
7697         capture if it is generated in the second operand of a short-circuit
7698         operation.
7699         Do not capture values for variables with address clauses.
7700         (Is_Object_Reference): Treat a function call as an object reference only
7701         if its type is not Standard_Void_Type.
7702
7703 2005-09-01  Ed Schonberg  <schonberg@adacore.com>
7704
7705         * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied
7706         to a variable that is statically known to be constant.
7707
7708 2005-09-01  Geert Bosch  <bosch@adacore.com>
7709             Robert Dewar  <dewar@adacore.com>
7710
7711         * ttypef.ads (VAXDF_Safe_First): Use correct value for constant.
7712         (VAXGF_Safe_First): Idem.
7713
7714 2005-09-01  Robert Dewar  <dewar@adacore.com>
7715             Arnaud Charlet  <charlet@adacore.com>
7716
7717         * g-dirope.ads: Minor reformatting
7718         Document that bounds of result of Base_Name match the input index
7719         positions.
7720         Add documentation on environment variable syntax for Expand_Path
7721
7722         * gnat_ugn.texi: Update documentation to include mention of -m switches
7723         Document new treatment of wide characters in max line length
7724         style check.
7725         Remove -gnatL/-gnatZ switches, no longer used.
7726         Add note on pragmas Assertion_Policy and Debug_Policy in discussion
7727         of -gnata switch.
7728
7729         * gnat_rm.texi: Add doc for two argument form of pragma
7730         Float_Representation.
7731         Add documentation for pragma No_Strict_Aliasing
7732         Add note that explicit component clause overrides pragma Pack.
7733         Add documentation of pragma Debug_Policy
7734
7735 2005-09-01  Matthew Heaney  <heaney@adacore.com>
7736
7737         * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb,
7738         a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb,
7739         a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads,
7740         a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest
7741         draft (Draft 13, August 2005) of Ada Amendment 1.
7742
7743 2005-09-01  Arnaud Charlet  <charlet@adacore.com>
7744
7745         * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM.
7746         Note that the platform-specific version of g-soccon.ads for VMS is now
7747         named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it
7748         really is a package spec).
7749         Replace s-taspri-linux.ads by s-taspri-posix.ads
7750         Remove references to s-mastop-x86.adb
7751
7752         * system-vxworks-xscale.ads: Removed, no longer used.
7753         * s-vxwork-xscale.ads: Removed, no longer used.
7754
7755 2005-09-01  Robert Dewar  <dewar@adacore.com>
7756
7757         * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb,
7758         g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads,
7759         g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb,
7760         exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads,
7761         g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads,
7762         g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb,
7763         g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
7764         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb,
7765         g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads,
7766         g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads,
7767         sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb,
7768         a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads,
7769         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads,
7770         a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads,
7771         a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb,
7772         a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb,
7773         g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads,
7774         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads,
7775         g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb,
7776         i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb,
7777         a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting
7778
7779 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7780
7781         PR ada/23187
7782         * adaint.c
7783         (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined.
7784
7785 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7786             Doug Rupp  <rupp@adacore.com>
7787
7788         * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings
7789         when needed.
7790         (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep
7791         this code in the GNAT run-time.
7792
7793         * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions.
7794
7795         PR ada/21053
7796         * init.c (__gnat_error_handler [many]): Mark "msg" as const
7797         (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused
7798
7799         (__gnat_inside_elab_final_code): Moved here from
7800         Standard_Library and only defined for the compiler.
7801         __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL.
7802         (__gnat_inum_to_ivec): Do not define this function on VxWorks when
7803         using RTPs because directly vectored Interrupt routines are not
7804         supported on this configuration.
7805         (getpid): Do not redefine this function on VxWorks when using RTPs
7806         because this primitive is well supported by the RTP libraries.
7807         (copy_msg): Correct the code that checks for buffer overflow.
7808         Discovered during code reading.
7809
7810 2005-08-29  Olivier Hainque  <hainque@adacore.com>
7811
7812         * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for
7813         a library level mutable variable with an initializer, tell
7814         build_allocator to ignore the initializer's size. It may not be large
7815         enough for all the values that might be assigned to the variable later
7816         on.
7817
7818 2005-08-29  Arnaud Charlet  <charlet@adacore.com>
7819             Eric Botcazou  <ebotcazou@adacore.com>
7820
7821         * trans.c: Protect < in error msg with quote
7822         Replace GCC_ZCX by Back_End_Exceptions.
7823         (addressable_p) <COMPONENT_REF>: Also return 1 if the field
7824         has been sufficiently aligned in the record.
7825
7826 2005-08-15  James E. Wilson  <wilson@specifix.com>
7827
7828         * system-linux-alpha.ads: Change ia64 to alpha.
7829
7830 2005-08-01  Kazu Hirata  <kazu@codesourcery.com>
7831
7832         * decl.c, utils.c: Fix comment typos.
7833
7834 2005-07-29  Kazu Hirata  <kazu@codesourcery.com>
7835
7836         * decl.c, init.c, initialize.c: Fix comment typos.
7837
7838 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
7839
7840         Make CONSTRUCTOR use VEC to store initializers.
7841         * decl.c (gnat_to_gnu_entity): Update to cope with VEC in
7842         CONSTRUCTOR_ELTS.
7843         * trans.c (extract_values): Likewise.
7844         * utils.c (convert, remove_conversions): Likewise.
7845         * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op,
7846         gnat_build_constructor): Likewise.
7847
7848 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7849
7850         * decl.c (components_to_record): Use DECL_FCONTEXT instead of
7851         DECL_SECTION_NAME.
7852         (compare_field_bitpos): Likewise.
7853
7854 2005-07-09  Andrew Pinski  <pinskia@physics.uc.edu>
7855
7856         * utils.c (create_var_decl): Only set DECL_COMMON on
7857         VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on
7858         VAR_OR_FUNCTION_DECL_P.
7859
7860 2005-07-08  Daniel Berlin  <dberlin@dberlin.org>
7861
7862         * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is
7863         removed.
7864
7865 2005-07-07  Pascal Obry  <obry@adacore.com>
7866
7867         * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the
7868         returned type on Windows.
7869
7870         * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this
7871         routine.
7872
7873         * g-socket.adb (Inet_Addr): Check for empty Image and raises an
7874         exception in this case.
7875         Simplify the code as "Image (Image'Range)" = "Image".
7876
7877 2005-07-07  Vincent Celier  <celier@adacore.com>
7878
7879         * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put
7880         the destructor/constructor attributes for <lib>final/<lib>init.
7881
7882         * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C
7883
7884 2005-07-07  Eric Botcazou  <ebotcazou@adacore.com>
7885
7886         * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding
7887         type if the parameter is not passed by copy but reference by default.
7888
7889 2005-07-07  Javier Miranda  <miranda@adacore.com>
7890
7891         * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type):
7892         Reimplementation of the support for abstract interface types in order
7893         to leave the code more clear and easy to maintain.
7894
7895         * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for
7896         abstract interface types in order to leave the code clearer and easier
7897         to maintain.
7898
7899         * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality
7900         is now implemented by the new subprogram Fill_Secondary_DT_Entry.
7901         (Fill_Secondary_DT_Entry): Generate the code necessary to fill the
7902         appropriate entry of the secondary dispatch table.
7903         (Make_DT): Add code to inherit the secondary dispatch tables of
7904         the ancestors.
7905
7906         * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of
7907         implementing both functionalities by means of a common routine, each
7908         routine has its own code.
7909
7910 2005-07-07  Javier Miranda  <miranda@adacore.com>
7911
7912         * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types.
7913
7914         * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete
7915         types:
7916         --
7917           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
7918         --
7919
7920         * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong
7921         use of tag incomplete types.
7922
7923         * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to
7924         give support to tagged incomplete types.
7925
7926         * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the
7927         expression is a discriminant reference and its type is private, as can
7928         happen within a stream operation for a mutable record, use the full
7929         view of the type to resolve the case alternatives.
7930         (Analyze_Assignment): Check wrong dereference of incomplete types.
7931
7932         * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete
7933         types.
7934
7935         * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged
7936         incomplete types.
7937
7938         * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to
7939         N_Incomplete_Type_Declaration nodes.
7940
7941         * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute
7942         Tag_Present to give support to tagged incomplete types:
7943         --
7944           type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED];
7945         --
7946
7947 2005-07-07  Olivier Hainque  <hainque@adacore.com>
7948
7949         PR ada/22301
7950
7951         * raise.c: Only include unwind.h if IN_RTS, and provide dummy type
7952         definitions for the Unwind wrappers in the compiler case.
7953
7954 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
7955             Javier Miranda  <miranda@adacore.com>
7956
7957         * par-load.adb (Load): If a child unit is loaded through a limited_with
7958         clause, each parent must be loaded as a limited unit as well.
7959
7960         * sem_ch10.adb (Previous_Withed_Unit): Better name for
7961         Check_Withed_Unit. Return true if there is a previous with_clause for
7962         this unit, whether limited or not.
7963         (Expand_Limited_With_Clause): Do not generate a limited_with_clause on
7964         the current unit.
7965         (Is_Visible_Through_Renamings): New local subprogram of install_limited
7966         _withed_unit that checks if some package installed through normal with
7967         clauses has a renaming declaration of package whose limited-view is
7968         ready to be installed. This enforces the check of the rule 10.1.2 (21/2)
7969         of the current Draft document for Ada 2005.
7970         (Analyze_Context): Complete the list of compilation units that
7971         are allowed to contain limited-with clauses. It also contains
7972         checks that were previously done by Install_Limited_Context_Clauses.
7973         This makes the code more clear and easy to maintain.
7974         (Expand_Limited_With_Clause) It is now a local subprogram of
7975         Install_Limited_Context_Clauses, and contains the code that adds
7976         the implicit limited-with clauses for parents of child units.
7977         This functionality was prevously done by Analyze_Context.
7978
7979         * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of
7980         incomplete type.
7981
7982         * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has
7983         been erroneously named in a limited-with clause of its own context.
7984         In this case the error has been previously notified by Analyze_Context.
7985
7986 2005-07-07  Ed Schonberg  <schonberg@adacore.com>
7987
7988         * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a
7989         generic package that contains local declarations with the same name.
7990         (Analyze_Object_Renaming): Check wrong renaming of incomplete type.
7991
7992 2005-07-07  Bernard Banner  <banner@adacore.com>
7993
7994         * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on
7995         ia64 platform only on platforms that you the GCC unwind library
7996         rather than the system unwind library.
7997
7998 2005-07-07  Thomas Quinot  <quinot@adacore.com>
7999
8000         * expect.c: Minor reformatting
8001
8002 2005-07-07  Sergey Rybin  <rybin@adacore.com>
8003
8004         * vms_data.ads: Add VMS qualifiers for new gnatpp switch
8005         --no-separate-is
8006
8007         * gnat_ugn.texi: Add description for new gnatpp option
8008         (--no-separate-is)
8009
8010 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8011
8012         * g-expect-vms.adb, g-expect.ads, g-expect.adb
8013         (Get_Command_Output): New subprogram to launch a process and get its
8014         standard output as a string.
8015
8016 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8017             Olivier Hainque  <hainque@adacore.com>
8018
8019         * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to
8020         fetch a code-range descriptor associated with the machine state. On
8021         failure set the machine state's PC to 0; on success, pass the
8022         descriptor to exc_virtual_unwind.
8023
8024         * init.c (Tru64 section): New function __gnat_set_code_loc.
8025
8026 2005-07-04  Vincent Celier  <celier@adacore.com>
8027
8028         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
8029         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
8030         mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library):
8031         Remove all auto-initialization code, as this is now done through the
8032         constructor mechanism.
8033
8034         * adaint.h, adaint.c (__gnat_binder_supports_auto_init,
8035         __gnat_sals_init_using_constructors): New functions.
8036
8037         * bindgen.adb (Gen_Output_File_Ada): Generate pragmas
8038         Linker_Constructor and Linker_Destructor when switch -a is used.
8039
8040         * bindusg.adb: Add line for new switch -a
8041
8042         * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function
8043         (Gnatbind): When switch -a is used, check if it is allowed
8044
8045         * switch-b.adb (Scan_Binder_Switches): Process new switch -a
8046
8047 2005-07-04  Joel Brobecker  <brobecker@adacore.com>
8048
8049         * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array.
8050         This prevents us from hitting a limitation during the debug info
8051         generation when using stabs.
8052         (Prims_Ptr): Likewise.
8053
8054 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8055             Ed Schonberg  <schonberg@adacore.com>
8056             Javier Miranda  <miranda@adacore.com>
8057
8058         * checks.adb (Null_Exclusion_Static_Checks): In the case of
8059         N_Object_Declaration, only perform the checks if the Object_Definition
8060         is not an Access_Definition.
8061
8062         * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case
8063         where the parent of an the access definition is an N_Object_Declaration
8064         when determining the Associated_Node_For_Itype and scope of an
8065         anonymous access-to-subprogram type.
8066
8067         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the
8068         Corresponding_Spec on the body created for a null procedure. Add ???
8069         comment. Remove New_Copy_Tree call on body argument to
8070         Set_Body_To_Inline.
8071
8072         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with
8073         discriminants, use the type of the actual as well, because the
8074         discriminants may be read by the called subprogram.
8075
8076         * sem_ch3.adb (Access_Type_Declaration): If the designated type is an
8077         access type we do not need to handle non-limited views.
8078         (Build_Derived_Record_Type): Additional check to check that in case of
8079         private types, interfaces are only allowed in private extensions.
8080
8081 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8082
8083         * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case.
8084         <Pragma_Linker_Destructor>: Likewise.
8085
8086         * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and
8087         Pragma_Linker_Destructor.
8088
8089         * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and
8090         ATTR_LINK_DESTRUCTOR.
8091         (static_ctors, static_dtors): New variables.
8092
8093         * misc.c (gnat_expand_body): Output current function as constructor
8094         and destructor if requested.
8095
8096         * par-prag.adb: Add processing for pragma Linker_Constructor and
8097         Linker_Destructor.
8098
8099         * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function
8100         extracted from Check_Interrupt_Or_Attach_Handler.
8101         (Check_Interrupt_Or_Attach_Handler): Invoke it.
8102         Implement pragma Linker_Constructor and Linker_Destructor with the
8103         help of Find_Unique_Parameterless_Procedure.
8104         Replace Name_Alias with Name_Target for pragma Linker_Alias.
8105
8106         * snames.h, snames.ads, snames.adb:
8107         Add Name_Linker_Constructor and Name_Linker_Destructor.
8108         Add Pragma_Linker_Constructor and Pragma_Linker_Destructor.
8109         * snames.adb: Remove Name_Alias.
8110
8111         * trans.c: Include cgraph.h.
8112         (build_global_cdtor): New function.
8113         (Compilation_Unit_to_gnu): Build global constructor and destructor if
8114         needed.
8115         (tree_transform) <N_Identifier>: Substitute renaming of view-conversions
8116         of objects too.
8117         (addressable_p) <COMPONENT_REF>: Unconditionally test
8118         DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms.
8119
8120         * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the
8121         variable if it is external.
8122
8123         (static_ctors, static_dtors): New global variables.
8124         (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case.
8125         <ATTR_LINK_DESTRUCTOR>: Likewise.
8126         (end_subprog_body): Chain function as constructor and destructor
8127         if requested.
8128
8129         * exp_util.adb (Force_Evaluation): Unconditionally invoke
8130         Remove_Side_Effects with Variable_Ref set to true.
8131         (Remove_Side_Effects): Handle scalar types first. Use a renaming
8132         for non-scalar types even if Variable_Ref is true and for class-wide
8133         expressions.
8134
8135 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8136
8137         * exp_attr.adb (Mod): Evaluate condition expression with checks off,
8138         to prevent spurious warnings.
8139
8140 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8141
8142         * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for
8143         Itypes. Itypes are really unexpected there.
8144         (Build_TypeCode_Function): Generalise special processing for Itypes to
8145         handle the case of numeric implicit base types as well as enumerated
8146         ones.
8147
8148 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8149
8150         * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is
8151         controlled, indicate the expected type of the dereference that is
8152         created for the call to Deep_Finalize, to prevent spurious errors when
8153         the designated type is private and completed with a derivation from
8154         another private type.
8155
8156 2005-07-04  Vincent Celier  <celier@adacore.com>
8157
8158         * make.adb (Change_To_Object_Directory): When unable to change the
8159         current dir to the object directory, output the full path of the
8160         directory.
8161
8162 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8163
8164         * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb
8165
8166         * indepsw-linux.adb: Replace by...
8167
8168         * indepsw-gnu.adb: ...this new file
8169
8170 2005-07-04  Vincent Celier  <celier@adacore.com>
8171
8172         * mlib-prj.adb (Auto_Initialize): New constant String
8173         (SALs_Use_Constructors): New Boolean function
8174         (Build_Library): Call gnatbind with Auto_Initialize switch when
8175         SALs_Use_Constructors returns True.
8176
8177         * mlib-tgt.ads: Minor reformatting
8178
8179         * mlib-utl.ads: Minor reformatting
8180
8181         * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag
8182
8183 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8184
8185         * par-ch9.adb (P_Task, P_Protected): Indicate that single task and
8186         single protected declarations can have an interface list.
8187         (P_Entry_Declaration): Add handler for Error_Resync, which can be raised
8188         with seriously malformed entry declarations, and lead to compilation
8189         abandoned messages.
8190
8191 2005-07-04  Javier Miranda  <miranda@adacore.com>
8192
8193         * par-load.adb: Load the context items in two rounds.
8194
8195 2005-07-04  Robert Dewar  <dewar@adacore.com>
8196
8197         * scng.adb: Do not consider Mod used as an attribute to be a keyword
8198
8199 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8200             Javier Miranda  <miranda@adacore.com>
8201
8202         * sem_ch10.adb (Build_Limited_Views): A type declared with a private
8203         type extension needs a limited view.
8204         Remove previous restriction on private types available through the
8205         limited-view (only tagged private types were previously allowed).
8206         (Install_Withed_Unit): In the code that implements the
8207         legality rule given in AI-377, exclude a child unit with the name
8208         Standard, because it is a homonym of the Standard environment package.
8209
8210 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8211
8212         * sem_ch4.adb (Transform_Object_Operation): For an actual that is an
8213         overloaded function call, carry interpretations from the original tree
8214         to the copy.
8215
8216 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8217
8218         * sem_ch6.adb (Conforming_Types): If the types are anonymous access
8219         types check whether some designated type is a limited view, and use
8220         the non-limited view if available.
8221
8222 2005-07-04  Gary Dismukes  <dismukes@adacore.com>
8223
8224         * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant
8225         constraint of full view of a private view T1 if present, when T2 is a
8226         discriminated full view.
8227
8228 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8229
8230         * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an
8231         actual that is a view conversion of a bit packed array reference.
8232
8233 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8234
8235         * sem_type.adb (Covers): Verify that Corresponding_Record_Type is
8236         present before checking whether an interface type covers a synchronized
8237         type.
8238
8239 2005-07-04  Ed Schonberg  <schonberg@adacore.com>
8240
8241         * sem_util.adb (Is_Object_Reference): An indexed or selected component
8242         whose prefix is an implicit dereference is an object reference. Removes
8243         spurious errors when compiling with -gnatc.
8244
8245 2005-07-04  Robert Dewar  <dewar@adacore.com>
8246
8247         PR ada/22039
8248
8249         * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix
8250
8251 2005-07-04  Matthew Gingell  <gingell@adacore.com>
8252
8253         * tracebak.c: Enable tracebacks on ia64 platforms
8254
8255 2005-07-04  Vincent Celier  <celier@adacore.com>
8256
8257         * vms_conv.adb (Initialize): Allow multiple ALI files to be given to
8258         the GNAT BIND command, as gnatbind accepts multiples ALI files with
8259         the -L or -n switches.
8260
8261 2005-07-04  Vincent Celier  <celier@adacore.com>
8262
8263         * makegpr.adb (Build_Global_Archive): Make sure the list of sources is
8264         correctly computed and the main project data is not modified while
8265         doing so.
8266         (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler
8267         (Choose_C_Plus_Plus_Link_Process): Do not generate shell script
8268         c++linker as this does not work on some platforms.
8269
8270 2005-07-04  Matthew Heaney  <heaney@adacore.com>
8271
8272         * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index
8273         was changed.
8274         * a-coinve.adb: Perform constraint checks explicitly.
8275
8276 2005-07-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8277             Thomas Quinot  <quinot@adacore.com>
8278
8279         * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency.
8280         new target gen-soccon.
8281
8282 2005-07-04  Robert Dewar  <dewar@adacore.com>
8283
8284         * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting
8285
8286 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8287
8288         * g-socket.ads (Check_Selector): Minor rewording of comment.
8289
8290 2005-07-04  Vincent Celier  <celier@adacore.com>
8291
8292         * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol=
8293
8294 2005-07-04  Thomas Quinot  <quinot@adacore.com>
8295
8296         * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO.
8297
8298 2005-07-04  Sergey Rybin  <rybin@adacore.com>
8299
8300         * gnat_ugn.texi: Add description of --eol gnatpp option
8301
8302 2005-07-04  Eric Botcazou  <ebotcazou@adacore.com>
8303             Thomas Quinot  <quinot@adacore.com>
8304
8305         * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate
8306         if the user wants all calls of a subprogram to be flagged,
8307         independently of whether they are made from within the same unit or
8308         another unit.
8309         Mention restriction for pragma Linker_Alias on some platforms.
8310         Document pragma Linker_Constructor and Linker_Destructor.
8311         Rewrite documentation of Weak_External, Linker_Section and
8312         Linker_Alias pragmas.
8313
8314 2005-07-04  Arnaud Charlet  <charlet@adacore.com>
8315
8316         * s-stausa.ads, s-stausa.adb: New files.
8317
8318 2005-06-30  Kelley Cook
8319
8320         * all files:  Update FSF address in copyright headers.
8321         * gen-soccon.co (main): Output new FSF address in generated files.
8322
8323 2005-06-28  Paul Brook  <paul@codesourcery.com>
8324
8325         * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc.
8326
8327 2005-06-14  Olivier Hainque  <hainque@adacore.com>
8328             Eric Botcazou  <ebotcazou@adacore.com>
8329
8330         * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to
8331         exc_unwind, now that we are generating proper .debug_frame output for
8332         that target.
8333
8334         * tracebak.c: Remove the mips-irix section, as we are now using the
8335         s-mastop based unwinder again.
8336         Under SPARC/Solaris, take into account the stack bias to compute the
8337         frame offset.  The stack bias is 0 for the V8 ABI and 2047 for the V9
8338         ABI.
8339
8340 2005-06-14  Doug Rupp  <rupp@adacore.com>
8341
8342         * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb
8343
8344         * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files
8345
8346 2005-06-14  Pascal Obry  <obry@adacore.com>
8347
8348         * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb,
8349         a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads,
8350         a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in
8351         package name).
8352
8353         * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads,
8354         a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb,
8355         a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads,
8356         a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads,
8357         a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads,
8358         a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads,
8359         a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb,
8360         s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads,
8361         s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads,
8362         s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb,
8363         s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb,
8364         s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads,
8365         s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads,
8366         s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb,
8367         s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb,
8368         s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads,
8369         s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads,
8370         s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb,
8371         s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads,
8372         s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb,
8373         s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb,
8374         s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb,
8375         s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb,
8376         s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads,
8377         s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb,
8378         s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb,
8379         s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb,
8380         s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb,
8381         s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb,
8382         s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb,
8383         a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb,
8384         a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb,
8385         a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads,
8386         a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb,
8387         a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads,
8388         a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads,
8389         a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
8390         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads,
8391         a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb,
8392         a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
8393         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads,
8394         a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads,
8395         a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb,
8396         a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads,
8397         a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads,
8398         a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb,
8399         a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
8400         a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb,
8401         a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb,
8402         a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb,
8403         a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb,
8404         a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb,
8405         a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads,
8406         a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
8407         a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb,
8408         a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb,
8409         a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads,
8410         dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb,
8411         g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
8412         g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads,
8413         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb,
8414         g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
8415         g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb,
8416         gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb,
8417         g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb,
8418         i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads,
8419         s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads,
8420         s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb,
8421         s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads,
8422         s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
8423         s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb,
8424         s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads,
8425         s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb,
8426         s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
8427         s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb,
8428         s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads,
8429         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb,
8430         s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads,
8431         s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb,
8432         s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
8433         s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads
8434         s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads,
8435         s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb,
8436         s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
8437         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb,
8438         s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads,
8439         s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb,
8440         s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
8441         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb,
8442         s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads,
8443         s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb,
8444         s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
8445         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb,
8446         s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads,
8447         s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb,
8448         s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
8449         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb,
8450         s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads,
8451         s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb,
8452         s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
8453         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb,
8454         s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads,
8455         s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb,
8456         s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
8457         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb,
8458         s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads,
8459         s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb,
8460         s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb,
8461         s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
8462         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb,
8463         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
8464         s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb,
8465         s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
8466         s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads,
8467         s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads,
8468         s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb,
8469         s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads,
8470         s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
8471         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads,
8472         s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads,
8473         s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb,
8474         s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb,
8475         s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads,
8476         a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads,
8477         a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads,
8478         a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb,
8479         a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb,
8480         a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads,
8481         a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb,
8482         a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb,
8483         a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb,
8484         a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style.
8485         "GNU Ada" to GNAT, use proper casing for RUN-TIME.
8486
8487 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
8488             Arnaud Charlet  <charlet@adacore.com>
8489
8490         * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no
8491         longer protected objects. They have been replaced by lower-level
8492         suspension objects made up by a mutex and a condition variable (or
8493         their equivalent given a particular OS) plus some internal data to
8494         reflect the state of the suspension object.
8495         (Initialize, Finalize): Add this initialization procedure for
8496         Suspension_Object, which is a controlled type.
8497         (Finalize): Add the finalization procedure for Suspension_Object,
8498         which is a controlled type.
8499
8500         * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of
8501         Ada.Synchronous_Task_Control because there is no longer a need for a
8502         VxWorks specific version of this package. Target dependencies
8503         has been moved to System.Task_Primitives.Operations.
8504
8505         * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no
8506         longer needed.
8507         (InitializeCriticalSection, EnterCriticalSection,
8508         LeaveCriticalSection, DeleteCriticalSection): Replace the type
8509         pCriticalSection by an anonymous access type so that we avoid problems
8510         of accessibility to local objects.
8511
8512         * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb,
8513         s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb,
8514         s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb,
8515         s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb,
8516         s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer
8517         set the environment task mask here.
8518         (Current_State): Add this function that returns the state of the
8519         suspension object.
8520         (Set_False): Add this procedure that sets the state of the suspension
8521         object to False.
8522         (Set_True): Add this procedure that sets the state of the suspension
8523         object to True, releasing the task that was suspended, if any.
8524         (Suspend_Until_True): Add this procedure that blocks the calling task
8525         until the state of the object is True. Program_Error is raised if
8526         another task is already waiting on that suspension object.
8527         (Initialize): Add this procedure for initializing the suspension
8528         object. It initializes the mutex and the condition variable which are
8529         used for synchronization and queuing, and it sets the internal state
8530         to False.
8531         (Finalize): Add this procedure for finalizing the suspension object,
8532         destroying the mutex and the condition variable.
8533
8534         * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads,
8535         s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads,
8536         s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads,
8537         s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object
8538         which provides a low-level abstraction (using operating system
8539         primitives) for Ada.Synchronous_Task_Control.
8540         This object is made up by a mutex (for ensuring mutual exclusion), a
8541         condition variable (for queuing threads until the condition is
8542         signaled), a Boolean (State) indicating whether the object is open,
8543         and a Boolean (Waiting) reflecting whether there is a task already
8544         suspended on this object.
8545
8546         * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb,
8547         s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb,
8548         s-intman-vms.ads, s-intman-mingw.adb,
8549         (Initialize_Interrupts): Removed, no longer used.
8550
8551         * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb,
8552         (Setup_Interrupt_Mask): New procedure.
8553
8554         * s-intman-vxworks.ads, s-intman-vxworks.adb:  Update comments.
8555
8556         * s-inmaop.ads (Setup_Interrupt_Mask): New procedure
8557
8558         * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that
8559         this is no longer done in the body of s-taprop
8560         (Server_Task): Explicitely test for Pending_Action in case
8561         System.Parameters.No_Abort is True.
8562
8563         * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this
8564         is no longer done in the body of s-taprop
8565
8566 2005-06-14  Robert Dewar  <dewar@adacore.com>
8567
8568         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
8569         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
8570         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
8571         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
8572         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
8573         system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads,
8574         system-os2.ads, system-interix.ads, system-solaris-sparc.ads,
8575         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
8576         system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads,
8577         system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads,
8578         system-linux-hppa.ads, system-vms_64.ads,
8579         system-vxworks-alpha.ads: Minor comment update for
8580         AI-362 (unit is Pure).
8581
8582         * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions
8583         Add pragma Pure_05 for AI-362
8584         Make remaining conversion functions obsolescent in Ada 95
8585
8586         * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8587         Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode
8588         Add entries for a-wichun and a-zchuni
8589         Add a-widcha a-zchara for AI-395
8590         Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines
8591
8592         * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha
8593         Add entries for a-wichun.o and a-zchuni.o
8594         Entries for a-widcha.o and a-zchara.o
8595         Add entry for a-chacon.o
8596
8597         * a-ztenau.adb: Add with of Ada.Characters.Conversions
8598
8599         * a-chacon.ads, a-chacon.adb: New files.
8600
8601         * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow
8602         categorization violations.
8603
8604         * a-strmap.ads: Add pragma Pure_05 for AI-362
8605         * a-strmap.ads: Add note on implicit categorization for AI-362
8606
8607         * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362
8608
8609         * par-prag.adb: Dummy entry for pragma Persistent_BSS
8610         Set Ada_Version_Explicit, for implementation of AI-362
8611         Add processing for pragma Pure_05 and Preelaborate_05
8612         Add entry for Assertion_Policy pragma
8613
8614         * sem.adb: Make sure predefined units are compiled with GNAT_Mode true
8615         when needed for proper processing of categorization stuff
8616
8617         * sem_cat.adb:
8618         For several cases, make errors in preealborate units warnings,
8619         instead of errors, if GNAT_Mode is set. For AI-362.
8620
8621         * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in
8622         preelaborate unit is now warning if in GNAT mode
8623
8624         * s-stoele.ads: Document AI-362 for pragma preelaborate
8625
8626 2005-06-14  Doug Rupp  <rupp@adacore.com>
8627
8628         * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads,
8629         s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads:
8630         Default_Exception_Msg_Max_Length: new parameter.
8631
8632         * a-except.ads: (Exception_Msg_Max_Length): Set to
8633         System.Parameters.Default_Exception_Msg_Max_Length
8634         Add pragma Preelaborate_05 for AI-362
8635         Add warnings off to allow categorization violations for AI-362
8636
8637 2005-06-14  Vincent Celier  <celier@adacore.com>
8638
8639         * gnatsym.adb: Adapt to modification of package Symbols: procedure
8640         Process is now in package Processing.
8641
8642         * symbols.ads, symbols.adb:
8643         (Processing): New package, containing procedure Process
8644
8645         * symbols-vms-alpha.adb:
8646         Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb
8647
8648         * symbols-vms.adb, symbols-processing-vms-alpha.adb,
8649         symbols-processing-vms-ia64.adb: New files.
8650
8651 2005-06-14  Pascal Obry  <obry@adacore.com>
8652
8653         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous
8654         implementation. This new version generates the proper DllMain routine
8655         to initialize the SAL. The DllMain is generated in Ada and compiled
8656         before being added as option to the library build command.
8657
8658 2005-06-14  Doug Rupp  <rupp@adacore.com>
8659             Pascal Obry  <obry@adacore.com>
8660
8661         * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in
8662         call to decc$translate_vms.
8663         (__gnat_locate_regular_file): Check if the path_val contains quotes. We
8664         need to remove those quotes before catenating the filename.
8665         (__gnat_locate_exec_on_path): improvements to the Win32 section:
8666         * avoid allocating the memory twice for better efficiency;
8667         * allocate 32K buffer for environment expansion as suggested by MSDN;
8668         * prepend ".;" to the path so that current directory is searched too.
8669
8670 2005-06-14  Robert Dewar  <dewar@adacore.com>
8671
8672         * a-except.adb (Exception_Identity): return Null_Id for null occurrence
8673         instead of raising CE (AI-241)
8674         Add warnings off to allow categorization violations for AI-362
8675
8676 2005-06-14  Robert Dewar  <dewar@adacore.com>
8677
8678         * ali-util.adb, gnatbind.adb: Remove references to
8679         Force_RM_Elaboration_Order.
8680
8681         * switch-b.adb: Remove recognition of -f switch
8682
8683 2005-06-14  Pascal Obry  <obry@adacore.com>
8684
8685         * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New
8686         implementation which is slightly more efficient.
8687
8688 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
8689             Javier Miranda  <miranda@adacore.com>
8690             Ed Schonberg  <schonberg@adacore.com>
8691             Hristian Kirtchev  <kirtchev@adacore.com>
8692
8693         * exp_ch4.adb (Expand_Allocator_Expression): When an initialized
8694         allocator's designated type is a class-wide type, and compiling for
8695         Ada 2005, emit a run-time check that the accessibility level of the
8696         type given in the allocator's expression is not deeper than the level
8697         of the allocator's access type.
8698
8699         (Tagged_Membership): Modified to gives support to abstract interface
8700         types.
8701
8702         * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component
8703         Access_Level.
8704         (Descendant_Tag): New predefined function
8705         (Is_Descendant_At_Same_Level): New predefined function
8706         (Get_Access_Level): New private function
8707         (Set_Access_Level): New private procedure
8708         (IW_Membership): New function. Given the tag of an object and the tag
8709         associated with an interface, evaluate if the object implements the
8710         interface.
8711         (Register_Interface_Tag): New procedure used to initialize the table of
8712         interfaces used by the IW_Membership function.
8713         (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue
8714         of the dispatch table.
8715         (Inherit_TSD): Modified to copy the table of ancestor tags plus the
8716         table of interfaces of the parent.
8717         (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag.
8718         (External_Tag): Raise Tag_Error if the passed tag equals No_Tag.
8719         (Parent_Tag): Return No_Tag in the case of a root-level tagged type,
8720         and raise Tag_Error if the passed tag equalis No_Tag, to conform with
8721         Ada 2005 semantics for the new predefined function.
8722
8723         * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate
8724         call to Descendant_Tag rather than Internal_Tag.
8725         (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that
8726         the accessibility level of the attribute's Item parameter is not deeper
8727         than the level of the attribute's prefix type. Tag_Error is raised if
8728         the check fails. The check is only emitted for Ada_05.
8729         (Find_Stream_Subprogram): If a TSS exists on the type itself for the
8730         requested stream attribute, use it.
8731         (Expand_N_Attribute_Reference): If the designated type is an interface
8732         then rewrite the referenced object as a conversion to force the
8733         displacement of the pointer to the secondary dispatch table.
8734         (Expand_N_Attribute_Reference, case 'Constrained): Return false if this
8735         is a dereference of an object with a constrained partial view.
8736
8737         * exp_ch5.adb (Expand_N_Return_Statement): When a function's result
8738         type is a class-wide type, emit a run-time check that the accessibility
8739         level of the returned object is not deeper than the level of the
8740         function's master (only when compiling for Ada 2005).
8741
8742         * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc,
8743         Action_Nb_Arg): Add entries for new Get_Access_Level and
8744         Set_Access_Level routines in these tables.
8745         (Make_DT): Generate a call to set the accessibility level of the
8746         tagged type in its TSD.
8747         (Make_DT): Code cleanup. The functionality of generating all the
8748         secondary dispatch tables has been moved to freeze_record_type.
8749         (Make_Abstract_Interface_DT): Minor code cleanup.
8750         (Set_All_DT_Position): Code cleanup. As part of the code cleanup
8751         this subprogram implements a new algorithm that provides the
8752         same functionality and it is more clear in case of primitives
8753         associated with abstract interfaces.
8754         (Set_All_Interfaces_DTC_Entity): Removed. As part of the code
8755         clean up, the functionality of this subprogram is now provided
8756         by Set_All_DT_Position.
8757         (Write_DT): New subprogram: a debugging procedure designed to be called
8758         within gdb to display the dispatch tables associated with a tagged
8759         type.
8760         (Collect_All_Interfaces): New subprogram that collects the whole list
8761         of interfaces that are directly or indirectly implemented by a tagged
8762         type.
8763         (Default_Prim_Op_Position): New subprogram that returns the fixed
8764         position in the dispatch table of the default primitive operations.
8765         (Expand_Interface_Actuals): New subprogram to generate code that
8766         displaces all the actuals corresponding to class-wide interfaces to
8767         reference the interface tag of the actual object.
8768         (Expand_Interface_Conversion): New subprogram. Reference the base of
8769         the object to give access to the interface tag associated with the
8770         secondary dispatch table.
8771         (Expand_Interface_Thunk): New subprogram that generates the code of the
8772         thunk. This is required for compatibility with the C+ ABI.
8773         (Make_Abstract_Interface_DT): New subprogram that generate the
8774         declarations for the secondary dispatch tables associated with an
8775         abstract interface.
8776         (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity
8777         attribute for each primitive operation covering interface subprograms
8778         (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position):
8779         These subprograms were upgraded to give support to abstract interfaces
8780
8781         * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag,
8782         RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and
8783         RE_Set_Access_Level.
8784         (RE_Unit_Table): Add entries for new Ada.Tags operations.
8785         Add support to call the followig new run-time subprograms:
8786         IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top
8787
8788         * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to
8789         match its full declaration when both have an access definition with
8790         statically matching designated subtypes.
8791         (Analyze_Component_Declaration): Delete commented out code that was
8792         incorrectly setting the scope of an anonymous access component's type.
8793         (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of
8794         an access discriminant when the containing type is nonlimited.
8795         (Make_Incomplete_Type_Declaration): Create an incomplete type
8796         declaration for a record type that includes self-referential access
8797         components.
8798         (Check_Anonymous_Access_Types): Before full analysis of a record type
8799         declaration, create anonymous access types for each self-referential
8800         access component.
8801         (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that
8802         an access component in this context is a Local_Anonymous_Access, for
8803         proper accessibility checks.
8804         (Access_Definition): Set properly the scope of the anonymous access type
8805         created for a stand-alone access object.
8806         (Find_Type_Of_Object): An object declaration may be given with an access
8807         definition.
8808         (Complete_Subprograms_Derivation): New subprogram used to complete
8809         type derivation of private tagged types implementing interfaces.
8810         In this case some interface primitives may have been overriden
8811         with the partial-view and, instead of re-calculating them, they
8812         are included in the list of primitive operations of the full-view.
8813         (Build_Derived_Record_Type): Modified to give support to private
8814         types implemening interfaces.
8815         (Access_Definition): Reject ALL on anonymous access types.
8816         (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged
8817         type derivation to occur at a deeper accessibility level than the
8818         parent type.
8819         For the case of derivation within a generic body however, disallow the
8820         derivation if the derived type has an ancestor that is a formal type
8821         declared in the formal part of an enclosing generic.
8822         (Analyze_Object_Declaration): For protected objects, remove the check
8823         that they cannot contain interrupt handlers if not declared at library
8824         level.
8825         (Add_Interface_Tag_Components): New subprogram to add the tag components
8826         corresponding to all the abstract interface types implemented by a
8827         record type or a derived record type.
8828         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
8829         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
8830         Process_Full_View, Record_Type_Declaration): Modified to give
8831         support to abstract interface types
8832         (Collect_Interfaces): New subprogram that collects the list of
8833         interfaces that are not already implemented by the ancestors
8834         (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately
8835         when partial view has no discriminants and full view has defaults.
8836         (Constrain_Access): Reject a constraint on a general access type
8837         if the discriminants of the designated type have defaults.
8838         (Access_Subprogram_Declaration): Associate the Itype node with the inner
8839         full-type declaration or subprogram spec. This is required to handle
8840         nested anonymous declarations.
8841         (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type,
8842         Derived_Type_Declaration, Find_Type_Name, Inherit_Components,
8843         Process_Full_View, Record_Type_Declaration): Modified to give
8844         support to abstract interface types
8845         (Derive_Subprograms): Addition of a new formal to indicate if
8846         we are in the case of an abstact-interface derivation
8847         (Find_Type_Of_Subtype_Indic): Moved from the body of the package
8848         to the specification because it is requied to analyze all the
8849         identifiers found in a list of interfaces
8850
8851         * debug.adb: Complete documentation of flag "-gnatdZ"
8852
8853         * exp_ch3.adb: Implement config version of persistent_bss pragma
8854         (Check_Stream_Attributes): Use Stream_Attribute_Available instead of
8855         testing for TSS presence to properly enforce visibility rules.
8856         (Freeze_Record_Type): Code cleanup. Modified to call the subprogram
8857         Make_Abstract_Interfaces_DT to generate the secondary tables
8858         associated with abstract interfaces.
8859         (Build_Init_Procedure): Modified to initialize all the tags
8860         corresponding.
8861         (Component_Needs_Simple_Initialization): Similar to other tags,
8862         interface tags do not need initialization.
8863         (Freeze_Record_Type): Modified to give support to abstract interface
8864         types.
8865         (Expand_N_Object_Declaration): Do not generate an initialization for
8866         a scalar temporary marked as internal.
8867
8868         * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an
8869         in-out parameter that is a component in an initialization procedure,
8870         whose constraint might depend on discriminants, and that may be
8871         misaligned because of packing or representation clauses.
8872         (Is_Legal_Copy): New predicate to determine whether a possibly
8873         misaligned in-out actual can actually be passed by copy/return. This
8874         is an error in case the type is by_reference, and a warning if this is
8875         the consequence of a DEC import pragma on the subprogram.
8876         (Expand_Call, Freeze_Subprogram): Modified to give support to abstract
8877         interface types
8878         (Expand_Inlined_Call): Mark temporary generated for the return value as
8879         internal, so that no useless scalar normalization is generated for it.
8880         (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to
8881         null procedure can always be inlined.
8882         (Expand_N_Subprogram_Declaration): If this is the declaration of a null
8883         procedure, generate an explicit empty body for it.
8884
8885         * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram.
8886         Given a type implementing an interface, returns the corresponding
8887         access_disp_table value.
8888         (Find_Interface_Tag): New subprogram. Given a type implementing an
8889         interface, returns the record component containing the tag of the
8890         interface.
8891         (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the
8892         previous ones that return the corresponding tag and access_disp_table
8893         entities.
8894         (Is_Predefined_Dispatching_Operation): Determines if a subprogram
8895         is a predefined primitive operation.
8896         (Expand_Subtype_From_Expr): If the expression is a selected component
8897         within an initialization procedure, compute its actual subtype, because
8898         the component may depend on the discriminants of the enclosing record.
8899
8900         * i-cpp.ads, i-cpp.adb:
8901         This package has been left available for compatibility with previous
8902         versions of the frontend. As part of the new layout this is now a
8903         dummy package that uses declarations available at a-tags.ads
8904
8905         * par-ch3.adb (P_Identifier_Declarations): Give an error for use of
8906         "constant access" and "aliased [constant] access" when not compiling
8907         with -gnat05.
8908         Suppress Ada 2005 keyword warning if -gnatwY used
8909         (P_Identifier_Declarations): Add support for object declarations with
8910         access definitions.
8911         (Private_Extension_Declaration): Complete the documentation
8912         (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list
8913         attribute in case of private extension declaration
8914         (P_Type_Declaration): Mark as "abstract" the type declarations
8915         corresponding with protected, synchronized and task interfaces
8916         (P_Declarative_Items): "not" and "overriding" are overriding indicators
8917         for a subprogram or instance declaration.
8918
8919         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an
8920         instantiation that is a dispatching operation has controlling access
8921         parameters that are null excluding.
8922         Save and restore Ada_Version_Explicit, for implementation of AI-362
8923         (Validate_Derived_Type_Instance): Add check for abstract interface
8924         types.
8925         (Analyze_Formal_Package): Establish Instantiation source for the copy of
8926         the generic that is created to represent the formal package.
8927         (Analyze_Package_Instantiation): Instantiate body immediately if the
8928         package is a predefined unit that contains inlined subprograms, and
8929         we are compiling for a Configurable_Run_Time.
8930         (Instantiate_Formal_Subprogram): Indicate that null default subprogram
8931         If the program has a null default, generate an empty body for it.
8932
8933         * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update
8934         error message condition, null procedures are correctly detected now.
8935         (New_Overloaded_Entity): Bypass trivial overriding indicator check
8936         for subprograms in the context of protected types. Instead, the
8937         indicator is examined in Sem_Ch9 while analysing the subprogram
8938         declaration.
8939         (Check_Overriding_Indicator): Check consistency of overriding indicator
8940         on subprogram stubs as well.
8941         (Analyze_Subprogram_Declaration): Diagnose null procedures declared at
8942         the library level.
8943         (Analize_Subprogram_Specification): When analyzing a subprogram in which
8944         the type of the first formal is a concurrent type, replace this type
8945         by the corresponding record type.
8946         (Analyze_Subprogram_Body): Undo the previous work.
8947         (Analyze_Procedure_Call): If the call has the form Object.Op, the
8948         analysis of the prefix ends up analyzing the call itself, after which
8949         we are done.
8950         (Has_Interface_Formals): New subprogram subsidiary to analyze
8951         subprogram_specification that returns true if some non
8952         class-wide interface subprogram is found
8953         (New_Overloaded_Entity): Modified to give support to abstract
8954         interface types
8955         (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous
8956         access to subprograms must be recursive.
8957         (Is_Unchecked_Conversion): Improve the test that recognizes
8958         instantiations of Unchecked_Conversion, and allows them in bodies that
8959         are to be inlined by the front-end. When the body comes from an
8960         instantiation, a reference to Unchecked_Conversion will be an
8961         Expanded_Name, even though the body has not been analyzed yet.
8962         Replace Is_Overriding and Not_Overriding in subprogram_indication with
8963         Must_Override and Must_Not_Override, to better express intent of AI.
8964         (Analyze_Subprogram_Body): If an overriding indicator is given, check
8965         that it is consistent with the overrinding status of the subprogram
8966         at this point.
8967         (Analyze_Subprogram_Declaration): Indicate that a null procedure is
8968         always inlined.
8969         If the subprogram is a null procedure, indicate that it does not need
8970         a completion.
8971
8972         * sem_disp.adb (Check_Controlling_Type): Give support to entities
8973         available through limited-with clauses.
8974         (Check_Dispatching_Operation): A stub acts like a body, and therefore is
8975         allowed as the last primitive of a tagged type if it has no previous
8976         spec.
8977         (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified
8978         to give support to abstract interface types
8979
8980         * sem_res.adb (Valid_Conversion): Perform an accessibility level check
8981         in the case where the target type is an anonymous access type of an
8982         object or component (that is, when Is_Local_Anonymous_Access is true).
8983         Prevent the special checks for conversions of access discriminants in
8984         the case where the discriminant belongs to a nonlimited type, since
8985         such discriminants have their accessibility level defined in the same
8986         way as a normal component of an anonymous access type.
8987         (Resolve_Allocator): When an allocator's designated type is a class-wide
8988         type, check that the accessibility level of type given in the
8989         allocator's expression or subtype indication is not statically deeper
8990         than the level of the allocator's access type.
8991         (Check_Discriminant_Use): Diagnose discriminant given by an expanded
8992         name in a discriminant constraint of a record component.
8993         (Resolve_Explicit_Dereference): Do not check whether the type is
8994         incomplete when the dereference is a use of an access discriminant in
8995         an initialization procedure.
8996         (Resolve_Type_Conversion): Handle conversions to abstract interface
8997         types.
8998         (Valid_Tagged_Conversion): The conversion of a tagged type to an
8999         abstract interface type is always valid.
9000         (Valid_Conversion): Modified to give support to abstract interface types
9001         (Resolve_Actuals): Enable full error reporting on view conversions
9002         between unrelated by_reference array types.
9003         The rule for view conversions of arrays with aliased components is
9004         weakened in Ada 2005.
9005         Call to obsolescent subprogram is now considered to be a violation of
9006         pragma Restrictions (No_Obsolescent_Features).
9007         (Check_Direct_Boolean_Operator): If the boolean operation has been
9008         constant-folded, there is nothing to check.
9009         (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer
9010         check on possible violation of restriction No_Direct_Boolean_Operators
9011         until after expansion of operands, to prevent spurious errors when
9012         operation is constant-folded.
9013
9014         * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type,
9015         Has_Compatible_Type): Modified to give support to abstract interface
9016         types.
9017         (Interface_Present_In_Ancestor): New function to theck if some ancestor
9018         of a given type implements a given interface
9019
9020         * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose
9021         prefix is a parameterless function that returns an access_to_procedure.
9022         (Transform_Object_Operation): Handle properly function calls of the
9023         form Obj.Op (X), which prior to analysis appear as indexed components.
9024         (Analyze_One_Call): Complete the error notification to help new Ada
9025         2005 users.
9026         (Analyze_Allocator): For an allocator without an initial value, where
9027         the designated type has a constrained partial view, a discriminant
9028         constraint is illegal.
9029
9030 2005-06-14  Robert Dewar  <dewar@adacore.com>
9031
9032         * a-textio.adb (Set_Col): Fix two errors noticed recently, having to
9033         do with treatment of Set_Col when positioned at end of line character.
9034
9035 2005-06-14  Robert Dewar  <dewar@adacore.com>
9036
9037         * atree.adb: (Elist*): Protect against uninitialized field
9038
9039 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9040
9041         * checks.adb (Install_Null_Excluding_Check): Do not generate checks
9042         for an attribute reference that returns an access type.
9043         (Apply_Discriminant_Check): No need for check if (designated) type has
9044         constrained partial view.
9045
9046         (Apply_Float_Conversion_Check): Generate a short-circuit expression for
9047         both bound checks, rather than a conjunction.
9048         (Insert_Valid_Check): If the expression is an actual that is an indexed
9049         component of a bit-packed array, force expansion of the packed element
9050         reference, because it is specifically inhibited elsewhere.
9051
9052 2005-06-14  Vincent Celier  <celier@adacore.com>
9053
9054         * clean.adb (Clean_Project): Correctly delete executable specified as
9055         absolute path names.
9056
9057         * make.adb (Gnatmake): Allow relative executable path names with
9058         directory information even when project files are used.
9059         (Change_To_Object_Directory): Fail gracefully when unable to change
9060         current working directory to object directory of a project.
9061         (Gnatmake): Remove exception handler that could no longer be exercized
9062         (Compile_Sources.Compile): Use deep copies of arguments, as some of them
9063         may be deallocated by Normalize_Arguments.
9064         (Collect_Arguments): Eliminate empty arguments
9065
9066         * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False,
9067         and set to True when -U is used for GNAT PRETTY or GNAT METRIC.
9068         (Check_Project): Return False when Project is No_Project. Return True
9069         when All_Projects is True.
9070         (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set
9071         All_Projects to True.
9072         Minor reformatting
9073
9074 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9075             Javier Miranda  <miranda@adacore.com>
9076             Thomas Quinot  <quinot@adacore.com>
9077             Robert Dewar  <dewar@adacore.com>
9078             Hristian Kirtchev  <kirtchev@adacore.com>
9079             Gary Dismukes  <dismukes@adacore.com>
9080
9081         * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on
9082         anonymous access types, to indicate that the accessibility level of
9083         the type is determined by that of the enclosing declaration.
9084         (Has_Persistent_BSS): New flag
9085         (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage
9086         of this attribute with functions.
9087         (Is_Primitive_Wrapper): Remove the barrier.
9088         (Has_Specified_Stream_Input, Has_Specified_Stream_Output,
9089         Has_Specified_Stream_Read, Has_Specified_Stream_Write):
9090         New subprograms.
9091         (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output,
9092         Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write):
9093         New subprograms.
9094         (Is_Pure_Unit_Access_Type): New flag
9095         (Abstract_Interfaces): Complete the assertion to cover all usages.
9096         (Set_Is_Interface): Complete the assertion to cover all usages.
9097         (Is_Primitive_Wrapper): New attribute.
9098         (Is_Obsolescent): Now applies to all entities (though it is only set
9099         for subprograms currently)
9100         New flag:  Has_Constrained_Partial_View, to implemente Ada 2005 AI-363,
9101         which solves various problems concerning access subtypes.
9102         (Has_Persistent_BSS): New flag
9103         (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup.
9104         Remove these subprograms because this attribute is currently
9105         not used.
9106         New entity flags:
9107         Has_Specified_Stream_Input (Flag190)
9108         Has_Specified_Stream_Output (Flag191)
9109         Has_Specified_Stream_Read (Flag192)
9110         Has_Specified_Stream_Write (Flag193)
9111         Present in all type and subtype entities. Set for a given view if the
9112         corresponding stream-oriented attribute has been defined by an
9113         attribute definition clause. When such a clause occurs, a TSS is set
9114         on the underlying full view; the flags are used to track visibility of
9115         the attribute definition clause for partial or incomplete views.
9116         (Is_Pure_Unit_Access_Type): New flag
9117         Clarify use of Is_Internal.
9118         (Is_Primitive_Wrapper): New attribute present in primitive subprograms
9119         internally generated to wrap the invocation of tasks and protected
9120         types that implement interfaces.
9121         (Implementation_Base_Type): Documentation correction
9122         (Is_Obsolescent): Now applies to all entities (though it is only set
9123         for subprograms currently)
9124         New flag:  Has_Constrained_Partial_View, to implement Ada 2005 AI-363,
9125         which solves various problems concerning access subtypes.
9126
9127         * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance
9128         for examined parameters. Identify unequal parameter list lengths as
9129         non-conformant parameters.
9130         (Overriding_Possible): Do not check for "All" qualifier in declaration
9131         of controlling access parameter, following prescription of AI-404.
9132         (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms
9133         that build the procedure body that wraps an entry invocation
9134         (Build_Corresponding_Record, Build_Protected_Sub_Specification,
9135         Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration,
9136         Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to
9137         give support to abstract interface types
9138
9139         * freeze.adb (Freeze_Entity): Issue error message if
9140         Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the
9141         type has no storage pool (Ada 2005) AI-366.
9142         Also modified to give support to abstract interface types
9143         (Freeze_Subprogram): Issue an error for a dispatching subprogram with an
9144         Inline_Always pragma.
9145
9146         * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may
9147         now begin an entry declaration.
9148         (P_Entry_Or_Subprogram_With_Indicator): New procedure in
9149         P_Protected_Operation_Declaration_Opt. Parse an entry declaration or
9150         a subprogram declaration preceded by an overriding indicator.
9151         (P_Protected_Operation_Declaration_Opt): Add case for parsing entry
9152         declarations or subprogram declarations preceded by reserved words
9153         "not" or "overriding".
9154         (P_Entry_Declaration): Update comment. Parse and check overriding
9155         indicator, set semantic flags of entry declarations.
9156         (P_Task): New error message in case of private applied
9157         to a task type declaration.
9158         (P_Protected): New error message in case of private applied
9159         to a task type declaration.
9160
9161         * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case
9162         in which the full view of a type implementing an interface is a
9163         concurrent type.
9164         (Has_Overriding_Pragma): Remove obsolete implementation of AI-218.
9165         Declare_Inherited_Private_Subprograms): If an explicit operation
9166         overrides an operation that is inherited in the private part, mark the
9167         explicit one as overriding, to enable overriding indicator checks.
9168         (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from
9169         full view to partial view, to simplify handling in back-end.
9170
9171         * sprint.adb: Print interface lists where needed: derived types,
9172         protected types, task types.
9173         output "is null" for null procedures. Part of implementation of
9174
9175         * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366
9176         relaxation of rules for access types in pure, shared passive partitions.
9177
9178         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to
9179         first read discriminants into temporary objects, performing checks on
9180         the read values, then possibly performing discriminant checks on the
9181         actual (if it is constrained), and only finally reading the components
9182         into a constrained temporary object.
9183         (Build_Elementary_Input_Call): Adjust the specific circuitry for the
9184         case of reading discriminants of a mutable record type to recognize
9185         the new form of the code generated by
9186         Build_Mutable_Record_Read_Procedure.
9187
9188         * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms
9189         of a simple call to Make_TSS_Name.
9190         (Make_TSS_Name_Local): Add the TSS name as the last thing in the name
9191         buffer, in order for Is_TSS to work correctly on local TSS names.
9192
9193         * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag
9194         Is_Local_Anonymous_Access to check legaliy of attributes in the
9195         context of  access components and stand-alone access objects.
9196         (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is
9197         treated as available for a limited private type if there is an
9198         attribute_definition_clause that applies to its full view, but not in
9199         other cases where the attribute is available for the full view
9200         (specifically, the sole fact that the full view is non-limited does not
9201         make the attribute available for the partial view).
9202         (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a
9203         non-overloaded intrinsic subprogram.
9204         (Check_Stream_Attribute): Reject an attribute reference for an
9205         unavailable stream attribute even if the prefix is not a limited type
9206         (case of a 'Input attribute reference for an abstract, non-classwide
9207         type)
9208         (Stream_Attribute_Available): New function to determine whether a stream
9209         attribute is available at a place.
9210         (Check_Attribute): Use Stream_Attribute_Available instead of just
9211         testing for TSS presence on the implementation base type.
9212         (Analyze_Attribute): Modified to give support to task interfaces.
9213         (Analyze_Access_Attribute): Add error check for use of an Access (or
9214         Unrestricted_Access) attribute with a subprogram marked as
9215         Inline_Always.
9216         (Analyze_Attribute, case Attribute_Address): Add error check for use of
9217         an Address attribute with a subprogram marked as Inline_Always.
9218         Update Eval_Attribute to handle new value of Width from AI-395
9219
9220         * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram.
9221         (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write):
9222         Factor common code across the stream-oriented attribute circcuits into
9223         a new subprogram, Analyze_Stream_TSS_Definition. The new uniform
9224         processing is functionally identical to the previous duplicated one,
9225         except that an expression that denotes an abstract subprogram will now
9226         be rejected, as mandated by AI-195 item 5.
9227
9228         * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag
9229         Is_Local_Anonymous_Access to apply accessibility checks to access
9230         components and stand-alone access objects.
9231         (Has_Discriminant_Dependent_Constraint): Moved to spec for use
9232         elsewhere.
9233         (Is_Potentially_Persistent_Type): New function
9234         (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is
9235         a heap-object whose type has a constrained partial view, the object is
9236         unconstrained and the component may depend on a discriminant, making its
9237         renaming illegal.
9238
9239         * sinfo.ads, sinfo.adb
9240         (Must_Not_Override): Flag applicable to N_Entry_Declaration.
9241         (Must_Override): Flag applicable to N_Entry_Declaration.
9242         Indicate that interface_list can appear in single task and single
9243         protected declarations.
9244         Replace Is_Overriding and Not_Overriding with Must_Override and
9245         Must_Not_Override, to better express intent of AI.
9246         Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence
9247         of an overriding indicator in a subprogram or instance.
9248         Ada 2005 (AI-248) Null_Present can appear in a procedure specification.
9249         Add the overriding indicator [[not] overriding] construct to the
9250         following grammar productions:
9251          ENTRY_DECLARATION
9252          GENERIC_INSTANTIATION
9253          SUBPROGRAM_SPECIFICATION
9254
9255         * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body
9256         can start with an overriding indicator.
9257
9258         * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set
9259         flags accordingly on subrogram specifications or instances.
9260
9261         * sem_ch8.adb:
9262         (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the
9263         overriding_indicator, if present, is consistent with status of spec.
9264         Improve error message for null-excluding checks on controlling access
9265         parameters.
9266         (Check_In_Previous_With_Clause): Protect the frontend against
9267         previously reported critical errors in the context clauses.
9268         Save and restore Ada_Version_Explicit, for implementation of AI-362
9269         (Analyze_Subprogram_Renaming): If the new entity is a dispatching
9270         operation verify that controlling formals of the renamed entity that
9271         are access parameters are explicitly non-null.
9272         (Find_Expanded_Name): Improve error message when prefix is an illegal
9273         reference to a private child unit.
9274
9275         * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb,
9276         s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb:
9277         Rewrite to correspond to new wide character names in AI-395
9278
9279         * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null
9280         default procedures.
9281
9282 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9283             Robert Dewar  <dewar@adacore.com>
9284
9285         * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user
9286         code, not on the bodies of predefined operations, to cut down on
9287         spurious noise.
9288
9289 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9290
9291         * exp_aggr.adb (Aggr_Size_OK): An array with no components can always
9292         be expanded in place. The size computation does not require a
9293         subtraction, which would raise an exception on a compiler built with
9294         assertions when the upper bound is Integer'first.
9295         (Flatten): For an array of composite components, take into account the
9296         size of the components to determine whether it is safe to expand the
9297         array into a purely positional representation.
9298
9299 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9300
9301         * exp_ch2.adb (Param_Entity): Take the case of an expanded_name
9302         denoting a formal parameter into account.
9303
9304 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9305
9306         * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within
9307         the entry_call alternative of a conditional entry call, wrap the
9308         conditional entry call itself.
9309
9310 2005-06-14  Nicolas Setton  <setton@adacore.com>
9311             Ed Schonberg  <schonberg@adacore.com>
9312
9313         * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of
9314         the "simple_choice" member in a variant record, in accordance with the
9315         description in the package spec: the information output for a constant
9316         should be "S number", not "SS number".
9317         (Get_Encoded_Name): Return at once if not generating code. Avoids name
9318         overflow problem when compiling with -gnatct, for ASIS/gnatmetrics.
9319
9320 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9321
9322         * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an
9323         RACW without any primitives, do not generate the if statement for
9324         dispatching by name in the PolyORB/DSA case, as it would be malformed
9325         (it would have an Elsif_Parts list that is not No_List, but with a
9326         length of 0).
9327
9328 2005-06-14  Robert Dewar  <dewar@adacore.com>
9329
9330         * exp_intr.adb, par-ch5.adb: Minor fix to error message text
9331
9332 2005-06-14  Jose Ruiz  <ruiz@adacore.com>
9333
9334         * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi
9335         can determine whether pragma Suppress_Exception_Locations is in effect.
9336
9337         * utils2.c (build_call_raise): Do not pass the file name to the
9338         exception handler if pragma Suppress_Exception_Locations is in effect.
9339         (build_allocator): Add and process arg IGNORE_INIT_TYPE.
9340
9341 2005-06-14  Emmanuel Briot  <briot@adacore.com>
9342
9343         * g-debpoo.adb (Deallocate, Dereference): Improve output.
9344
9345 2005-06-14  Nicolas Roche  <roche@adacore.com>
9346
9347         * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal
9348         to ""
9349         (Next_Level): Fix minor bug in handling of ../dir case
9350         (Read): Add dir separator to Directory name so that "" is understood as
9351          "/"
9352
9353 2005-06-14  Pascal Obry  <obry@adacore.com>
9354
9355         * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after
9356         releasing the items.
9357
9358 2005-06-14  Vincent Celier  <celier@adacore.com>
9359             Cyrille Comar  <comar@adacore.com>
9360
9361         * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions
9362         with output file descriptor and with output file name.
9363         (Dup, Dup2): Now global procedures as they are used by two subprograms
9364         (Copy): Allocate the 200K buffer on the heap rather than on the stack.
9365
9366 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9367
9368         PR ada/6717
9369
9370         * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones
9371         broadcast address.
9372         (Create_Selector): Bind listening socket used to create the signalling
9373         socket pair to 127.0.0.1 to limit the scope for 'theft' of connection.
9374         Set listen backlog to 1 to ensure that we detect socket theft by a
9375         failure of our own connect(2) call.
9376         (Check_Selector): Improve documentation of the selector mechanism.
9377         (Broadcast_Inet_Addr): New constant.
9378
9379 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9380
9381         * layout.adb (Discrimify): Remove resetting of Vtype to the underlying
9382         type which turns out to be an incomplete and incorrect fix.
9383         (Layout_Array_Type): Use Underlying_Type when checking whether the scope
9384         of the type is declared in a record (for determination of insertion
9385         type).
9386         (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of
9387         a private type and ensure that the primary entity is used for the type
9388         of the newly created function's V formal by taking the Etype of the
9389         view.
9390
9391 2005-06-14  Javier Miranda  <miranda@adacore.com>
9392             Jose Ruiz  <ruiz@adacore.com>
9393             Robert Dewar  <dewar@adacore.com>
9394             Ed Schonberg  <schonberg@adacore.com>
9395
9396         * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter
9397         that indicates if we are parsing a compilation unit found in a
9398         limited-with clause.
9399         It is use to avoid the circularity check.
9400
9401         * par.ads, par.adb (Par): Addition of a new parameter to indicate if
9402         we are parsing a compilation unit found in a limited-with clause. This
9403         is use to avoid the circularity check.
9404
9405         * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the
9406         unit as a consequence of parsing a limited-with clause. This is used
9407         to avoid the circularity check.
9408
9409         * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used
9410         (Analyze_Context): Limited-with clauses are now allowed
9411         in more compilation units.
9412         (Analyze_Subunit_Context, Check_Parent): Protect the frontend
9413         againts previously reported critical errors in context clauses
9414         (Install_Limited_Withed_Unit): Code cleanup plus static detection
9415         of two further errors: renamed subprograms and renamed packages
9416         are not allowed in limited with clauses.
9417         (Install_Siblings): Do not install private_with_clauses on the package
9418         declaration for a non-private child unit.
9419         (Re_Install_Parents): When a parent of the subunit is reinstalled,
9420         reset visibility of child units properly.
9421         (Install_Withed_Unit): When a child unit appears in a with_clause of its
9422         parent, it is immediately visible.
9423
9424 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9425             Emmanuel Briot  <briot@adacore.com>
9426
9427         * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity
9428         declared within an inlined body as referenced, to prevent spurious
9429         warnings.
9430         (Output_One_Ref): If an entity renames an array component, indicate in
9431         the ALI file that this aliases (renames) the array. Capture as well
9432         function renamings that rename predefined operations.
9433         Add information about generic parent for package and subprogram
9434         instances.
9435         (Get_Type_Reference): For a subtype that is the renaming of an actual in
9436         an instantiation, use the first_subtype to ensure that we don't generate
9437         cross-reference information for internal types.
9438         For objects and parameters of a generic private type, retain the '*'
9439         indicator to distinguish such an entity from its type.
9440
9441         * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line,
9442         to store information about instantiated entities.
9443
9444         * ali.adb (Scan_ALI): Add support for parsing the reference to the
9445         generic parent
9446
9447         * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram
9448         (Parse_Identifier_Info, Parse_Token): Add support for the generic parent
9449         information.
9450
9451 2005-06-10  Doug Rupp  <rupp@adacore.com>
9452             Arnaud Charlet  <charlet@adacore.com>
9453             Olivier Hainque  <hainque@adacore.com>
9454             Jose Ruiz  <ruiz@adacore.com>
9455
9456         * Make-lang.in: Add initialize.o when needed.
9457         Remove obsolete references to RT_FLAGS.
9458         Add missing dependencies for sdefault.o
9459
9460         * initialize.c: New file.
9461
9462         * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS.
9463         [VMS] cond_signal_table: Fix problem in declaration.
9464         [VMS] __gnat_error_handler: rewrite.
9465         Move all __gnat_initialize() routines to initialize.c
9466         Specialize the former "hpux" section to "hppa hpux", as this is what the
9467         section really is here for and we now have other hpux ports that need
9468         different contents.
9469         (__gnat_adjust_context_for_raise) i386-linux: First version of this
9470         function for this target. Adjust PC by one in the machine context. This
9471         adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but
9472         it is more reliable to do that in the signal handler itself.
9473         (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction
9474         flags, so that the handler is passed the context structure to adjust
9475         prior to the raise.
9476         (__gnat_error_handler) i386-linux: Adjust the signature to match what a
9477         SA_SIGINFO sigaction should look like. Call
9478         __gnat_adjust_context_for_raise before actually raising. Cleanup unused
9479         Machine_State_Operations stuff.
9480         Add conditional code so that the x86_64 is also supported.
9481
9482 2005-06-14  Pascal Obry  <obry@adacore.com>
9483
9484         * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given
9485         the library name.
9486
9487 2005-06-14  Robert Dewar  <dewar@adacore.com>
9488
9489         * opt.ads, opt.adb: New flags for persistent_bss mode
9490         Add Ada_Version_Explicit, for implementation of AI-362
9491         Add Assertions_Enabled_Config and associated handling
9492         Needed since setting can be changed with Assertion_Policy pragma
9493         Add new flag Warn_On_Ada_2005_Compatibility
9494
9495         * switch-c.adb: Recognize -gnatwy/Y
9496         Set Ada_Version_Explicit, for implementation of AI-362
9497         The -gnatg switch now includes -gnatyu
9498
9499         * usage.adb: Add -gnatwy/Y
9500         Remove wrong asterisk on -gnatwX line
9501         Add line for -gnatyu switch
9502
9503 2005-06-14  Vincent Celier  <celier@adacore.com>
9504
9505         * osint.adb (Add_Default_Search_Dirs): Put source and object
9506         directories of project files before directories coming from
9507         ADA_INCLUDE_PATH and ADA_OBJECTS_PATH.
9508
9509 2005-06-14  Robert Dewar  <dewar@adacore.com>
9510
9511         PR ada/15613
9512
9513         * par-ch2.adb (Scan_Pragma_Argument): New procedure
9514         (P_Pragma): Implement RM 2.8(4) check for no pos args after named args
9515
9516 2005-06-14  Vincent Celier  <celier@adacore.com>
9517
9518         * prep.adb (Preprocess): Ignore error when scanning the first token of
9519         a line.
9520
9521 2005-06-14  Vincent Celier  <celier@adacore.com>
9522
9523         * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp"
9524         (Check_Stand_Alone_Library): If the specified reference symbol file does
9525         not exist, only issue a warning when the symbol policy is not
9526         Controlled. And, when symbol policy is Compliant, set the symbol
9527         policy to Autonomous.
9528
9529 2005-06-14  Vincent Celier  <celier@adacore.com>
9530
9531         * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List
9532         when the project file in a with clause is not the last one, that is the
9533         project file name is followed by a comma.
9534         * prj-pp.adb: (First_With_In_List): New Boolean global variable
9535         (Print): Issue list of project files separated by commas in with clauses
9536         according to the values returned by Is_Not_Last_In_List.
9537         * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function
9538         (Set_Is_Not_Last_In_List): New procedure
9539
9540 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9541
9542         * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer.
9543
9544 2005-06-14  Robert Dewar  <dewar@adacore.com>
9545
9546         * scng.adb: Add call to new Check_EOF routine
9547         (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24
9548         Add some comments regarding wide character handling
9549
9550         * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu
9551
9552         * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu
9553
9554         * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format
9555         characters are now considered graphic characters and hence yield false
9556         in this call.
9557
9558         * nmake.adt: Modify header so that xnmake does not generate output
9559         files with multiple blank lines.
9560
9561         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9562         not have an extra blank line
9563
9564 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9565
9566         * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the
9567         expression when the component type is an anonymous access type to
9568         ensure that appropriate accessibility checks are done.
9569
9570         * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the
9571         expression of an assignment when the target object is of an anonymous
9572         access type. This ensures that required accessibility checks are done.
9573         (One_Bound): Move the check for type Universal_Integer to
9574         Process_Bounds.
9575         (Process_Bounds): Check whether the type of the preanalyzed range is
9576         Universal_Integer, and in that case set Typ to Integer_Type prior
9577         to setting the type of the original range and the calls to One_Bound.
9578
9579 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9580
9581         * sem_case.adb (Expand_Others_Choice): Improve warning.
9582
9583 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9584
9585         * sem_eval.adb (Subtypes_Statically_Match): Use discriminant
9586         constraint of full view if present, when other type is discriminated.
9587         (Eval_Relational_Op): Recognize tests of pointer values against Null,
9588         when the pointer is known to be non-null, and emit appropriate warning.
9589
9590 2005-06-14  Robert Dewar  <dewar@adacore.com>
9591             Ed Schonberg  <schonberg@adacore.com>
9592
9593         PR ada/10671
9594
9595         * sem_prag.adb: Implement pragma Persistent_BSS
9596         Remove obsolete pragma Persistent_Data, Persistent_Object
9597         Set Ada_Version_Explicit, for implementation of AI-362
9598         Test Ada_Version_Explicit for Preelaborate_05 and Pure_05
9599         Add processing for pragma Pure_05 and Preelaborate_05
9600         Add processing for Assertion_Policy pragma
9601         Add pragma identifiers for Assert
9602         (Analyze_Pragma, case Assert): Check number of arguments
9603         (Process_Inline): Additional guard against an illegal program, where the
9604         argument of the pragma is undefined, and warnings on redundant
9605         constructs are enabled.
9606         (Analyze_Pragma, case Obsolescent): Allow an optional second argument
9607         Ada_05 to this pragma, specifying that the pragma is only active in
9608         Ada_05 mode.
9609         (Check_Arg_Order): New procedure
9610         Add appropriate calls to this procedure throughout
9611         Also throughout, check entity name before doing any other checks
9612
9613         * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS
9614         Remove obsolete pragma Persistent_Data, Persistent_Object
9615         Add entries for pragma Pure_05 and Preelaborate_05
9616         Add entries for Assertion_Policy pragma and associated names
9617         Add some names for pragma argument processing
9618
9619         * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function
9620
9621 2005-06-14  Ed Schonberg  <schonberg@adacore.com>
9622
9623         * sem_warn.adb (Warn_On_Known_Condition): If the constant expression
9624         appears within a negation (either from source or as a rewriting of
9625         inequality) adjust text of warning accordingly.
9626
9627 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9628
9629         * s-strxdr.adb: Follow AI95-00132
9630
9631 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9632
9633         * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition.
9634
9635 2005-06-14  Arnaud Charlet  <charlet@adacore.com>
9636             Jose Ruiz  <ruiz@adacore.com>
9637
9638         * s-tposen.adb, s-tpobop.adb
9639         (Exceptional_Complete_Rendezvous): Save the occurrence and not only
9640         the exception id.
9641         (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that
9642         there is no violation of the Max_Entry_Queue_Length restriction (if it
9643         has been set); Program_Error is raised otherwise.
9644         (Requeue_Call): Before requeuing the task on the target entry queue we
9645         check that there is no violation of the Max_Entry_Queue_Length
9646         restriction (if it has been set); Program_Error is raised otherwise.
9647
9648 2005-06-14  Robert Dewar  <dewar@adacore.com>
9649
9650         * styleg.adb: Fix several remaining problems in -gnatyu switch
9651         Blank line count not reset at start
9652         Scanning outside source buffer in some cases
9653         Confusing message for blanks at end of file
9654         Non-empty blank lines not recognized
9655
9656         * nmake.adt: Modify header so that xnmake does not generate output
9657         files with multiple blank lines.
9658
9659         * treeprs.adt: Remove a blank line so that output from xtreeprs does
9660         not have an extra blank line
9661
9662 2005-06-14  Sergey Rybin  <rybin@adacore.com>
9663
9664         * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message.
9665
9666 2005-06-14  Doug Rupp  <rupp@adacore.com>
9667             Vincent Celier  <celier@adacore.com>
9668
9669         * vms_conv.ads, vms_conv.adb: Remove "Library" command.
9670         Update copyright.
9671
9672         * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9673         Remove "Library" command.
9674         Change keyword for style check -gnatyd from NOCRLF to
9675         DOS_LINE_ENDINGS.
9676         Remove useless second style check keyword NONE
9677         Remove help documentation for inexistent style check keyword
9678         RM_COLUMN_LAYOUT.
9679         Add help documentation for style check keywords DOS_LINE_ENDINGS,
9680         UNNECESSARY_BLANK_LINES and XTRA_PARENS
9681         Add UNNECESSARY_BLANK_LINES for -gnatyu
9682         Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC
9683
9684         * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY
9685
9686 2005-06-14  Vincent Celier  <celier@adacore.com>
9687
9688         * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if
9689         gprmake was invoked with -d.
9690         (Compile_Sources): If -d was used, output the "completed ..." message
9691         for each compilation.
9692         (Scan_Arg): Recognize new switch -d
9693         When -c and at least one main is specified, set
9694         Unique_Compile to True to guarantee that no other sources will be
9695         compiled.
9696
9697 2005-06-14  Matthew Heaney  <heaney@adacore.com>
9698
9699         * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb]
9700         * a-swuwha.ads, a-swuwha.adb: New files
9701
9702         * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb]
9703         * a-szuzha.ads, a-szuzha.adb: New files.
9704
9705         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
9706         a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads,
9707         a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads,
9708         a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb,
9709         a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads,
9710         a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb,
9711         a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads,
9712         a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads,
9713         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb,
9714         a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the
9715         Ada 2005 RM.
9716
9717 2005-06-10  Eric Botcazou  <ebotcazou@adacore.com>
9718             Olivier Hainque  <hainque@adacore.com>
9719             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9720             Pascal Obry  <obry@adacore.com>
9721
9722         * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE.
9723
9724         * trans.c (call_to_gnu): Issue a warning for users of Starlet when
9725         making a temporary around a procedure call because of non-addressable
9726         actual parameter.
9727         (process_freeze_entity): If entity is a private type, capture size
9728         information that may have been computed for the full view.
9729         (tree_transform, case N_Allocator): If have initializing expression,
9730         check type for Has_Constrained_Partial_View and pass that to
9731         build_allocator.
9732         (tree_transform, case N_Return_Statement): Pass extra arg to
9733         build_allocator.
9734
9735         * decl.c (annotate_value): Remove early return if -gnatR is not
9736         specified.
9737         (gnat_to_gnu_field): Don't make a packable type for a component clause
9738         if the position is byte aligned, the field is aliased, and the clause
9739         size isn't a multiple of the packable alignment. It serves no useful
9740         purpose packing-wise and would be rejected later on.
9741         (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator.
9742
9743         PR ada/20515
9744         (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the
9745         context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES
9746         instead.
9747         (create_concat_name): Idem.
9748
9749 2005-06-10  Robert Dewar  <dewar@adacore.com>
9750             Eric Botcazou  <ebotcazou@adacore.com>
9751             Ben Brosgol  <brosgol@adacore.com>
9752             Cyrille Comar  <comar@adacore.com>
9753             Sergey Rybin  <rybin@adacore.com>
9754             Pascal Obry  <obry@adacore.com>
9755
9756         * gnat_rm.texi: Add documentation for pragma Persistent_BSS
9757         Document second argument (Ada_05) of pragma Obsolescent
9758         Add note that call to subprogram marked with pragma Obsolescent
9759         is now considered to be a violation of program Restrictions
9760         (No_Obsolescent_Features).
9761         (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear
9762         that only machine-dependent attributes are supported.
9763
9764         * gnat_ugn.texi:
9765         Commented out menu lines and empty section for gnatclean examples
9766         Document -gnatwy/Y
9767         Fix some over long lines
9768         Clarify and enhance documentation of ADA_PROJECT_PATH.
9769         Rework section 2.11.2(3) about linking with a non-GNU compiler.
9770         Mention new switch -fcallgraph-info.
9771         Mention new switch -fstack-usage.
9772         For gnatpp, replace '-notab' with '-N' and add this option to Index
9773         Corrected VMS example.
9774         VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF
9775         Minor reformatting
9776         Add documentation for -gnatyu switch (unnecessary blank lines)
9777         Document new switch -U for GNAT PRETTY and GNAT METRIC
9778         Add note about Stdcall being handled as C convention on non Windows OS.
9779         Remove some junk typo in description of gnatbind -S switch
9780         Remove reference to Extensions_Allowed pragma
9781         Document the new order of the directories to be searched (source and
9782         object directories of project files before directories in ADA_*_PATH
9783         environment variables.
9784
9785         * g-trasym.ads: Document that IRIX is supported
9786
9787 2005-06-10  Arnaud Charlet  <charlet@adacore.com>
9788
9789         * Makefile.in: Add initialize.o when needed.
9790         Adapt to new VMS package body Symbols and subunits
9791         No specialized version of a-sytaco is needed for VxWorks.
9792
9793         * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files.
9794         * a-zchara.ads, a-widcha.ads: New files.
9795
9796         * system-hpux-ia64.ads: New file.
9797
9798         * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which
9799         is imported from the VxWorks kernel.
9800
9801 2005-06-14  Robert Dewar  <dewar@adacore.com>
9802
9803         * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb,
9804         fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads,
9805         a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads,
9806         s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb,
9807         a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb,
9808         g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads,
9809         i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb,
9810         namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb,
9811         sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads,
9812         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb,
9813         s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb,
9814         xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting.
9815
9816 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9817
9818         * xeinfo.adb: Fix typo in comment
9819
9820 2005-06-14  Javier Miranda  <miranda@adacore.com>
9821
9822         * repinfo.ads: Fix typo in comment
9823
9824 2005-06-14  Gary Dismukes  <dismukes@adacore.com>
9825
9826         * s-finimp.adb (Parent_Tag): Delete this imported function (function
9827         Parent_Tag is now in the visible part of Ada.Tags).
9828         (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of
9829         using imported function.
9830
9831 2005-06-14  Bernard Banner  <banner@adacore.com>
9832
9833         * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should
9834         also apply for handling support for VxSim 653.
9835
9836 2005-06-14  Eric Botcazou  <ebotcazou@adacore.com>
9837
9838         * xsnames.adb: Add automatic generation of snames.h.
9839
9840 2005-06-14  Thomas Quinot  <quinot@adacore.com>
9841
9842         * gen-soccon.c: Add IP_MULTICAST_IF constant
9843         Minor reformatting and adjustments to prevent warnings.
9844
9845 2005-06-14  Pascal Obry  <obry@adacore.com>
9846
9847         * seh_init.c: Do not include <sys/stat.h>. This is not needed.
9848
9849 2005-06-03  Andrew Pinski  <pinskia@physics.uc.edu>
9850
9851         * trans.c (gnat_gimplify_expr): Call
9852         recompute_tree_invarant_for_addr_expr when we change
9853         the operand of the ADDR_EXPR.
9854
9855 2005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9856
9857         * misc.c: Don't include errors.h.
9858
9859 2005-05-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9860
9861         * raise.c (db): Add ATTRIBUTE_PRINTF_2.
9862
9863 2005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
9864
9865         * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix
9866         comment typos.
9867         * gnat_rm.texi, gnat_ugn.texi: Fix typos.
9868
9869 2005-05-16  Nathanael Nerode <neroden@gcc.gnu.org>
9870
9871         PR ada/20270
9872         * Makefile.in: Make TGT_LIB behave correctly.
9873
9874 2005-04-23  DJ Delorie  <dj@redhat.com>
9875
9876         * misc.c: Adjust warning() callers.
9877
9878 2005-04-16  Laurent GUERBY  <laurent@guerby.net>
9879
9880         PR ada/18847
9881         * a-nudira.adb (Value): Check for valid string.
9882         * a-nuflra.adb (Value): Likewise.
9883
9884 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
9885
9886         * lang.opt: Refer to the GCC internals documentation instead of c.opt.
9887
9888 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
9889
9890         * adaint.c, init.c, tracebak.c: Fix comment typos.
9891         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos.
9892
9893 2005-04-07  Laurent GUERBY  <laurent@guerby.net>
9894             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9895
9896         * Makefile.in: Add make ifeq define for hppa linux tasking support.
9897         * system-hpux.ads: Define Signed_Zeros to be True.
9898         * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files.
9899
9900 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
9901
9902         * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c,
9903         raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment
9904         typos.
9905
9906 2005-03-30  Tom Tromey  <tromey@redhat.com>
9907
9908         * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE.
9909
9910 2005-03-30  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
9911
9912         * adaint.c (_gnat_set_close_on_exec): Mark parameters unused.
9913
9914 2005-03-29  Robert Dewar  <dewar@adacore.com>
9915
9916         * sem_res.adb (Resolve_Real_Literal): Generate warning if static
9917         fixed-point expression has value that is not a multiple of the Small
9918         value.
9919
9920         * opt.ads (Warn_On_Bad_Fixed_Value): New flag
9921
9922         * s-taprop-tru64.adb (RT_Resolution): Return an integer number of
9923         nanoseconds.
9924
9925         * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB
9926
9927 2005-03-29  Vincent Celier  <celier@adacore.com>
9928
9929         * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb
9930         (Build_Dynamic_Library.Version_String): Return the empty string when
9931         Lib_Version is empty or when the symbol policy is not Autonomous.
9932
9933         * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when
9934         a symbol is not in the reference symbol file, increase the Major ID
9935         and set the Minor ID to 0.
9936         Use gsmatch=lequal instead of gsmatch=equal
9937
9938 2005-03-29  Doug Rupp  <rupp@adacore.com>
9939
9940         * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical
9941         name and translate.
9942
9943 2005-03-29  Javier Miranda  <miranda@adacore.com>
9944
9945         * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed.
9946         (Inherit_DT): The first formal has been redefined as a Tag.
9947         This allows us the removal of the subprogram Get_TSD.
9948         (TSD): Replace the call to Get_TSD by the actual code.
9949
9950         * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD.
9951         (Make_DT): Upgrade the call to Inherit_TSD according to the
9952         new interface: the first formal is now a Tag.
9953
9954         * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been
9955         redefined as a Tag.
9956         This change allows us to remove the subprogram Get_TSD.
9957         (CPP_Get_TSD): Subprogram removed.
9958         (TSD): Replace the call to CPP_Get_TSD by the actual code.
9959
9960         * rtsfind.ads: Remove support to call the run-time
9961         subprogram Get_TSD
9962
9963 2005-03-29  Robert Dewar  <dewar@adacore.com>
9964
9965         * errutil.adb, errout.adb:
9966         Minor comment updates on Line_Terminator references
9967
9968         * par-ch10.adb: Add ??? comment about line terminator
9969
9970         * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd
9971         (check dos line terminator).
9972         (Check_Line_Max_Length): New procedure, split off from the existing
9973         Check_Line_Terminator routine. Separating this out allows -gnatyf to
9974         be properly recognized.
9975
9976         * styleg.adb: Add ??? comment for line terminator reference
9977
9978         * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored
9979         (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators)
9980
9981         * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd
9982         (check dos line terminator).
9983         (Check_Line_Max_Length): New procedure, split off from the existing
9984         Check_Line_Terminator routine. Separating this out allows -gnatyf to
9985         be properly recognized.
9986
9987         * stylesw.ads, stylesw.adb:
9988         Add handling for new -gnatyd switch (check dos line terminator)
9989
9990         * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator)
9991         Recognize -gnatwb/-gnatwB switches
9992         Include Warn_On_Bad_Fixed_Value for -gnatg
9993
9994         * usage.adb:
9995         Add line for new -gnatyd switch (check dos line terminator)
9996
9997         * usage.adb: Add lines for -gnatwb/-gnatwB
9998
9999         * vms_data.ads: Add entry for NOCRLF (-gnatyd)
10000
10001         * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB
10002
10003         * gnat_ugn.texi: Fix overlong lines
10004         Document new -gnatyd switch
10005         Document new -gnatwb/-gnatwB switches
10006
10007 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10008
10009         * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in
10010         order to retrieve the component list of the type, before examining
10011         individual components.
10012
10013         * sem_type.adb (Covers): Types are compatible if one is the base type
10014         of the other, even though their base types might differ when private
10015         views are involved.
10016
10017 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10018
10019         * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any,
10020         To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead
10021         of using Set_Renaming_TSS. This ensures that the TSS bodies are not
10022         analyzed if expansion is disabled (which could otherwise cause spurious
10023         error messages if expansion has been disabled due to previous
10024         (unrelated) errors).
10025
10026         * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion
10027         is disabled, the entity denoted by the argument is the access type
10028         itself, not an underlying record type, so there is no need to go back
10029         to the Corresponding_Remote_Type.
10030
10031 2005-03-29  Gary Dismukes  <dismukes@adacore.com>
10032             Robert Dewar  <dewar@adacore.com>
10033
10034         * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to
10035         expand a call to an instance of
10036         Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the
10037         Constructor actual of the instance. A class-wide membership
10038         check is also generated, to ensure that the tag passed to the instance
10039         denotes a type in the class.
10040         (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case
10041         of Name_Generic_Dispatching_Constructor.
10042
10043         * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada
10044         05 unit for AI-260-02).
10045
10046         * a-tgdico.ads: New file.
10047
10048         * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new
10049         predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor.
10050
10051         * snames.ads, snames.adb (Preset_Names): Add entry for
10052         Generic_Dispatching_Constructor.
10053
10054         PR ada/20300
10055
10056         * sem_ch8.adb (Find_Direct_Name): Go to root type for check of
10057         character type cases.
10058         (Analyze_Subprogram_Renaming): Add special handling for
10059         the case of renaming of stream attributes when the renaming denotes a
10060         generic formal subprogram association for an abstract formal subprogram.
10061         Check that the attribute is a primitive stream attribute (and not
10062         a class-wide stream attribute) and then rewrite the attribute name
10063         as the name of the appropriate compiler-generated stream primitive.
10064
10065 2005-03-29  Robert Dewar  <dewar@adacore.com>
10066
10067         * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to
10068         recursive calls.
10069         (Is_Possibly_Unaligned_Object): Correct typo that
10070         resulted in inaccurate result for unaligned scalars within records.
10071
10072 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10073
10074         * freeze.adb (Freeze_Record_Type): If the type of the component is an
10075         itype whose parent is controlled and not yet frozen, do not create a
10076         freeze node for the itype if expansion is disabled.
10077
10078 2005-03-29  Vincent Celier  <celier@adacore.com>
10079
10080         * make.adb (Gnatmake): Don't fail if the main project file is declared
10081         as having no Ada sources. Do not display message "no sources to
10082         compile" in quiet output.
10083
10084 2005-03-29  Doug Rupp  <rupp@adacore.com>
10085
10086         * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as
10087         extra tools.
10088
10089 2005-03-29  Robert Dewar  <dewar@adacore.com>
10090
10091         * par-ch12.adb (P_Generic): Give better msg for illegal private generic
10092         child.
10093
10094 2005-03-29  Robert Dewar  <dewar@adacore.com>
10095
10096         * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after
10097         missing TYPE Improve the error message generated when compiling a
10098         limited interface in Ada83 or Ada95 mode.
10099
10100 2005-03-29  Robert Dewar  <dewar@adacore.com>
10101
10102         * par-ch4.adb (P_Name): When a bad attribute is returned, return error,
10103         rather than proceed ahead using a junk attribute name.
10104
10105 2005-03-29  Vincent Celier  <celier@adacore.com>
10106
10107         * prj.ads, prj.adb: (Project_Data): Add new component Display_Name
10108
10109         * prj-part.adb (Parse_Single_Project): Set the location of a project
10110         on its defining identifier, rather than on the reserved word "project".
10111
10112         * prj-proc.adb (Expression): Adapt to the fact that default of external
10113         references may be string expressions, not always literal strings.
10114         (Recursive_Process): Set Display_Name equal to Name
10115         when Location is No_Location, that is when there is no actual file.
10116         Get the Display_Name of the project from the source, when it is not a
10117         virtual project.
10118         (Process): Use the Display_Name in error messages
10119
10120         * prj-strt.adb (External_Reference): Allow default to be string
10121         expressions, not only literal strings.
10122
10123 2005-03-29  Vincent Celier  <celier@adacore.com>
10124
10125         * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol
10126         file and the reference symbol file to be the same file.
10127
10128 2005-03-29  Thomas Quinot  <quinot@adacore.com>
10129
10130         * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to
10131         forbid conversion of a local access-to-subprogram type to a remote one.
10132
10133         * sem_util.adb (Wrong_Type): For a record type that is the expanded
10134         equivalent type for a remote access-to-subprogram type, go back to the
10135         original RAS entity when displaying an error message, so the casing is
10136         the original source casing.
10137
10138 2005-03-29  Robert Dewar  <dewar@adacore.com>
10139
10140         * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning
10141         on param update.
10142
10143 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10144
10145         * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual
10146         subtype if code is being pre-analyzed, to prevent un-expanded
10147         references to protected formals, among others.
10148         (Analyze_Explicit_Dereference): If the overloaded prefix includes some
10149         interpretation that can be a call, include the result of the call as a
10150         possible interpretation of the dereference.
10151
10152         * sem_ch5.adb (Process_Bounds): Determine type of range by
10153         pre-analyzing a copy of the original range, and then analyze the range
10154         with the expected type.
10155
10156         * sem_res.adb (Check_Parameterless_Call): For an explicit dereference
10157         with an overloaded prefix where not all interpretations yield an
10158         access to subprogram, do not rewrite node as a call.
10159         (Resolve_Explicit_Dereference): Recognize the previous case and rewrite
10160         the node as a call once the context identifies the interpretation of
10161         the prefix whose call yields the context type.
10162         (Valid_Conversion): For the case of a conversion between
10163         local access-to-subprogram types, check subtype conformance using
10164         Check_Subtype_Conformant instead of Subtype_Conformant, to have a more
10165         detailed error message.
10166
10167 2005-03-29  Ed Schonberg  <schonberg@adacore.com>
10168
10169         * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null
10170         indicator, indicate that the formal can never be null.
10171         (Process_Formals): If a formal has a non_null indicator, insert the
10172         resulting subtype immediately before the enclosing subprogram decl,
10173         and not at the beginning of the corresponding declarative part, to
10174         prevent access before elaboration (Ada2005).
10175
10176 2005-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10177
10178         PR ada/19956
10179         * utils.c (finish_record_type): Use variable_size when setting sizes.
10180
10181 2005-03-29  Robert Dewar  <dewar@adacore.com>
10182
10183         * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to
10184         guarantee Unix style line terminators for the output files, even when
10185         running on windows.
10186
10187 2005-03-29  Robert Dewar  <dewar@adacore.com>
10188
10189         * a-direct.ads, a-direct.adb (Start_Search): Free allocated search
10190         buffer if an exception is raised.
10191
10192 2005-03-29  Ed Falis  <falis@adacore.com>
10193
10194         * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with
10195         VxWorks 653 1.4
10196
10197 2005-03-29  Robert Dewar  <dewar@adacore.com>
10198
10199         * sem_util.ads: Minor reformatting
10200         * gnat_rm.texi: Minor editing.
10201
10202 2005-03-29  Eric Botcazou  <ebotcazou@adacore.com>
10203
10204         * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment.
10205         * trans.c (tree_transform) <N_Identifier>: Use correct predicates.
10206
10207 2005-03-24  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
10208
10209         * adaint.c (__gnat_portable_spawn): Adjust cast.
10210
10211 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
10212
10213         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
10214
10215 2005-03-17  Pascal Obry  <obry@adacore.com>
10216
10217         * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is
10218         used.
10219
10220         * expect.c (__gnat_waitpid): Moved here from adaint.c.
10221         Reimplement under Win32 using Win32 API.
10222
10223         (__gnat_kill) [Win32]: Properly close the process handle before leaving
10224         this routine.
10225
10226 2005-03-17  Eric Botcazou  <ebotcazou@adacore.com>
10227
10228         * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate.
10229         (DECL_RENAMED_OBJECT): New accessor macro.
10230         (SET_DECL_RENAMED_OBJECT): New setter macro.
10231
10232         * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed
10233         object in all cases.  Attach the renamed object to the VAR_DECL.
10234         (gnat_to_gnu_field): Do not lift the record wrapper if the size of the
10235         field is not prescribed.
10236
10237         * misc.c (gnat_handle_option): Handle -gnatO separately.
10238         (gnat_print_decl) <VAR_DECL>: New case.
10239         Print the DECL_RENAMED_OBJECT node.
10240
10241         * lang.opt:  Declare separate -gnatO option.
10242
10243         * trans.c (tree_transform) <N_Identifier>: If the object is a renaming
10244         pointer, replace it with the renamed object.
10245         <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat
10246         pointer type if the source is not a fat pointer type whose underlying
10247         array has the same non-zero alias set as that of the destination array.
10248
10249 2005-03-17  Javier Miranda  <miranda@adacore.com>
10250
10251         * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed.
10252         (Get_Inheritance_Depth): Removed.
10253         (Set_Inheritance_Depth): Removed.
10254
10255         * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the
10256         subprogram Get_Expanded_Name because it is not referenced by the
10257         frontend.
10258
10259         * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed.
10260         (CPP_Get_Inheritance_Depth): Removed.
10261         (CPP_Set_Inheritance_Depth): Removed.
10262
10263         * tbuild.ads, tbuild.adb (Make_DT_Component): Removed.
10264
10265 2005-03-17  Robert Dewar  <dewar@adacore.com>
10266
10267         * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC
10268         3, since we now expect GCC 3 to do all the work.
10269
10270 2005-03-17  Javier Miranda  <miranda@adacore.com>
10271
10272         * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition
10273         of one barrier to avoid wrong usage of this attribute.
10274
10275         * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute
10276         First_Private_Entity.
10277
10278         * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect
10279         the subprogram against wrong usage.
10280         Adapt the code to traverse the entities in the
10281         scope of a record_type because in addition to its usage regarding
10282         packages, this subprogram is also called by Expand_N_Freeze_Entity
10283         to install the visible declarations of the enclosing scope of a
10284         record_type_with_private to establish the proper visibility before
10285         freezing the entity and related subprograms.
10286
10287 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10288
10289         * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to
10290         entry formals.
10291
10292 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10293
10294         * exp_ch3.adb (Check_Attr): New subprogram.
10295         (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement
10296         into a new Check_Attr subprogram, in order to provide a more
10297         explanatory error message (including the name of the missing attribute).
10298         (Stream_Operation_OK): Renamed from Stream_Operations_OK. This
10299         subprogram determines whether a default implementation exists for a
10300         given stream attribute.
10301         (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies):
10302         Determine whether to generate a default implementation for each stream
10303         attribute separately, as this depends on the specific attribute.
10304
10305         * exp_strm.adb (Make_Field_Attribute): For the case of an illegal
10306         limited extension where a stream attribute is missing for a limited
10307         component (which will have been flagged in Exp_Ch3.Sem_Attr), do not
10308         generate a bogus reference to the missing attribute to prevent
10309         cascaded errors. Instead, generate a null statement.
10310
10311         * sem_attr.adb (Check_Stream_Attribute): A stream attribute is
10312         available for a limited type if it has been specified for an ancestor
10313         of the type.
10314
10315 2005-03-17  Ed Schonberg  <schonberg@adacore.com>
10316
10317         * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed
10318         entity is an operator.
10319
10320 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10321
10322         * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10323         spec, to make this predicate available to other units.
10324
10325         * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of
10326         reimplementing it.
10327
10328         * sem_ch8.adb: Disable expansion of remote access-to-subprogram types
10329         when no distribution runtime library is available.
10330
10331         * sem_res.adb, sem_dist.adb: Disable expansion of remote
10332         access-to-subprogram types when no distribution runtime library is
10333         available.
10334         (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this
10335         predicate available to other units.
10336
10337         * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist
10338         spec, to make this predicate available to other units.
10339
10340 2005-03-17  Vincent Celier  <celier@adacore.com>
10341
10342         * make.adb (Insert_Project_Sources): Make sure the Q is always
10343         initialized.
10344
10345         * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against
10346         the default for the tree, not the global default naming.
10347
10348         * prj-proc.adb (Recursive_Process): No need to put the default naming
10349         in the project data, it's already there.
10350
10351 2005-03-17  Doug Rupp  <rupp@adacore.com>
10352
10353         * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads.
10354
10355         * 5xcrtl.ads: Renamed to...
10356         * s-crtl-vms64.ads: ...this new file
10357
10358 2005-03-17  Robert Dewar  <dewar@adacore.com>
10359
10360         PR ada/19519
10361
10362         * namet.adb (Copy_One_Character): Set proper wide character encoding
10363         for upper half character if we have upper half encoding.
10364
10365 2005-03-17  Robert Dewar  <dewar@adacore.com>
10366
10367         * par.adb (Par): Improved msg for attempt to recompile predefined unit
10368
10369 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10370
10371         * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a
10372         tagged limited type, the TSS is a newly built renaming declaration:
10373         insert it using Set_TSS, not Copy_TSS.
10374
10375 2005-03-17  Javier Miranda  <miranda@adacore.com>
10376
10377         * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and
10378         Try_Object_Operation): Analyze the object that is accessible
10379         through the prefix of the subprogram call before we apply
10380         the transformation of the object-operation notation.
10381
10382 2005-03-17  Jose Ruiz  <ruiz@adacore.com>
10383
10384         * s-taprob.adb (Initialize_Protection): Initialize the protected
10385         object's owner to Null_Task.
10386         (Lock): If pragma Detect_Blocking is in effect and the caller of this
10387         procedure is already the protected object's owner then Program_Error
10388         is raised. In addition the protected object's owner is updated.
10389         (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller
10390         of this procedure is already the protected object's owner then
10391         Program_Error is raised.
10392         In addition the protected object's owner is updated.
10393         (Unlock): Remove the ownership of the protected object.
10394
10395         * s-taprob.ads (Protection): Add the field Owner, used to store the
10396         protected object's owner.
10397         This component is needed for detecting one type of potentially blocking
10398         operations (external calls on a protected subprogram with the same
10399         target object as that of the protected action). Document the rest of
10400         the components.
10401
10402         * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries):
10403         Initialize the protected object's owner to Null_Task.
10404         (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the
10405         caller of this procedure is already the protected object's owner then
10406         Program_Error is raised.
10407         Do not raise Program_Error when this procedure is called from a
10408         protected action.
10409         (Unlock_Entries): Remove the ownership of the protected object.
10410         (Lock_Entries): If pragma Detect_Blocking is in effect and the caller
10411         of this procedure is already the protected object's owner then
10412         Program_Error is raised.
10413         Do not raise Program_Error when this procedure is called from
10414         a protected action.
10415
10416         * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner,
10417         used to store the protected object's owner.
10418
10419         * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in
10420         effect and this procedure (a potentially blocking operation) is called
10421         from whithin a protected action, Program_Error is raised.
10422         (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect
10423         and this procedure (a potentially blocking operation) is called from
10424         whithin a protected action, Program_Error is raised.
10425
10426 2005-03-17  Vincent Celier  <celier@adacore.com>
10427             Nicolas Setton  <setton@adacore.com>
10428
10429         * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini"
10430         switch, not supported by the linker on Darwin. Add '_' before
10431         <library>init, as this character is added unconditionally by the
10432         compiler.
10433         (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the
10434         correct one ".dylib". This fixes detection of the archive files when
10435         building library projects.
10436
10437 2005-03-17  Vincent Celier  <celier@adacore.com>
10438
10439         * switch-m.adb (Normalize_Compiler_Switches): Recognize switches
10440         -gnat83, -gnat95 and -gnat05.
10441
10442 2005-03-17  Vasiliy Fofanov  <fofanov@adacore.com>
10443
10444         * gnat_ugn.texi: Document gnatmem restriction
10445
10446 2005-03-17  Thomas Quinot  <quinot@adacore.com>
10447
10448         * snames.adb: Document new TSS names introduced by exp_dist/exp_tss
10449         cleanup
10450
10451 2005-03-17  Robert Dewar  <dewar@adacore.com>
10452
10453         * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb,
10454         a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb,
10455         s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting
10456
10457         * casing.adb: Comment improvements
10458
10459 2005-03-17  Pascal Obry  <obry@adacore.com>
10460
10461         * g-expect.adb: Minor reformatting.
10462
10463 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
10464
10465         * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info)
10466         (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi
10467         to dependencies.
10468
10469 2005-03-15  Vincent Celier  <celier@adacore.com>
10470
10471         * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For):
10472         Add new parameter In_Tree to specify the project tree: needed
10473         by the project manager. Adapt to changes in project manager
10474         using new parameter In_Tree.
10475
10476 2005-03-15  Jakub Jelinek  <jakub@redhat.com>
10477
10478         * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h,
10479         ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of
10480         ada/bldtools to avoid make -jN failures.
10481
10482 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10483
10484         * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result
10485         to NULL_TREE on entry.
10486
10487 2005-03-15  Robert Dewar  <dewar@adacore.com>
10488
10489         * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads,
10490         system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads,
10491         system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads,
10492         system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads,
10493         system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads,
10494         system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads,
10495         system-interix.ads, system-solaris-sparc.ads,
10496         system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads,
10497         system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads,
10498         system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads,
10499         system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads,
10500         system-linux-s390.ads, system-linux-s390x.ads: Add line defining
10501         Compiler_System_Version to be False.
10502
10503         * opt.ads: Add new flag Opt.Address_Is_Private
10504
10505         * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private
10506         Add new parameter Compiler_System_Version to avoid checking for
10507         completeness of parameters when compiler is compiling itself.
10508         Allows old versions of GNAT to be compiled with new compiler.
10509
10510 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10511
10512         * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function
10513         (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the
10514         calling thread.
10515         (Stack_Base_Available): New flag.
10516         (Get_Page_Size): New overloaded functions imported from C.
10517         (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL,
10518         PROT_ON, PROT_OFF): New constants.
10519         (mprotect): New function imported from C.
10520         (pthread_teb_t): New record type.
10521
10522         * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone.
10523         (Create_Task): Account for the Yellow Zone and the guard page.
10524
10525 2005-03-15  Vincent Celier  <celier@adacore.com>
10526
10527         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
10528         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
10529         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
10530         mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For,
10531         Library_File_Name_For): Add new parameter In_Tree
10532         to specify the project tree: needed by the project manager.
10533         Adapt to changes in project manager using new parameter In_Tree.
10534         Remove local imports, use functions in System.CRTL.
10535
10536         * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed
10537         to use the project manager.
10538
10539         * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter
10540         In_Tree to designate the project tree. Adapt to changes in the project
10541         manager, using In_Tree.
10542
10543         * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library,
10544         Copy_Interface_Sources): Add new parameter In_Tree to specify the
10545         project tree: needed by the project manager.
10546         (Build_Library): Check that Arg'Length >= 6 before checking if it
10547         contains "--RTS=...".
10548
10549         * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For,
10550         Library_File_Name_For): Add new parameter In_Tree to specify the
10551         project tree: needed by the project manager.
10552
10553         * prj.ads, prj.adb: Major modifications to allow several project trees
10554         in memory at the same time.
10555         Change tables to dynamic tables and hash tables to dynamic hash
10556         tables. Move tables and hash tables from Prj.Com (in the visible part)
10557         and Prj.Env (in the private part). Move some constants from the visible
10558         part to the private part. Make other constants deferred.
10559         (Project_Empty): Make it a variable, not a function
10560         (Empty_Project): Add parameter Tree. Returns the data with the default
10561         naming data of the project tree Tree.
10562         (Initialize): After updating Std_Naming_Data, copy its value to the
10563         component Naming of Project Empty.
10564         (Register_Default_Naming_Scheme): Use and update the default naming
10565         component of the project tree, instead of the global variable
10566         Std_Naming_Data.
10567         (Standard_Naming_Data): Add defaulted parameter Tree. If project tree
10568         Tree is not defaulted, return the default naming data of the Tree.
10569         (Initial_Buffer_Size): Constant moved from private part
10570         (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new
10571         variables initialized in procedure Initialize.
10572         (Add_To_Buffer): Add two in out parameters to replace global variables
10573         Buffer and Buffer_Last.
10574         (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New
10575         functions.
10576         Adapt to changes to use new type Project_Tree_Ref and dynamic tables and
10577         hash tables.
10578         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10579         for the project tree.
10580         (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and
10581         constant at the beginning of the package spec, so that they cane be used
10582         in subprograms before their full declarations.
10583         (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref
10584         (Empty_Project): Add parameter of type Project_Node_Ref
10585         (Private_Project_Tree_Data): Add component Default_Naming of type
10586         Naming_Data.
10587         (Buffer, Buffer_Last): remove global variables
10588         (Add_To_Buffer): Add two in out parameters to replace global variables
10589         Buffer and Buffer_Last.
10590         (Current_Packages_To_Check): Remove global variable
10591         (Empty_Name): Move to private part
10592         (No-Symbols): Make it a constant
10593         (Private_Project_Tree_Data): New type for the private part of the
10594         project tree data.
10595         (Project_Tree_Data): New type for the data of a project tree
10596         (Project_Tree_Ref): New type to designate a project tree
10597         (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter
10598         for the project tree.
10599
10600         * prj-attr.ads: Add with Table; needed, as package Prj no longer
10601         imports package Table.
10602
10603         * prj-com.adb: Remove empty, no longer needed body
10604
10605         * prj-com.ads: Move most of the content of this package to package Prj.
10606
10607         * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to
10608         designate the project node tree and Packages_To_Check to replace
10609         global variable Current_Packages_To_Check.
10610         Add new parameters In_Tree and Packages_To_Check to local subprograms,
10611         when needed. Adapt to changes in project manager with project node tree
10612         In_Tree.
10613
10614         * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the
10615         project tree to most subprograms. Move tables and hash tables to
10616         private part of package Prj.
10617         Adapt to changes in project manager using project tree In_Tree.
10618
10619         * prj-makr.adb (Tree): New constant to designate the project node tree
10620         Adapt to change in project manager using project node tree Tree
10621
10622         * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly
10623         display the Library_Src_Dir and the Library_Dir.
10624         Add new parameter In_Tree to designate the project node tree to most
10625         subprograms. Adapt to changes in the project manager, using project tree
10626         In_Tree.
10627         (Check_Naming_Scheme): Do not alter the casing on platforms where
10628         the casing of file names is not significant.
10629         (Check): Add new parameter In_Tree to designate the
10630
10631         * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to
10632         designate the project tree.
10633         Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process
10634
10635         * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables,
10636         to replace those that were in the private part of package Prj.
10637         Add new parameter In__Tree to designate the project node tree to most
10638         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10639         (Post_Parse_Context_Clause): When specifying the project node of a with
10640         clause, indicate that it is a limited with only if there is "limited"
10641         in the with clause, not necessarily when In_Limited is True.
10642         (Parse): Add new parameter In_Tree to designate the project node tree
10643
10644         * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to
10645         designate the project node tree. Adapt to change in Prj.Tree with
10646         project node tree In_Tree.
10647
10648         * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project
10649         tree In_Tree in the call to function Empty_Process to give its initial
10650         value to the project data Processed_Data.
10651         Add new parameters In_Tree to designate the project tree and
10652         From_Project_Node_Tree to designate the project node tree to several
10653         subprograms. Adapt to change in project manager with project tree
10654         In_Tree and project node tree From_Project_Node_Tree.
10655
10656         * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables,
10657         to replace those that were in the private part of package Prj.
10658         Add new parameter In_Tree to designate the project node tree to most
10659         subprograms. Adapt to change in Prj.Tree with project node tree In_Tree.
10660
10661         * prj-tree.ads, prj-tree.adb: Add new parameter of type
10662         Project_Node_Tree_Ref to most subprograms.
10663         Use this new parameter to store project nodes in the designated project
10664         node tree.
10665         (Project_Node_Tree_Ref): New type to designate a project node tree
10666         (Tree_Private_Part): Change table to dynamic table and hash tables to
10667         dynamic hash tables.
10668
10669         * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate
10670         the project tree to most subprograms. Adapt to changes in project
10671         manager using project tree In_Tree.
10672
10673         * makegpr.adb (Project_Tree): New constant needed to use project
10674         manager.
10675
10676 2005-03-15  Olivier Hainque  <hainque@adacore.com>
10677
10678         * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler
10679         for sigactions with SA_SIGINFO set. Call
10680         __gnat_adjust_context_for_raise before raising, to perform the
10681         potentially required adjustments to the machine context for the GCC
10682         unwinder.
10683
10684         * raise.h (__gnat_adjust_context_for_raise): New prototype.
10685
10686         * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision.
10687         Adjust PC by one in the provided machine context.
10688         (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags,
10689         so that the handler is passed the context structure to adjust prior to
10690         the raise.
10691         (__gnat_error_handler) HPUX: Adjust the signature to match what an
10692         SA_SIGINFO sigaction should look like. Call
10693         __gnat_adjust_context_for_raise before actually raising.
10694         (__gnat_adjust_context_for_raise): Default noop to help PC
10695         adjustments before raise from signal handlers.
10696         (__gnat_error_handler): Indirectly call a predicate function to
10697         determine if a condition should be resignaled or not.
10698         (__gnat_set_resignal_predicate): User interface to modify the predicate.
10699         (__gnat_default_resignal_p): Default GNAT predicate.
10700
10701 2005-03-15  Doug Rupp  <rupp@adacore.com>
10702
10703         * adaint.c: Prefix #include of VMS system header files with vms/
10704         [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS.
10705         Do not define a dummy function "convert_addresses" under Darwin,
10706         not needed.
10707
10708         * tb-alvms.c, expect.c: Prefix #include of VMS system header files
10709         with vms/
10710
10711 2005-03-15  Nicolas Setton  <setton@adacore.com>
10712
10713         * tracebak.c: Under Darwin, use the same unwinding mechanisms as under
10714         PPC/AIX.
10715
10716 2005-03-15  Robert Dewar  <dewar@adacore.com>
10717
10718         * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for
10719         AI-386.
10720
10721         * a-retide.ads: Minor comment changes
10722
10723 2005-03-15  Robert Dewar  <dewar@adacore.com>
10724
10725         * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads,
10726         a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move
10727         Realloc_For_Chunk to private part of package.
10728         New subprograms for AI-301
10729
10730         * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of
10731         Get_Line procedure.
10732         Avoid unnecessary use of Get/Set_Wide_String
10733
10734 2005-03-15  Robert Dewar  <dewar@adacore.com>
10735
10736         PR ada/13470
10737
10738         * a-stunau.ads, a-stunau.adb:
10739         Change interface to allow efficient (and correct) implementation
10740         The previous changes to allow extra space in unbounded strings had
10741         left this interface a bit broken.
10742
10743         * a-suteio.adb: Avoid unnecessary use of Get/Set_String
10744
10745         * g-spipat.ads, g-spipat.adb: New interface for Get_String
10746         Minor reformatting (function specs)
10747
10748         * g-spitbo.adb: New interface for Get_String
10749
10750         * g-spitbo.ads: Minor reformatting
10751
10752         * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String
10753
10754         * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String
10755
10756 2005-03-15  Javier Miranda  <miranda@adacore.com>
10757             Robert Dewar  <dewar@adacore.com>
10758             Thomas Quinot  <quinot@adacore.com>
10759             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10760
10761         * atree.ads, atree.adb: Add support for Elist24 field
10762
10763         * atree.h: Fix wrong definition of Field27
10764         Add support for Elist16 field
10765         Add support for Elist24 field
10766
10767         * einfo.ads, einfo.adb (Abstract_Interfaces,
10768         Set_Abstract_Interfaces): New subprograms.
10769         (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New
10770         subprograms.
10771         (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of
10772         entities rather than a single node.
10773         (Is_Interface, Set_Is_Interface): New subprogram
10774         (First_Tag_Component): New syntesized attribute
10775         (Next_Tag_Component): New synthesized attribute
10776         (Write_Entity_Flags): Upgraded to write Is_Interface
10777         (Write_Field24_Name): Upgraded to write Abstract_Interfaces
10778         (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias
10779         (Task_Body_Procedure): New subprogram to read this attribute.
10780         (Set_Task_Body_Procedure): New subprogram to set this attribute.
10781         (Has_Controlled_Component): Now applies to all entities.
10782         This is only a documentation change, since it always worked to apply
10783         this to other than composite types (yielding false), but now this is
10784         official.
10785         Update documentation on Must_Be_Byte_Aligned for new spec
10786
10787         * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb,
10788         exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the
10789         uses of the Access_Disp_Table attribute to reference the first dispatch
10790         table associated with a tagged type. As
10791         part of the implementation of abstract interface types,
10792         Access_Disp_Table has been redefined to contain a list of dispatch
10793         tables (rather than a single dispatch table).
10794         Similarly, upgrade all the references to Tag_Component by the
10795         new attribute First_Tag_Component.
10796         (Find_Inherited_TSS): Moved to exp_tss.
10797         Clean up test in Expand_N_Object_Declaration for cases
10798         where we need to do a separate assignment of the initial value.
10799         (Expand_N_Object_Declaration): If the expression in the
10800         declaration of a tagged type is an aggregate, no need to generate an
10801         additional tag assignment.
10802         (Freeze_Type): Now a function that returns True if the N_Freeze_Entity
10803         is to be deleted.
10804         Bit packed array ops are only called if operands are known to be
10805         aligned.
10806         (Component_Equality): When returning an N_Raise_Program_Error statement,
10807         ensure that its Etype is set to Empty to avoid confusing GIGI (which
10808         expects that only expressions have a bona fide type).
10809         (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly
10810         determine the amount of data to be copied.
10811
10812         * par.adb (P_Interface_Type_Definition): New subprogram that parses the
10813         new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345):
10814             INTERFACE_TYPE_DEFINITION ::=
10815               [limited | task | protected | synchronized] interface
10816                 [AND interface_list]
10817
10818         * par-ch3.adb (P_Type_Declaration): Modified to give support to
10819         interfaces.
10820         (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to
10821         interfaces.
10822         (P_Interface_Type_Definition): New subprogram that parses the new
10823         syntax rule of Ada 2005 interfaces
10824         (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error
10825         messages by the correct RENAMES (quotes removed).
10826
10827         * sem_prag.adb: Upgrade all the references to Tag_Component by the new
10828         attribute First_Tag_Component.
10829
10830         * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed
10831         (Interface_List, Set_Interface_List): New subprograms.
10832         (Interface_Present, Set_Interface_Present): New subprograms.
10833         (Limited_Present, Set_Limited_Present): Available also in derived
10834         type definition nodes.
10835         (Protected_Present, Set_Protected_Present): Available also in
10836         record type definition and
10837         derived type definition nodes.
10838         (Synchronized_Present, Set_Synchronized_Present): New subprograms.
10839         (Task_Present, Set_Task_Present): New subprogram.
10840         (Task_Body_Procedure): Removed.
10841         (Set_Task_Body_Procedure): Removed.
10842         These subprogram have been removed because the attribute
10843         Task_Body_Procedure has been moved to the corresponding task type
10844         or task subtype entity to leave a field free to store the list
10845         of interfaces implemented by a task (for AI-345)
10846         Add Expression field to N_Raise_Statement node for Ada 2005 AI-361
10847         (Null_Exclusion_Present): Change to Flag11, to avoid conflict with
10848         expression flag Do_Range_Check
10849         (Exception_Junk): Change to Flag7 to accomodate above change
10850         (Box_Present, Default_Name, Specification, Set_Box_Present,
10851         Set_Default_Name, Set_Specification): Expand the expression
10852         "X in N_Formal_Subprogram_Declaration" into the corresponding
10853         two comparisons. Required to use the csinfo tool.
10854
10855         * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where
10856         "with string" given.
10857
10858         * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string
10859         expression given.
10860
10861         * par-ch11.adb (P_Raise_Statement): Recognize with string expression
10862         in 2005 mode
10863
10864         * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity
10865         attribute Task_Body_Procedure rather than the old semantic field that
10866         was available in the task_type_declaration node.
10867
10868         * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal
10869         interface type definitions.
10870         (P_Formal_Derived_Type_Definition): Modified to handle the list of
10871         interfaces.
10872
10873         * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a
10874         task type declaration.
10875         (P_Protected): Modified to handle the list of interfaces in a
10876         protected type declaration.
10877
10878 2005-03-15  Doug Rupp  <rupp@adacore.com>
10879             Vincent Celier  <celier@adacore.com>
10880
10881         * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit
10882         (Gen_Output_File_C): Likewise.
10883         (Gen_Main_C): Issue #include <stdlib.h> to avoid warning
10884
10885 2005-03-15  Thomas Quinot  <quinot@adacore.com>
10886
10887         * checks.adb (Get_E_First_Or_Last): When the expression being retrieved
10888         is an N_Raise_Constraint_Error node, create a new copy of it without
10889         going through a call to Duplicate_Subexpr.
10890
10891 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
10892             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10893             Nicolas Setton  <setton@adacore.com>
10894             Ed Schonberg  <schonberg@adacore.com>
10895
10896         PR ada/19900
10897         PR ada/19408
10898         PR ada/19140
10899         PR ada/20255
10900
10901         * decl.c (gnat_to_gnu_field): Reject aliased components with a
10902         representation clause that prescribes a size not equal to the rounded
10903         size of their types.
10904         (gnat_to_gnu_entity, case E_Component): Always look at
10905         Original_Record_Component if Present and not the entity.
10906         (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes
10907         of tagged extension types by not making field for components that are
10908         inside the parent.
10909         (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula
10910         (gnat_to_gnu_entity) <E_Variable>: Do not convert again the
10911         expression to the type of the object when the object is constant.
10912         Reverse defer_debug_incomplete_list before traversing it, so that trees
10913         are processed in the order at which they were added to the list. This
10914         order is important when using the stabs debug format.
10915         If we are deferring the output of debug information, also defer this
10916         output for a function return type.
10917         When adding fields to a record, prevent emitting debug information
10918         for incomplete records, emit the information only when the record is
10919         complete.
10920         (components_to_record): New parameter defer_debug.
10921         (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set.
10922         (gnat_to_gnu_field_decl): New function.
10923         (substitution_list, annotate_rep): Call it.
10924         (gnat_to_gnu_entity, case E_Record_Subtype): Likewise.
10925         (gnat_to_gnu_entity, case E_Record_Type): Likewise.
10926         No longer update discriminants to not be a COMPONENT_REF.
10927         (copy_alias_set): Strip padding from input type; also handle
10928         unconstrained arrays properly.
10929
10930         * gigi.h (write_record_type_debug_info): New function.
10931         Convert to use ANSI-style prototypes. Remove unused
10932         declarations for emit_stack_check, elab_all_gnat and
10933         set_second_error_entity.
10934         (gnat_to_gnu_field_decl): New decl.
10935
10936         * utils.c (write_record_type_debug_info): New function.
10937         (finish_record_type): Delegate generation of debug information to
10938         write_record_type_debug_info.
10939         (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation.
10940         (update_pointer_to): Fix pasto.
10941         (convert) <UNION_TYPE>: Accept slight type variations when
10942         converting to an unchecked union type.
10943
10944         * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True,
10945         replace the N_Freeze_Entity with a null statement.
10946
10947         * freeze.adb (Freeze_Expression): If the freeze nodes are generated
10948         within a constrained subcomponent of an enclosing record, place the
10949         freeze nodes in the scope stack entry for the enclosing record.
10950         (Undelay_Type): New Subprogram.
10951         (Set_Small_Size): Pass T, the type to modify; all callers changed.
10952         (Freeze_Entity, Freeze_Record_Type): Change the way we handle types
10953         within records; allow them to have freeze nodes if their base types
10954         aren't frozen yet.
10955
10956         * exp_util.adb (Remove_Side_Effects): Properly test for
10957         Expansion_Delayed and handle case when it's inside an
10958         N_Qualified_Expression.
10959
10960         * sem_ch3.adb (Derived_Type_Declaration): New predicate
10961         Comes_From_Generic, to recognize accurately that the parent type in a
10962         derived type declaration can be traced back to a formal type, because
10963         it is one or is derived from one, or because its completion is derived
10964         from one.
10965         (Constrain_Component_Type): If component comes from source and has no
10966         explicit constraint, no need to constrain in in a subtype of the
10967         enclosing record.
10968         (Constrain_Access, Constrain_Array): Allow itypes to be delayed.
10969         Minor change to propagate Is_Ada_2005 flag
10970
10971         * trans.c (gnat_to_gnu, case N_Aggregate): Verify that
10972         Expansion_Delayed is False.
10973         (assoc_to_constructor): Ignore fields that have a
10974         Corresponding_Discriminant.
10975         (gnat_to_gnu) <N_Return_Statement>: Restructure. If the
10976         function returns "by target", dereference the target pointer using the
10977         type of the actual return value.
10978         <all>: Be prepared for a null gnu_result.
10979         (processed_inline_subprograms): Check flag_really_no_inline
10980         instead of flag_no_inline.
10981         (set_second_error_entity): Remove unused function.
10982         (gnat_to_gnu, case N_Selected_Component): Call
10983         gnat_to_gnu_field_decl.
10984         (assoc_to_constructor): Likewise.
10985
10986 2005-03-15  Robert Dewar  <dewar@adacore.com>
10987             Ed Schonberg  <schonberg@adacore.com>
10988             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
10989
10990         * exp_pakd.adb (Create_Packed_Array_Type): Do not set
10991         Must_Be_Byte_Aligned for cases where we do not need to use a
10992         System.Pack_nn unit.
10993
10994         * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well
10995         as procedures.
10996         Needed now that we do some processing for IN parameters as well. This
10997         may well fix some unrelated errors.
10998         (Expand_Call): Handle case of unaligned objects (in particular those
10999         that come from packed arrays).
11000         (Expand_Inlined_Call): If the subprogram is a renaming as body, and the
11001         renamed entity is an inherited operation, re-expand the call using the
11002         original operation, which is the one to call.
11003         Detect attempt to inline parameterless recursive subprogram.
11004         (Represented_As_Scalar): Fix to work properly with private types
11005         (Is_Possibly_Unaligned_Object): Major rewrite to get a much more
11006         accurate estimate. Yields True in far fewer cases than before,
11007         improving the quality of code that depends on this test.
11008
11009         * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate
11010         over both visible and private declarations to remove them from tree,
11011         and mark subprograms declared in package as eliminated, to prevent
11012         spurious use in subsequent compilation of generic units in the context.
11013
11014         * exp_util.ads: Minor cleanup in variable names
11015
11016         * sem_eval.ads, sem_eval.adb: Minor reformatting
11017         (Compile_Time_Known_Bounds): New function
11018
11019 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11020
11021         * exp_ch7.adb (Convert_View): Use base types of underlying types when
11022         determining whether an unchecked conversion is needed for the argument
11023         of an initialization call.
11024
11025 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11026
11027         * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type
11028         that appears in the instantiation rather than the internal subtype
11029         generated in the wrapper package, to avoid anomalies in gigi when the
11030         target is derived from a private type whose full view is an access type.
11031
11032 2005-03-15  Robert Dewar  <dewar@adacore.com>
11033
11034         * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used,
11035         not needed.
11036         Add documentation to replace the use of this flag
11037         Fix kludge for Maximum_Alignment on x86 so that it does not apply to
11038         the x86_64.
11039
11040 2005-03-15  Thomas Quinot  <quinot@adacore.com>
11041
11042         * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved
11043         here from exp_attr so it can be shared between exp_attr and exp_dist.
11044         (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of
11045         all TSS names, not a subset thereof, and the previous name introduced
11046         an unnecessarily confusion that a distinction might exist between
11047         "OK" TSS names and some "not OK" TSS names.
11048
11049 2005-03-15  Doug Rupp  <rupp@adacore.com>
11050
11051         * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style
11052         Command_Name.
11053
11054 2005-03-15  Pascal Obry  <obry@adacore.com>
11055             Eric Botcazou  <ebotcazou@adacore.com>
11056
11057         PR ada/20226
11058         PR ada/20344
11059
11060         * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler()
11061         when IN_RTS. This is to work around a bootstrap path problem.
11062
11063         * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler)
11064         table and pass it to __gnat_install_SEH_handler().
11065         (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS.
11066
11067         * lang.opt: Fix specification of -fRTS=.
11068
11069 2005-03-15  Doug Rupp  <rupp@adacore.com>
11070             Bernard Banner  <banner@adacore.com>
11071             Vincent Celier  <celier@adacore.com>
11072             Arnaud Charlet  <charlet@adacore.com>
11073
11074         PR ada/6852
11075         This change works fine when gnatlib is built from the gcc directory,
11076         but does not work when using the libada Makefile, since GCC_FOR_TARGET
11077         is not passed to ada/Makefile.in, so more work is needed by a
11078         Makefile/configure expert.
11079
11080         * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library.
11081         set GMEM_LIB on ia64 linux to add optional support for gnatmem.
11082         Setup gnatlink switch -M for x86_64 linux, as it is already setup
11083         for Linux x86.
11084         (gnatlib-shared-default): Use GNATLIBCFLAGS as well.
11085         Run ranlib on libgccprefix.a
11086         Define PREFIX_OBJS for Darwin, to build libgccprefix.
11087         (ADA_INCLUDE_SRCS): Split Ada packages.
11088
11089 2005-03-15  Robert Dewar  <dewar@adacore.com>
11090
11091         * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind
11092
11093         * impunit.adb: Add GNAT.UTF_32
11094
11095         * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff
11096
11097         * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng
11098         now uses GNAT.UTF_32).
11099
11100         * g-utf_32.ads, g-utf_32.adb: This is a new unit with full
11101         capabilities for categorizing characters using Unicode categories
11102
11103 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11104
11105         * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an
11106         instantiation that has been rewritten as a package body, retrieve spec
11107         to generate proper name for implicit_with_clause.
11108         (Install_Parents): Recognize a parent that is an instantiation but has
11109         been rewritten as a package declaration during analysis.
11110
11111 2005-03-15  Javier Miranda  <miranda@adacore.com>
11112             Ed Schonberg  <schonberg@adacore.com>
11113
11114         * sem_ch12.adb (Instantiate_Object): If the analysis of the actual
11115         parameter reported some error we immediately return. This improves the
11116         behaviour of the frontend in case of errors.
11117         (Install_Parent, Remove_Parent): Introduce new flag
11118         Parent_Unit_Visible, to preserve the proper visibility of the ultimate
11119         ancestor of a generic child unit, when the child is being instantiated.
11120         (Inline_Instance_Body): If we are compiling the private
11121         part or the body of a child unit, restore the proper visibility of the
11122         parents after compiling the instance body.
11123
11124 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11125             Javier Miranda  <miranda@adacore.com>
11126
11127         PR ada/15608
11128         * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion
11129         of a private type, in which case it is underlying_type that denotes
11130         the proper task. Also modified to use the new entity attribute
11131         that is directly available in the task type and task subtype entities
11132         (Build_Actual_Subtype_Of_Component): Handle properly multidimensional
11133         arrays when other dimensions than the first are constrained by
11134         discriminants of an enclosing record.
11135         (Insert_Explicit_Dereference): If the prefix is an indexed component or
11136         a combination of indexed and selected components, find ultimate entity
11137         and generate the appropriate reference for it, to suppress spurious
11138         warnings.
11139         (Note_Possible_Modification): If an entity name has no entity, return.
11140         (Is_Variable): A function call never denotes a variable.
11141         (Requires_Transient_Scope): For record types, recurse only on
11142         components, not on internal subtypes that may have been generated for
11143         constrained components.
11144
11145 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11146
11147         * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked
11148         Eliminated as candidates for resolution. Both efficient, and avoids
11149         anomalies with operators declared in deleted code.
11150         (Process_Implicit_Dereference_Prefix): Use this procedure whenever
11151         expansion is disabled (as when compiling a generic) to prevent spurious
11152         warnings on prefixes of selected components.
11153
11154 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11155
11156         * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is
11157         attached to a list before checking whether it appears in the private
11158         declarations of the current package.
11159         (Make_Inequality_Operator): Insert declaration in proper declarative
11160         list rather than just setting the Parent field, so that
11161         Is_Private_Declaration can handle it properly.
11162
11163 2005-03-15  Ed Schonberg  <schonberg@adacore.com>
11164
11165         * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is
11166         a renaming a body, check that the renamed subprogram in not intrinsic.
11167         (Find_Direct_Name): If several use_visible entities hide
11168         each other, and the context is a predefined file compiled through
11169         rtsfind, keep only the entity that comes from a predefined file.
11170
11171 2005-03-15  Geert Bosch  <bosch@adacore.com>
11172
11173         * s-fatgen.adb (Valid): Extend special exceptions to account for long
11174         long float padding to also cover AMD64 and IA64.
11175
11176 2005-03-15  Gary Dismukes  <dismukes@adacore.com>
11177
11178         * s-imgwch.adb: Add with and use of Interfaces.
11179         (Img_Wide_Character): Change type of Val to Unsigned_16.
11180         (Img_Wide_Wide_Character): Change type of Val to Unsigned_32.
11181
11182 2005-03-15  Matthew Gingell  <gingell@adacore.com>
11183
11184         * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX.
11185
11186 2005-03-15  Robert Dewar  <dewar@adacore.com>
11187
11188         * usage.adb: Add missing lines for -gnat95 and -gnat05 switches
11189
11190         * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag
11191
11192         * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95
11193
11194 2005-03-15  Robert Dewar  <dewar@adacore.com>
11195
11196         * s-bitops.adb, s-bitops.ads,
11197         s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads,
11198         s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb,
11199         tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads,
11200         s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads,
11201         s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads,
11202         s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads,
11203         s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads,
11204         s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor
11205         reformatting.
11206
11207 2005-03-15  Eric Botcazou  <ebotcazou@adacore.com>
11208
11209         * utils2.c (build_binary_op): Fix typo.
11210
11211 2005-03-15  Doug Rupp  <rupp@adacore.com>
11212
11213         * s-crtl.ads (popen,pclose): New imports.
11214
11215 2005-03-15  Cyrille Comar  <comar@adacore.com>
11216
11217         * comperr.adb (Compiler_Abort): remove references to obsolete
11218         procedures in the bug boxes for various GNAT builds.
11219
11220 2005-03-15  Vincent Celier  <celier@adacore.com>
11221
11222         * snames.ads, snames.adb: Save as Unix text file, not as DOS text file
11223
11224 2005-03-15  Geert Bosch  <bosch@adacore.com>
11225             Arnaud Charlet  <charlet@adacore.com>
11226             Robert Dewar  <dewar@adacore.com>
11227             Cyrille Comar  <comar@adacore.com>
11228             Sergey Rybin  <rybin@adacore.com>
11229
11230         * gnat_ugn.texi: Remove extended inline assembly example, as it was far
11231         too specific and long-winded to be appropriate for the GNAT User's
11232         Guide.
11233         Warn about use of GCC switches not documented in the GNAT User's Guide,
11234         as these may cause generated code to not conform to Ada semantics.
11235         Remove mention of -gdwarf-2 for sparc64, since this is now the default.
11236         Add documentation for -gnat95 and -gnat05 switches
11237         Remove paragraph documenting obsolete way to refer to third party
11238         libraries.
11239         Add a few references to Ada_05 that were missing.
11240         Update documentation on -gnatZ/-gnatL.
11241         Document limitation when using -m64 under Solaris.
11242         Change the "Name Casing" subsection of the pretty-printer section
11243         according to the changes in the dictionary processing.
11244
11245         * gnat_rm.texi: Document the Ada_05 pragma.
11246         Section on record representation clauses describes the new more
11247         relaxed rules about placement of large packed bit array components.
11248         Add documentation of GNAT.UTF_32
11249
11250 2005-03-12  Daniel Berlin <dberlin@dberlin.org>
11251
11252         * misc.c (gnat_post_options): Turn off structural
11253         aliasing for now.
11254
11255 2005-03-08  Laurent Guerby <laurent@guerby.net>
11256
11257         * system-linux-sparc.ads: Fix typo in previous commit.
11258
11259 2005-03-07  James A. Morrison <phython@gcc.gnu.org>
11260             Laurent Guerby <laurent@guerby.net>
11261
11262         PR ada/20035
11263         * system-linux-sparc.ads: New.
11264         * Makefile.in: Add sparc linux entry.
11265
11266 2005-02-27  Danny Smith  <dannysmith@users.sourceforge.net>
11267
11268         * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth
11269         parameters as unused.
11270
11271 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
11272         Partial merge from libada-gnattools-branch:
11273
11274         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11275         * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags
11276         into code in gnattools/Makefile.in.  Remove direct dependencies on
11277         stamp-tools by tools clauses.
11278         2004-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
11279         * config-lang.in: Add gnattools to $lang_dirs.
11280
11281 2005-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
11282
11283         PR ada/19942
11284         * utils.c (gnat_type_for_mode): Return null instead of ICE because
11285         we asked for an unknown mode.
11286
11287 2005-02-12  Richard Henderson  <rth@redhat.com>
11288
11289         * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes;
11290         validate SCALAR_INT_MODE_P before calling gnat_type_for_size.
11291
11292 2005-02-10  Andreas Jaeger  <aj@suse.de>
11293
11294         * init.c (__gnat_initialize): Mark parameter as unused.
11295
11296 2005-02-09  Doug Rupp  <rupp@adacore.com>
11297
11298         * g-expect-vms.adb (Non_Blocking_Spawn): Separate out.
11299         * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits.
11300
11301 2005-02-09  Doug Rupp  <rupp@adacore.com>
11302
11303         * gnatchop.adb (dup, dup2),
11304         g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL.
11305
11306         * gnatlbr.adb (mkdir),
11307         mlib-tgt-vms-ia64.adb (popen, plose):  Import with decc$ prefix.
11308
11309         * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import.
11310
11311 2005-02-09  Doug Rupp  <rupp@adacore.com>
11312
11313         * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions.
11314
11315 2005-02-09  Robert Dewar  <dewar@adacore.com>
11316             Thomas Quinot  <quinot@adacore.com>
11317             Javier Miranda  <miranda@adacore.com>
11318             Pascal Obry  <obry@adacore.com>
11319             Ed Schonberg  <schonberg@adacore.com>
11320             Doug Rupp  <rupp@adacore.com>
11321             Gary Dismukes  <dismukes@adacore.com>
11322             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11323
11324         * g-zstspl.ads: New file.
11325
11326         * a-chahan.ads, a-chahan.adb: Add declarations from AI-285
11327
11328         * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in
11329         Ada 95 mode
11330         Add definition of Wide_Wide_Space for AI-285
11331
11332         * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new
11333         interface (to support Ada 95 and Ada 2005 units).
11334         Add Unbounded_IO files
11335         Add entries for Wide_Wide packages for AI-285
11336         Add list of containers packages to Ada 2005 unit list
11337
11338         * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to
11339         support new Unbounded_IO package cleanly.
11340
11341         * g-utf_32.ads, g-utf_32.adb: New files.
11342
11343         * Makefile.rtl: Add entry for g-utf_32
11344         Add new files for Unbounded_IO
11345         Adjust make file for new AI-285 wide wide packages
11346         Add AI-302 containers to the run time.
11347
11348         * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads,
11349         a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New
11350         subprograms for AI-301.
11351
11352         * a-stwiun.adb, a-stwiun.ads: Minor reformatting.
11353
11354         * a-stunau.ads: Minor comment correction
11355
11356         * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes
11357         etc.
11358         Also extend Text_IO_Kludge to support Wide_Wide_Text_IO
11359         (Check_RPC): Update to match changes in expanded code.
11360         Clean up unused entity.
11361
11362         * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String
11363         was not taken into account.
11364         This includes proper initialization with Normalize_Scalars.
11365         (Get_Simple_Init_Val): Major rewrite for initialize scalars and
11366         normalize scalars cases (particularly the latter) to do a better job
11367         of finding invalid representations.
11368
11369         * s-scaval.ads, s-scaval.adb: Add values for zero invalid values
11370
11371         * s-strops.ads, s-strops.adb: Remove string normalize routines, never
11372         used
11373
11374         * exp_dist.adb: Add support for wide wide character type
11375         (Expand_Receiving_Stubs_Bodies): For a package declaration that has a
11376         private part, generate stub bodies at the end of the private part,
11377         not the visible part.
11378         (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for
11379         PolyORB support.
11380         (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and
11381         generic wrapper to execute final processing after completing the
11382         expansion of the RPC receiver for an RACW.
11383
11384         * snames.h, snames.ads, snames.adb: Add definitions for wide_wide
11385         packages and attributes.
11386         (Preset_Names): Addition of the new reserved words of Ada 2005,
11387         that is interface, overriding and synchronized.
11388         (Get_Pragma_Id): Give support to the use of the new reserved word
11389         "interface" as a pragma name.
11390         (Is_Pragma_Name): Give support to the use of the new reserved word
11391         "interface" as a pragma name.
11392         (Preset_Names): Add stream_size string for the Stream_Size Ada2005
11393         attribute implementation.
11394
11395         * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity
11396         checks to entities that are output parameters of Asm operations.
11397         Handle the Stream_Size attribute.
11398         Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width
11399
11400         * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type
11401
11402         * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error
11403         for second parameter being 0.0.
11404         Add support for wide wide character type.
11405         (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute.
11406
11407         * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb,
11408         s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads,
11409         s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads,
11410         s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support
11411         for wide wide character cases.
11412
11413         * cstand.adb: Create entities for Wide_Wide_Character and
11414         Wide_Wide_String.
11415
11416         * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in
11417         accordance with AI-258.
11418         Add new declarations for 16/32 bit C character types (Part of AI285)
11419
11420         * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag
11421         (Obsolescent_Warning): New field
11422         (Rep_Clause): New local subprogram used to share code. Returns the rep
11423         clause for which the name is given in parameter.
11424         (Has_Stream_Size_Clause): New routine.
11425         (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause.
11426         (Address_Clause): Implementation is now using Rep_Clause.
11427         (Alignment_Clause): Idem.
11428         (Size_Clause): Idem.
11429
11430         * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005
11431         entity in non-Ada 2005 mode and generate warning.
11432
11433         * par-prag.adb: Add handling of one argument form for pragma Ada_05.
11434         (Prag): Code cleanup. Remove old gnat pragma "overriding"
11435
11436         * sem_prag.adb: Add handling of one argument form for pragma Ada_05
11437         (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings
11438         on the named unit if the pragma is not in the current compilation unit,
11439         so that elaboration calls in the current unit can set up an elaboration
11440         dependency on the named unit, as needed.
11441         (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library
11442         subprogram as well as for subprograms declared within a package.
11443         (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT
11444         pragma overriding.
11445
11446         * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched
11447         to z) to avoid some instances of duplication for Wide_Wide packages.
11448
11449         * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide
11450         characters.
11451
11452         * scn.adb: Char_Literal_Value field is now a Uint
11453
11454         * scng.adb: Significant rewrite to handle new Ada 2005 features
11455         allowing wide and wide wide characters in program text, e.g. for
11456         identifiers, as described in AI-285.
11457         (Set_Reserved): New procedure, makes setting up keywords cleaner.
11458         (Initialize_Scanner): Register the new reserved words of Ada 2005.
11459         (Scan): Give support to the new reserved words.
11460
11461         * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a
11462         warning notifying that interface, overriding, and synchronized are
11463         new reserved words.
11464         (P_Pragma): Allow the use of the new reserved word "interface" as
11465         a pragma name.
11466
11467         * gnatls.adb, gnatbind.adb,
11468         ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename
11469         identifiers named "interface" to "SAL_Interface".
11470
11471         * bindgen.adb (Gen_Main_Ada): Add support for the new SEH
11472         (Structured Exception handling).
11473         (Gen_Main_C): Idem.
11474
11475         * bindgen.adb:
11476         (Gen_Main_Ada): Set the default exit code if specified.
11477         (Gen_Main_C): Likewise.
11478         Part of *DC20-006.
11479         (Gen_Output_File_C): Remove redundant output of gnat_exit_status.
11480         Code cleanup. Rename identifiers named "interface" to "SAL_Interface"
11481
11482         * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of
11483         new -Xnnn switch.
11484
11485         * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that
11486         has a collision with the new Ada 2005 "interface" reserved word.
11487
11488         * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode,
11489         generate a warning notifying that interface, overriding, and
11490         synchronized are new reserved words.
11491
11492         * scans.ads (Token_Type): Addition of the tokens corresponding to the
11493         new reserved words of Ada 2005: Tok_Interface, Tok_Overriding
11494         and Tok_Synchronized.
11495
11496         * sem_res.adb (Resolve_Actuals): Change error messages to refer to
11497         "dispatching" rather than "primitive" operations, since dispatching
11498         calls are now allowed to abstract formal subprograms (which are not
11499         primitive).
11500         Char_Literal_Value field is now a Uint
11501         (Resolve_Slice): If the prefix is an access to an unconstrained array,
11502         compute the actual subtype of the designated object to impose the proper
11503         index constraints.
11504         (Resolve_Selected_Component): Do not insert an access check if the
11505         prefix is an access type: such a node is expanded into an explicit
11506         dereference, on which the access check is performed anyway. Removes
11507         expensive duplicate checks.
11508         (Resolve_Call): Use new flag Is_Obsolescent and field
11509         Obsolescent_Warning so that pragma Obsolescent works on library
11510         subprograms.
11511         Add support for wide wide character type
11512         (Resolve_Allocator): Replace the error message on wrong null-exclusion
11513         value by a warning message.
11514         (Resolve_Type_Conversion): If the mixed-mode expression is interpreted
11515         as fixed-point, and one of the operands is non-static and universal, it
11516         can only be an illegal exponentiation operation, in which case there is
11517         no real value to retrieve.
11518
11519         * exp_strm.adb: Add support for wide wide character type
11520         (Build_Elementary_Input_Call): Compute the size of the stream element by
11521         querying the rep chain to find the Stream_Attribute attribute value.
11522         (Build_Elementary_Write_Call): Ditto.
11523
11524         * sem_aggr.adb: Char_Literal_Value field is now a Uint
11525         Add support for wide wide character type
11526         Replace the error messages on wrong null-exclusion value by warnings
11527         as described in Ada 2005.
11528         (Resolve_Extension_Aggregate): Document the fact that the error
11529         message on class-wide expressions in extensions aggregates.
11530
11531         * sem_case.adb: Add support for wide wide character type
11532
11533         * sem_ch13.adb: Add support for wide wide character type
11534         (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute.
11535
11536         * sem_ch3.adb: Add support for wide wide character type
11537         (Process_Subtype): If constraint is illegal for the type, set Ekind of
11538         now-useless Itype, to prevent cascaded errors on a compiler built
11539         without -gnatp.
11540
11541         * sem_ch8.adb: Add with and use of Sem_Disp.
11542         (Analyze_Subprogram_Renaming): Replace unclean uses of
11543         Corresponding_Spec with Corresponding_Formal_Spec (and delete setting
11544         of Corresponding_Spec to Empty).
11545         (Attribute_Renaming): Replace use of Corresponding_Spec with
11546         Corresponding_ Formal_Spec and simplify condition.
11547         (Use_One_Package): Check that scope of homonym of identifier is defined,
11548         before checking whether it is a wrapper package.
11549         Add support for wide wide character type
11550
11551         * sem_eval.adb: Add support for wide wide character type.
11552         (Eval_Arithmetic_Op): Check for compile time known signed integer
11553         overflow in the non-static case.
11554         (Subtypes_Statically_Match): A formal scalar type and its base type do
11555         not statically match.
11556
11557         * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to
11558         "not in" for test of N_Formal_Subprogram_Declaration (which is now a
11559         subtype).
11560         (Unit_Declaration_Node): Ditto.
11561         (Is_Variable_Prefix):  For the case of an indexed component whose prefix
11562         has a packed array type, the prefix has been rewritten into a type
11563         conversion. Determine variable-ness from the converted expression.
11564         Handle wide wide character cases.
11565
11566         * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String
11567
11568         * stringt.ads, stringt.adb: Handle full UTF-32 range.
11569         Remove ["0A"] from comment, since it can look like a line terminator.
11570         Currently we don't permit this, but this is under discussion by the
11571         ARG, and it is easy enough to use a different example.
11572
11573         * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for
11574         handling UTF-32 encoding for wide wide character.
11575         Implement new brackets coding ["hhhhhhhh"]
11576         Add UTF-8 encodings for full UTF-32 range
11577
11578         * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size
11579
11580         * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31
11581         bit range Add full UTF-32 support.
11582         (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to
11583         notify that constraint error will be raised at run-time
11584         because a null value is assigned to a null-excluding object.
11585         Remove some obsolete declarations and make Char_Code
11586         unsigned.
11587
11588         * a-except.adb (Rcheck_30): New subprogram. Addition of the message
11589         corresponding to CE_Null_Not_Allowed, and adjust the output of all the
11590         Rcheck subprograms.
11591
11592         * checks.adb (Check_Null_Not_Allowed): Replace the error message on
11593         wrong null-exclusion value by a warning message.
11594         (Enable_Range_Check): Do range check if the prefix is an
11595         explicit dereference whose designated object is an unconstrained array.
11596         Current algorithm for removing duplicate checks is over-eager in this
11597         case.
11598
11599         * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong
11600         null-exclusion value by a warning message
11601
11602         * atree.h, atree.ads, atree.adb: Remove Char_Code field support
11603         completely. Add support for Uint2 field
11604
11605         sem_ch2.adb, exp_ch11.adb, exp_dbug.adb,
11606         exp_prag.adb: Char_Literal_Value field is now a Uint.
11607
11608         * exp_util.adb (Insert_Actions): Replace
11609         N_Formal_Subprogram_Declaration by
11610         N_Formal_{Abstract|Concrete}_Subprogram_Declaration.
11611         Char_Literal_Value field is now a Uint.
11612
11613         * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function
11614         defined for subprogram renaming declarations. When set, the field
11615         indicates the defining entity of a corresponding formal subprogram
11616         when the renaming corresponds to a formal subprogram association in an
11617         instantiation.
11618         (Set_Corresponding_Formal_Spec): New procedure to return
11619         Corresponding_Formal_Spec field.
11620         Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration
11621         (which is now a subtype).
11622         Char_Literal_Value field is now a Uint
11623
11624         * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the
11625         pointer to the base of the dispatch table.
11626         Minor changes to comments.
11627         (Controlling_Type): New function for determining the tagged type
11628         associated with a tagged primitive subprogram.
11629         (Expand_Dispatching_Call): Add support for a controlling actual that is
11630         directly a value of type Ada.Tag rather than a tagged object.
11631
11632         * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation
11633         describing the new layout.
11634         (Dispatch_Table): The expander computes the actual array size, allocates
11635         the Dispatch_Table record accordingly, and generates code that displaces
11636         the base of the record after the Typeinfo_Ptr component. The access to
11637         these components is done by means of local functions.
11638         (Offset_To_Top): New function.
11639         (Typeinfo_Ptr): New function.
11640         (Get_TSD): Modified to access the new position of the TSD.
11641         (Set_TSD): Modified to save the TSD in its new position.
11642
11643         * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the
11644         case of formal abstract subprograms. Add check and message for -gnat05.
11645         Update comments.
11646
11647         * sem_ch12.adb: Add with and use for Sem_Disp.
11648         (Analyze_Associations): Minor change from "=" to "in" for use of
11649         N_Formal_Subtype_Declaration (which is now a subtype).
11650         (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of
11651         N_Formal_Subtype_Declaration (which is now a subtype).
11652         (Analyze_Formal_Subprogram): Add handling for
11653         N_Formal_Abstract_Subprogram, marking the formal as abstract and
11654         dispatching, setting the controlling status of the formal parameters
11655         and result, and issuing an error if there is no controlling type for
11656         the formal subprogram.
11657         (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec,
11658         which is an unclean use of that field, we set the new field
11659         Corresponding_Formal_Spec to make the formal subprogram available to
11660         processing in Analyze_Subprogram_Declaration.
11661         (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point,
11662         Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type
11663         Constrained, so that it is is does not statically match its anonymous
11664         base type.
11665
11666         * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for
11667         abstract formal subprograms in error check for functions returning
11668         abstract types. Set scope of new designator for
11669         a parameterless subprogram, so that it is available when checking the
11670         body for nested subprograms, before full analysis of said body.
11671         (Analyze_Subprogram_Body): Warn on inlining bodies with nested
11672         subprogram only if inner one comes from source.
11673         (Analyze_Function_Call): If the call is given in object notation, the
11674         analysis of the name rewrites the node and analyzes it with the proper
11675         argument list. After analyzing the name, if the call has been rewritten
11676         and the result type is set, no further analysis is needed.
11677         (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype
11678         mark in function specification, in a context where the formals are
11679         visible and hide outer homographs.
11680
11681         * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope
11682         as the tagged type for the cases of abstract formal subprograms and
11683         renamings of those.  Clean up spec comments.
11684         (Check_Dispatching_Context): Add error message to indicate "abstract
11685         procedure", covering the case of a call to a formal abstract procedure
11686         that has statically tagged operands.
11687         (Check_Dispatching_Call): Check for the case of an actual given by
11688         a tag-indeterminate function call whose type is an ancestor of the
11689         containing call's associated tagged type. This situation can occur
11690         for inherited primitives with function defaults. In this case we
11691         use the tagged type's tag directly as the controlling argument for
11692         the calls.
11693         (Expand_Call): Name change on call to Expand_Dispatch_Call.
11694
11695         * sprint.adb (Sprint_Node_Actual): Split
11696         N_Formal_Subprogram_Declaration into two alternatives for the new
11697         cases N_Formal_Abstract_Subprogram_Declaration and
11698         N_Formal_Concrete_Subprogram_Declaration.
11699         Char_Literal_Value field is now a Uint.
11700
11701         * trans.c: Get rid of junk Uint2 reference.
11702         Char_Literal_Value field is now a Uint.
11703         (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P.
11704         (gigi): Correct third arg to gimplify_body.
11705
11706         * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag.
11707         (TYPE_LANG_FLAG_0): Check for record or union.
11708
11709         * treepr.adb: Char_Literal_Value field is now a Uint
11710
11711         * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and
11712         UI_From_CC.
11713
11714         * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function
11715         Add full UTF-32 support
11716         Char_Code is now 32 bits
11717
11718         * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with
11719         wide character UTF_32 line terminators.
11720         Initialize Main_Source_File to avoid error when no main
11721         source is loaded.
11722
11723         * errout.adb (Finalize): Do not check Num_SRef_Pragmas
11724         (Main_Source_File) when no main source has been loaded, to avoid
11725         potential crash.
11726
11727 2005-02-09  Robert Dewar  <dewar@adacore.com>
11728
11729         * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements
11730         Fix name of Set routine
11731
11732         * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to
11733         fixed packages.
11734
11735         * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb,
11736         a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to
11737         fixed packages
11738
11739         * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function
11740         forms of Get_Line subprograms for AI-301.
11741
11742         * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads,
11743         a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb,
11744         a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb,
11745         a-stwima.ads: Minor reformatting.
11746
11747 2005-02-09  Doug Rupp  <rupp@adacore.com>
11748             Thomas Quinot  <quinot@adacore.com>
11749
11750         * adaint.c, adaint.h
11751         [VMS] (to_ptr32): New function.
11752         (MAYBE_TO_PTR32): New macro.
11753         (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv
11754         for pointer size.
11755         [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field.
11756         [VMS] (#define fork()): Remove since unneccessary.
11757         (__gnat_set_close_on_exec): New routine to support
11758         GNAT.OS_Lib.Set_Close_On_Exec.
11759
11760         * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for
11761         the parent side as close-on-exec so that they are not inherited by the
11762         child.
11763
11764         * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to
11765         set or clear the FD_CLOEXEC flag on a file descriptor.
11766
11767 2005-02-09  Eric Botcazou  <ebotcazou@adacore.com>
11768             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11769
11770         Fix for c330001 - PR ada/19386
11771
11772         * decl.c:
11773         (gnat_to_gnu_field): Do not necessarily invoke make_packable_type
11774         on the field if Pragma Component_Alignment (Storage_Unit).
11775         (gnat_to_gnu_entity, case object): Do not treat a renaming that has
11776         side-effects as if it were a constant; also make SAVE_EXPR to protect
11777         side-effects.
11778         (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a
11779         UNION_TYPE.
11780         (make_dummy_type): Set TYPE_UNCHECKED_UNION_P.
11781         (components_to_record): Test it.
11782         Fix improper usage of REFERENCE_CLASS_P.
11783
11784         * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as
11785         RECORD_TYPE.
11786
11787         * utils2.c: Minor reformatting.
11788
11789         * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION;
11790         handle other cases like RECORD_TYPE.
11791
11792         * utils.c (gnat_pushdecl): Set TREE_NO_WARNING.
11793
11794 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11795
11796         * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a
11797         component of an array of arrays in an assignment context, and the
11798         aggregate has component associations that require sliding on
11799         assignment, force reanalysis of the aggregate to generate a temporary
11800         before the assignment.
11801         (Must_Slide): Make global to the package, for use in Gen_Assign.
11802
11803 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11804
11805         * exp_ch4.adb (Expand_Composite_Equality): If a component is an
11806         unchecked union with no inferable discriminants, return a
11807         Raise_Program_Error node, rather than inserting it at the point the
11808         type is frozen.
11809         (Expand_Record_Equality, Component_Equality): Handle properly the case
11810         where some subcomponent is an unchecked union whose generated equality
11811         code raises program error.
11812
11813 2005-02-09  Doug Rupp  <rupp@adacore.com>
11814
11815         * gnatbl.c: [VMS] (_POSIX_EXIT): Define.
11816         [VMS] (#define exit hack): Remove.
11817
11818 2005-02-09  Pascal Obry  <obry@adacore.com>
11819             Arnaud Charlet <charlet@adacore.com>
11820
11821         * init.c (__gnat_initialize): Add a new parameter eh which contains the
11822         address of the exception registration. The Win32 version of this
11823         routine calls __gnat_install_SEH_handler() to initialize the SEH
11824         (Structured Exception Handling) handler.
11825         (__gnat_error_handler) [Win32]: Removed. Not needed as we use
11826         SEH (Structured Exception Handling) now.
11827         (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH.
11828         (__gnat_initialize for ppc-vxworks): Adjust comments and the
11829         preprocessor condition protecting the call to the extra eh setup
11830         subprogram, which is only available for the ppc target.
11831         (__gnat_clear_exception_count): replaced reference to
11832         variable taskIdCurrent by call to taskIdSelf(), cleaner.
11833
11834         * seh_init.c: New file.
11835
11836         * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o.
11837         (GNATBIND_OBJS): Idem.
11838
11839         * misc.c (gnat_parse_file): Update call to __gnat_initialize. This
11840         routine takes a new parameter (a pointer to the exception registration
11841         for the SEH (Structured Exception Handling) support.
11842
11843         * raise.h: (__gnat_install_SEH_handler): New prototype.
11844         Update copyright notice.
11845
11846         * s-tassta.adb (Task_Wrapper): Declare the exception registration
11847         record and initialize it by calling __gnat_install_SEH_handler.
11848
11849 2005-02-09  Vincent Celier  <celier@adacore.com>
11850
11851         * make.adb (Gnatmake): Do not fail when the main project has no object
11852         directory.
11853
11854 2005-02-09  Doug Rupp  <rupp@adacore.com>
11855
11856         * Makefile.in [VMS] (LN,LN_S): Define as cp -p
11857         Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb.
11858         [VMS]: Add translations for g-enblsp.adb.
11859
11860         * s-asthan-vms.adb: Removed.
11861         * s-asthan-vms-alpha.adb: Added.
11862
11863 2005-02-09  Pascal Obry  <obry@adacore.com>
11864
11865         * Makefile.in (LIBGNAT_SRCS): Add seh_init.c.
11866         (LIBGNAT_OBJS): Add seh_init.o.
11867
11868 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11869
11870         PR ada/16592
11871
11872         * Makefile.in: Link all gnat tools with -static-libgcc, since
11873         -shared-libgcc is now used by default on some systems (e.g. linux with
11874         recent binutils).
11875         Remove references to Makefile.prolog/generic, no longer used.
11876
11877 2005-02-09  Vincent Celier  <celier@adacore.com>
11878
11879         * prj-makr.adb (Process_Directory): Put file name in canonical case
11880         before matching against the patterns.
11881         If gnatname has been invoked as <prefix>-gnatname
11882         then invoke the compiler as <prefix>-gcc, not just "gcc".
11883
11884 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11885
11886         * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even
11887         with expansion disabled. The actual subtype is needed among other
11888         places when the selected component appears in the context of a loop
11889         bound, and denotes a packed array.
11890         (Operator_Check): Always use the first subtype in the
11891         error message, to avoid the appearance of internal base types.
11892         (Transform_Object_Operation): Copy each actual in full
11893         to the parameter associations of the constructed call, rather than
11894         using the shallow copy mechanism of New_Copy_List. This ensures that
11895         the chaining of named associations is done properly.
11896         (Complete_Object_Operation): Rewrite node, rather than
11897         replacing it, so that we can trace back to the original selected
11898         component.
11899
11900         * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls,
11901         and calls that use object notation, if the called function is not
11902         declared  in a withed unit, place the elaboration constraint on the
11903         unit in the context that makes the function accessible.
11904         (Check_Elab_Subtype_Declaration): Check whether a subtype declaration
11905         imposes an elaboration constraint between two packages.
11906
11907 2005-02-09  Ed Schonberg  <schonberg@adacore.com>
11908
11909         * sem_ch7.adb (Uninstall_Declarations): Exchange full and private
11910         views of a private type after handling its private dependents, to
11911         maintain proper stack discipline between entry and exit from the
11912         package.
11913
11914 2005-02-09  Cyrille Comar  <comar@adacore.com>
11915
11916         * s-finimp.adb: (Finalize_List): Optimize in the no-abort case.
11917         Minor reformatting.
11918
11919 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11920
11921         * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len]
11922         fields for foreign threads.
11923
11924 2005-02-09  Doug Rupp  <rupp@adacore.com>
11925
11926         * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite
11927         recursion warnings when compiled with -gnatdm.
11928
11929 2005-02-09  Robert Dewar  <dewar@adacore.com>
11930
11931         * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions)
11932         Slight fix to documentation of -gnaty with no parameters
11933
11934         * xr_tabls.ads: Add ??? comment for missing overall comment
11935
11936         * xsinfo.adb: Make default file name be sinfo.h, since this is what
11937         we now use by default.
11938
11939         * xsnames.adb: Adjust end of file test to look for five space followed
11940         by '#' instead of six spaces. The format of xsnames.adb was modified
11941         in the last update.
11942
11943         * a-numeri.ads: Add reference to AI-388 for greek letter pi
11944         identifier.
11945
11946         * clean.adb: Minor reformatting.
11947
11948         * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb,
11949         gnatname.adb: Minor reformatting
11950         Add 2005 to copyright output when utility is run
11951
11952         * csets.adb: Eliminate obsolete comment
11953
11954         * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout
11955         Update comments.
11956
11957         * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful.
11958
11959 2005-02-09  Sergey Rybin  <rybin@adacore.com>
11960
11961         * gnat_ugn.texi: Add to the gnatpp section the paragraph describing
11962         the difference between compact and incompact layout and add the record
11963         representation clause to the example illustrating different layouts.
11964         Add the description of '-A5' gnatpp option ("align 'AT' keywords in
11965         component clauses").
11966
11967 2005-02-09  Florian Villoing  <villoing@adacore.com>
11968
11969         * gnat_ugn.texi: Fix typos.
11970         Use @command to display 'gcc', 'gnatbind', etc. insted of @code or
11971         @file.
11972         Make proper use of @ref, @xref and @pxref to avoid duplication of "see"
11973         in the generated documentation.
11974
11975 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
11976
11977         * gnat_ugn.texi: Remove all mentions of FSU threads, which are no
11978         longer supported.
11979         Update linker wrapper when linking with non GNU C++.
11980
11981 2005-02-09  Pascal Obry  <obry@adacore.com>
11982
11983         * gnat_ugn.texi:
11984         Document the procedure to debug the DllMain routine on Windows.
11985         Add note about -funwind-tables and mixed Ada and C/C++ programming in
11986         ZCX mode.
11987         Document new BIND qualifer /RETURN_CODES=VMS.
11988
11989 2005-02-09  Ben Brosgol  <brosgol@adacore.com>
11990
11991         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
11992         Edited gnatmetric chapter
11993
11994 2005-02-09  Robert Dewar  <dewar@adacore.com>
11995
11996         * gnat_rm.texi:
11997         Changes to document new wide wide character support
11998         For AI-285
11999         Update documentation on Normalize_Scalars and Initialize_Scalars
12000
12001 2005-02-09  Pascal Obry  <obry@adacore.com>
12002
12003         * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting.
12004
12005 2005-02-09  Jose Ruiz  <ruiz@adacore.com>
12006
12007         * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported
12008         from the VxWorks kernel) that is needed for getting the active
12009         priority of the different tasks.
12010
12011         * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure.
12012         Use a pragma Elaborate_Body in the spec file instead.
12013         Noticed by code reading.
12014
12015 2005-02-09  Thomas Quinot  <quinot@adacore.com>
12016
12017         * exp_util.ads: Minor correction in comment.
12018
12019 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12020
12021         * s-taprop.ads (Initialize): Update comments. Remove pragma Inline,
12022         since this procedure is now too complex to be worth inlining.
12023
12024 2005-02-09  Richard Henderson  <rth@redhat.com>
12025
12026         * utils.c (gnat_define_builtin): Remove.
12027         (gnat_install_builtins): Use build_common_builtin_nodes.
12028
12029 2005-02-09  Arnaud Charlet  <charlet@adacore.com>
12030
12031         * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads,
12032         a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb,
12033         a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb,
12034         a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads,
12035         a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb,
12036         a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb,
12037         a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb,
12038         a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb,
12039         a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb,
12040         a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads,
12041         a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads,
12042         a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb,
12043         a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb,
12044         a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads,
12045         a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads,
12046         a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads,
12047         a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
12048         a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads,
12049         a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads,
12050         a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads,
12051         a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads,
12052         a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads,
12053         a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb,
12054         a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads,
12055         a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb,
12056         a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb,
12057         a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb,
12058         a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb,
12059         a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb,
12060         a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb,
12061         a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb,
12062         a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb,
12063         a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb,
12064         a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005
12065         library.
12066
12067 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12068
12069         * Makefile.in: Fix a-intnam.ads from previous commit,
12070         add 2005 to copyright.
12071         * a-intman-rtems.ads: Renamed to...
12072         * a-intnam-rtems.ads:
12073
12074 2005-01-27  Laurent GUERBY <laurent@guerby.net>
12075
12076         * Makefile.in: Rename GNAT RTEMS specific files.
12077         * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb,
12078         5rosinte.ads, 5rparame.adb: Replaced by files below.
12079         * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb,
12080         s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above.
12081
12082 2005-01-27  Joel Sherrill <joel.sherrill@oarcorp.com>
12083             Laurent GUERBY <laurent@guerby.net>
12084
12085         PR ada/19488
12086         * 5rosinte.ads: Add No_Key constant.
12087         * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style.
12088         * gsocket.h: Do not include <sys/socket.h> with RTEMS either.
12089
12090 2005-01-26  Laurent GUERBY <laurent@guerby.net>
12091
12092         PR ada/19414
12093         * i-cobol.adb (Valid_Numeric): Handle zero length case.
12094
12095 2005-01-20  Richard Henderson  <rth@redhat.com>
12096
12097         * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use
12098         a-intnam-linux.ads and system-linux-alpha.ads.
12099         * a-intnam-linux-alpha.ads: Remove file.
12100         * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New.
12101         * system-linux-alpha.ads: New file.
12102
12103 2005-01-18  Jakub Jelinek  <jakub@redhat.com>
12104
12105         PR ada/13470
12106         * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
12107         set to the new string.
12108
12109 2005-01-18  Toon Moene  <toon@moene.indiv.nluug.nl>
12110
12111         * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support
12112         to True.
12113
12114 2005-01-18  Richard Henderson  <rth@redhat.com>
12115
12116         * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB,
12117         THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize
12118         for alpha-linux.
12119         * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files.
12120
12121 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
12122
12123         * system-darwin-ppc.ads (ZCX_By_Default): Change to True.
12124         (GCC_ZCX_Support): Likewise.
12125
12126 2005-01-11  Bastian Blank  <waldi@debian.org>
12127
12128         * system-linux-s390.ads: Define Preallocated_Stacks.
12129         * system-linux-s390x.ads: Likewise.
12130
12131 2005-01-04  Arnaud Charlet  <charlet@adacore.com>
12132
12133         * gnat_ugn.texi: Fix texi errors with null variables.
12134
12135 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12136
12137         * gen-soccon.c: New utility program to generate g-soccon.ads
12138         automatically.
12139
12140         * socket.c, gsocket.h: Split inclusion of system header files into a
12141         gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c.
12142
12143         * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads,
12144         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
12145         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads,
12146         g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files
12147         should not be edited by hand anymore, but should be regenerated using
12148         gen-soccon.
12149
12150 2005-01-03  Robert Dewar  <dewar@adacore.com>
12151             Ed Schonberg  <schonberg@adacore.com>
12152             Vincent Celier  <celier@adacore.com>
12153
12154         * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings
12155         on/off, since this is an obsolescent feature, for which we now generate
12156         a warning.
12157
12158         * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if
12159         warning mode is set and obsolescent usage of this attribute occurs.
12160         (Resolve_Access, case 'Access): Note that GNAT uses the context type to
12161         disambiguate overloaded prefixes, in accordance with AI-235. GNAT code
12162         predates, and partly motivates, the adoption of the AI.
12163         Implement new Ada 2005 attribute Mod
12164
12165         * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005
12166         attribute Mod.
12167
12168         * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod
12169
12170         * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for
12171         pragma restrictions.
12172         New entry for Ada 2005 attribute Mod.
12173
12174         * par-prag.adb:
12175         Add recognition of new pragma Restrictions No_Dependence
12176         Recognize restriction No_Obsolescent_Features at parse time
12177
12178         * bcheck.adb: Add circuitry for checking for consistency of
12179         No_Dependence restrictions.
12180
12181         * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence
12182         restrictions.
12183
12184         * restrict.ads, restrict.adb: Add subprograms to deal with
12185         No_Dependence restrictions.
12186
12187         * rtsfind.adb: Check that implicit with's do not violate No_Dependence
12188         restrictions.
12189
12190         * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb,
12191         sem_attr.adb: Add check for new restriction No_Obsolescent_Features
12192
12193         * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new
12194         dummy parameter to scng instantiation.
12195         Needed for new restriction No_Obsolescent_Features
12196
12197         * scn.adb: (Obsolescent_Check): New procedure
12198         Needed for new restriction No_Obsolescent_Features
12199
12200         * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as
12201         specified by AI-285, needed for implementation of AI-388 (adding greek
12202         pi to Ada.Numerics).
12203         Add new generic formal to scng, needed for new restriction
12204         No_Obsolescent_Features.
12205
12206         * s-rident.ads: Add new restriction No_Obsolescent_Features.
12207
12208         * ali.ads, ali.adb: Adjustments for reading new No_Dependence
12209         restrictions lines.
12210         (Scan_ALI): When finding an unexpected character on an R line, raise
12211         exception Bad_R_Line, instead of calling Fatal_Error, so that, when
12212         Ignore_Errors is True, default restrictions are set and scanning of the
12213         ALI file continues with the next line. Also, when Bad_R_Line is raised
12214         and Ignore_Errors is True, skip to the end of le line.
12215
12216         * sem_ch10.adb: Check that explicit with's do not violate
12217         No_Dependence restrictions.
12218         (Install_Withed_Unit): Add code to implement AI-377 and diagnose
12219         illegal context clauses containing child units of instance.
12220
12221         * sem_prag.adb: Processing and checking for new No_Dependence
12222         restrictions.
12223         (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to
12224         analyze and check the External argument.
12225
12226         * a-numeri.ads: Add greek letter pi as alternative spelling of Pi
12227
12228 2005-01-03  Robert Dewar  <dewar@adacore.com>
12229
12230         * atree.adb: Add a fifth component to entities
12231         This allows us to add 32 flags and four new fields
12232
12233         * atree.ads: Add a fifth component to entities
12234         This allows us to add 32 flags and four new fields
12235
12236         * einfo.ads, einfo.adb: Document new fields and new flags now available
12237         Add routines for printing new fields
12238
12239         * treepr.adb: Call routines to print out additional fields if present
12240
12241 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12242
12243         * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb,
12244         gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake.
12245
12246         * Makefile.in: Add support to build shared Ada libraries on solaris x86
12247         Remove gpr2make, replaced by gprmake.
12248         Remove references to gnatmem and libaddr2line.
12249         Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux.
12250         (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS.
12251         Add support for specialized version of Ada.Numerics.Aux for Darwin: use
12252         a-numaux-darwin.ads and a-numaux-darwin.adb
12253         Enable mlib-tgt-lynxos.adb on lynxos.
12254
12255         * Make-lang.in: Remove rules for gpr2make.
12256         When generating sdefault.adb, do not call Relocate_Path
12257         on S3 for function Target_Name, as it is not a path.
12258         Remove references to gnatmem and libaddr2line.
12259
12260         * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New
12261         files.
12262
12263 2005-01-03  Samuel Tardieu  <tardieu@adacore.com>
12264
12265         * checks.adb (Apply_Alignment_Check): Generate a warning if an object
12266         address is incompatible with its base type alignment constraints when
12267         this can be decided statically.
12268
12269 2005-01-03  Olivier Hainque  <hainque@adacore.com>
12270
12271         * decl.c (compatible_signatures_p): New function. The intended purpose
12272         is to check if two function signatures for a call-site and a callee are
12273         compatible enough for the call to be valid. The underlying purpose is
12274         to check if a call to a mapped builtin is using the right interface.
12275         The current code actually does not check antyhing - this a placeholder
12276         for future refinements.
12277         (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle
12278         builtin calls for convention Intrinsic.
12279
12280         * gigi.h (builtin_decl_for): Declare (new function).
12281
12282         * utils.c (gnat_install_builtins): Install the target specific builtins.
12283         (builtin_decl_for): New function, provide a dummy body for now.
12284
12285 2005-01-03  Geert Bosch  <bosch@adacore.com>
12286
12287         * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used.
12288         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
12289         (Pred): Implement in terms of Succ.
12290
12291         * trans.c (convert_with_check): Reimplement conversion of float to
12292         integer.
12293
12294 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12295             Vincent Celier  <celier@adacore.com>
12296
12297         * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the
12298         bounds can be negative, and must be declared Int, not Nat.
12299
12300         * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an
12301         array is checked after using the index in the array.
12302
12303         * makegpr.adb (Add_Switches): Check if there is a package for the
12304         processor. If there is no package, do not look for switches.
12305
12306 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12307
12308         * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the
12309         generation of predefined stream operations (specs and bodies) should
12310         proceed. Under various restrictions these subprograms must not be
12311         generated.
12312
12313 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12314
12315         * exp_dist.adb:
12316         Declare subprogram index in Build_RPC_Receiver_Body, to reduce the
12317         amount of PCS-specific code in RACW stubs generation.
12318         (Copy_Specification): Set Etype on copied formal parameter entities, as
12319         this information is needed for PolyORB stubs generation.
12320         (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused
12321         variable Dynamic_Async.
12322         (Build_Subprogram_Receiving_Stubs): Make PCS-specific
12323         (Build_RPC_Receiver_Specification): Make generic again, as recent
12324         changes have allowed RPC receivers to have the same profile for both
12325         variants of the PCS.
12326         Reorganise RPC receiver generation to reduce differences between the
12327         structure of GARLIC and PolyORB RPC receivers.
12328         (Add_Receiving_Stubs_To_Declarations): Make this subprogram
12329         PCS-specific.
12330         Simplify elaboration code for RCI packages.
12331
12332         * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver
12333         generation to reduce differences between the structure of GARLIC and
12334         PolyORB RPC receivers.
12335
12336         * s-stratt.adb: Fix typo in comment.
12337
12338 2005-01-03  Thomas Quinot  <quinot@adacore.com>
12339
12340         * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly
12341         copied from Make_Init_Call).
12342
12343         * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component
12344         reads and assignments on a temporary variable declared with appropriate
12345         discriminants.
12346
12347 2005-01-03  Robert Dewar  <dewar@adacore.com>
12348
12349         * i-c.adb (To_C): Raise CE if string is null and Append_Null
12350
12351 2005-01-03  Robert Dewar  <dewar@adacore.com>
12352
12353         * i-cstrin.adb (Update): Do not append a null in form called with a
12354         String. This avoids unintended behavior.
12355
12356 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12357
12358         PR ada/17527
12359         * init.c: Fix warnings on Free BSD section.
12360
12361 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12362
12363         PR ada/16949
12364         * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by
12365         xsinfo.adb).
12366
12367 2005-01-03  Vincent Celier  <celier@adacore.com>
12368
12369         * make.adb (Collect_Arguments_And_Compile): Do not attempt to build
12370         libraries when Unique_Compile is True (-u switch).
12371         (Gnatmake): ditto.
12372
12373 2005-01-03  Robert Dewar  <dewar@adacore.com>
12374
12375         * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing
12376         upper case letter or underscore after W, as allowed by spec.
12377
12378 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12379
12380         * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up
12381         darwin port by using proper type definitions from header files.
12382         Use SIGTERM instead of SIGABRT for SIGADAABORT.
12383
12384 2005-01-03  Robert Dewar  <dewar@adacore.com>
12385
12386         * par.adb: Enhance error message handling for configuration file
12387         pragmas.
12388
12389 2005-01-03  Robert Dewar  <dewar@adacore.com>
12390
12391         * s-arit64.adb (Double_Divide): Put back changes that got accidentally
12392         removed during the previous update (test properly for case of dividing
12393         largest negative number by -1, which generates overflow).
12394
12395 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12396             Sergey Rybin  <rybin@adacore.com>
12397
12398         * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node
12399         to use as the defining identifier for a formal package.
12400         (Remove_Parent): If the instance takes place within (an instance of)
12401         a sibling, preserve private declarations of common parent.
12402
12403 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12404
12405         * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair,
12406         to determine whether one of the operands is a fixed-point type for
12407         which a user-defined multiplication or division operation might be
12408         defined.
12409
12410         * sem_res.adb (Valid_Conversion): The legality rules for conversions
12411         of access types are symmetric in Ada 2005: either designated type can
12412         be unconstrained.
12413
12414 2005-01-03  Vincent Celier  <celier@adacore.com>
12415
12416         * s-fileio.adb (Temp_File_Record): Change length of string component
12417         Name from L_tmpnam + 1 to max_path_len + 1.
12418
12419 2005-01-03  Arnaud Charlet  <charlet@adacore.com>
12420
12421         * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of
12422         Self_Id.Deferral_Level = 0.
12423         (Do_Pending_Action): Move this function to the spec.
12424
12425         * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call
12426         Do_Pending_Action explicitely when needed, in case we're using
12427         No_Abort restrictions.
12428
12429         * s-tassta.adb (Create_Task): If Abort is not allowed, reset the
12430         deferral level since it will not get changed by the generated code.
12431         Keeping a default value of 1 would prevent some operations (e.g.
12432         select or delay) to proceed successfully.
12433
12434 2005-01-03  Ben Brosgol  <brosgol@adacore.com>
12435             Robert Dewar  <dewar@adacore.com>
12436             Cyrille Comar  <comar@adacore.com>
12437
12438         * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to
12439         porting guide chapter (vms version).
12440         Revised doc title (removed "for native platforms") and subtitle.
12441         Add discussion on warning flag for obsolescent features. First we
12442         note that it applies to obsolete GNAT features, which was previously
12443         omitted. Second we contrast the behavior with that of the new
12444         Ada 2005 AI-368 restriction No_Obsolescent_Features.
12445         Preliminary rewriting of GNAT & libraries chapter in order to take
12446         into account default project locations & new project manager
12447         capabilities.
12448
12449 2005-01-03  Robert Dewar  <dewar@adacore.com>
12450
12451         * cstand.adb (Create_Operators): Clean up format and documentation of
12452         unary and binary operator result tables. No change in code, just
12453         reformatting and addition of comments.
12454
12455         * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb,
12456         sem_ch2.adb: Minor reformatting
12457
12458         * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads,
12459         sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to
12460         comments for Tree_Read and Tree_Write.
12461
12462 2005-01-03  Pascal Obry  <obry@adacore.com>
12463
12464         * exp_attr.ads: Minor reformatting.
12465
12466 2005-01-03  Romain Berrendonner  <berrendo@adacore.com>
12467
12468         * comperr.adb (Compiler_Abort): Add specialized message for GAP
12469         versions.
12470
12471 2005-01-03  Ed Schonberg  <schonberg@adacore.com>
12472
12473         * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check
12474         whether the ancestor type is private, as may be the case with nested
12475         instantiations.
12476
12477 2004-12-30  Sohail Somani <sohail@sohailsomani.com>
12478
12479         PR ada/19128
12480         * trans.c (gnat_to_gnu): Fix typo: Use correct return variable.
12481
12482 2004-12-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
12483
12484         * trans.c (Attribute_to_gnu): Adjust call to get_inner_reference.
12485         * utils2.c (build_unary_op): Likewise.
12486
12487 2004-12-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12488
12489         * trans.c (mark_visited): Set TYPE_SIZES_GIMPLIFIED.
12490
12491 2004-12-19  Richard Henderson  <rth@redhat.com>
12492
12493         * trans.c (gigi): Update gimplify_body call.
12494
12495 2004-12-09  Nathan Sidwell  <nathan@codesourcery.com>
12496
12497         * decl.c (gnat_substitute_in_type): Remove SET_TYPE case.
12498
12499 2004-12-07  Ed Falis  <falis@adacore.com>
12500
12501         * s-intman-vxworks.adb (Notify_Exception): removed useless check for
12502         current task being suspended.
12503
12504         * init.c (__gnat_clear_exception): added to reset VxWorks exception
12505         count.
12506         (__gnat_map_signal): removed test for current task being suspended.
12507
12508 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12509
12510         * a-exexpr.adb (Others_Value, All_Others_Value): Change initial values
12511         from 16#BEEF# to 16#7FFF# to avoid exceeding Integer'Last on 16-bit
12512         targets (such as AAMP).
12513
12514 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12515
12516         * atree.adb (Visit_Itype): Create a new name for the generated itype,
12517         because the back-end may otherwise treat it as a redefinition of the
12518         old symbol.
12519
12520 2004-12-07  Eric Botcazou  <ebotcazou@adacore.com>
12521
12522         * back_end.adb (Scan_Back_End_Switches): Accept --param.
12523
12524         * lang-specs.h: Accept --param.
12525
12526 2004-12-07  Vincent Celier  <celier@adacore.com>
12527
12528         * make.adb (Check_Mains, Switches_Of): Adapt to name changes in
12529         package Prj (Current_Spec_Suffix => Ada_Spec_Suffix,
12530         Current_Body_Suffix => Ada_Body_Suffix).
12531         Take into account Externally_Built attribute.
12532
12533         * clean.adb (In_Extension_Chain): Always return False when one of the
12534         parameter is No_Project.
12535         (Clean_Project): Adapt to changes in package Prj (Lang_Ada =>
12536         Ada_Language_Index).
12537         (Gnatclean): Adapt to change in package Prj.Pars (no parameter
12538         Process_Languages for procedure Parse).
12539
12540         * gnatcmd.adb (Carg_Switches): New table.
12541         (GNATCmd): Put all switches following -cargs in the Carg_Switches table.
12542         Adapt to name changes in package Prj (Current_Spec_Suffix =>
12543         Ada_Spec_Suffix, Current_Body_Suffix => Ada_Body_Suffix).
12544
12545         * mlib-prj.adb: Adapt to changes in packages Prj and Prj.Com: type
12546         Header_Num and function Hash are now declared in package Prj,
12547         not Prj.Com.
12548
12549         * prj.adb (Suffix_Of): New function.
12550         (Set (Suffix)): New procedure.
12551         (Hash): One function moved from Prj.Com
12552         (Is_Present, Language_Processing_Data_Of): New functions
12553         (Set): Two new procedures
12554         (Add_Language_Name, Display_Language_Name): New procedures
12555
12556         * prj.ads: (Suffix_Of): New function
12557         (Set (Suffix)): New procedure
12558         Add several types and tables for multi-language support.
12559         (Header_Num): Type moved from Prj.Com
12560         (Hash): Two functions moved from Prj.Com
12561         (Is_Present, Language_Processing_Data_Of): New functions
12562         (Set): Two new procedures
12563         (Add_Language_Name, Display_Language_Name): New procedures
12564         (Naming): Component name changes:
12565         Current_Spec_Suffix => Ada_Spec_Suffix,
12566         Current_Body_Suffix => Ada_Body_Suffix. Add new components:
12567         Impl_Suffixes, Supp_Suffixes.
12568         (Project_Data): New components: Externally_Built, Supp_Languages,
12569         First_Language_Processing, Supp_Language_Processing, Default_Linker,
12570         Default_Linker_Path.
12571
12572         * prj-attr.adb: Add new attributes Ada_Roots and Externally_Built and
12573         new package Language_Processing with its attributes (Compiler_Driver,
12574         Compiler_Kind, Dependency_Option, Compute_Dependency, Include_Option,
12575         Binder_Driver, Default_Linker).
12576
12577         * prj-com.ads, prj-com.adb (Hash): Function moved to package Prj.
12578         (Header_Num): Type moved to package Prj
12579
12580         * prj-env.adb: Adapt to name changes in package Prj
12581         (Current_Spec_Suffix => Ada_Spec_Suffix,
12582         Current_Body_Suffix => Ada_Body_Suffix).
12583
12584         * prj-ext.adb: Add the default project dir (<prefix>/log/gnat) by
12585         default to the project path, except the "-" is one of the directories
12586         in env var ADA_PROJECT_PATH.
12587         (Current_Project_Path): Global variable, replacing Project_Path
12588         that was in the body of Prj.Part.
12589         (Project_Path): New function
12590         (Set_Project_Path): New procedure
12591         Initialize Current_Project_Path during elaboration of the package
12592         Remove dependency on Prj.Com, no longer needed
12593
12594         * prj-ext.ads (Project_Path): New function
12595         (Set_Project_Path): New procedure
12596
12597         * prj-nmsc.adb (Body_Suffix_Of): New function. Returns .<lang> when no
12598         suffix is defined for language <lang>.
12599         (Find_Sources, Record_Other_Sources): Use Body_Suffix_Of, instead of
12600         accessing directly the components of Naming.
12601         (Look_For_Sources): Use Set (Suffix) to set the suffix of a language.
12602         Reorganise of this package.
12603         Break procedure Check in several procedures.
12604
12605         * prj-nmsc.ads: Replace all procedures (Ada_Check,
12606         Other_Languages_Check and Language_Independent_Check) with a single
12607         procedure Check.
12608
12609         * prj-pars.ads, prj-pars.adb (Parse): Remove parameter
12610         Process_Languages, no longer needed.
12611
12612         * prj-part.adb (Project_Path): Move to the body of Prj.Ext as
12613         Current_Project_Path.
12614         Remove elaboration code, moved to the body of Prj.Ext
12615         Use new function Prj.Ext.Project_Path instead of old variable
12616         Project_Path.
12617         (Post_Parse_Context_Clause): Get Resolved_Path as a case-sensitive path.
12618         When comparing with project paths on the stack, first put the resolved
12619         path in canonical case.
12620         (Parse_Single_Project): Set the path name of the project file in the
12621         tree to the normalized path.
12622
12623         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): Remove
12624         parameter Process_Languages, no longer needed.
12625         (Recursive_Check): Call Prj.Nmsc.Check, instead of Ada_Check and
12626         Other_Languages_Check.
12627
12628         * prj-tree.ads (Project_Name_And_Node): New component Canonical_Path
12629         to store the resolved canonical path of the project file.
12630         Remove dependency to Prj.Com, no longer needed
12631
12632         * prj-util.adb: Adapt to name changes in package Prj
12633         (Current_Spec_Suffix => Ada_Spec_Suffix, Current_Body_Suffix =>
12634         Ada_Body_Suffix).
12635
12636         * snames.ads, snames.adb: New standard names: Ada_Roots, Binder_Driver,
12637         Compiler_Driver, Compiler_Kind, Compute_Dependency, Default_Linker,
12638         Externally_Built, Include_Option, Language_Processing.
12639
12640         * makegpr.adb: Numerous changes due to changes in packages
12641         Prj and Prj.Nmsc.
12642
12643         * gnatls.adb: Add the default project dir (<prefix>/log/gnat) by
12644         default to the project path, except whe "-" is one of the directories
12645         in env var ADA_PROJECT_PATH.
12646         (Gnatls): In verbose mode, add the new section "Project Search Path:"
12647
12648 2004-12-07  Robert Dewar  <dewar@adacore.com>
12649
12650         * debug.adb: Document that -gnatdA automatically sets -gnatR3m
12651
12652         * gnat1drv.adb (Gnat1drv): If debug flag A set, then automatically
12653         set -gnatR3m mode.
12654
12655         * repinfo.adb (List_Rep_Info): Remove special handling of -gnatdA
12656         flag. No longer needed now that we handle this in gnat1drv.adb.
12657
12658         * repinfo.ads: Minor reformatting
12659
12660 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12661             Olivier Hainque  <hainque@adacore.com>
12662             Eric Botcazou  <ebotcazou@adacore.com>
12663
12664         * decl.c (maybe_pad_type): Use TYPE_SIZE_UNIT of the input type for
12665         TYPE_SIZE_UNIT of result type if SIZE is not specified.
12666         (make_aligning_type): Pass -1 as ADDRESSABLE to prevent the creation
12667         of a bitfield, which we know is useless and causes trouble because of
12668         alignment implications.
12669
12670         * utils.c (create_var_decl): Set DECL_COMMON again on targets without
12671         BSS sections.
12672         (process_attributes): Clear DECL_COMMON again when a section attribute
12673         is present.
12674         (finish_record_type): Independently track if RECORD_TYPE has SIZE and/or
12675         SIZE_UNIT already set and use to compute final SIZE and SIZE_UNIT.
12676         (create_field_decl): Special case ADDRESSABLE negative to mean
12677         "no bitfield creation", to be used by make_aligning_type. Don't
12678         restrict bitfield creation to !ADDRESSABLE any more, as some BLKmode
12679         fields claimed addressable still have to be bitfields. Use
12680         value_factor_p instead of a raw binop construction to check for the
12681         position's alignment.
12682
12683 2004-12-07  Geert Bosch  <bosch@adacore.com>
12684
12685         * eval_fat.adb: Revert previous change.
12686
12687 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12688             Ed Schonberg  <schonberg@adacore.com>
12689
12690         * exp_ch4.adb (Expand_N_Indexed_Component): For an indexed component
12691         with an implicit dereference as its prefix, use
12692         Insert_Explicit_Dereference instead of merely rewriting the prefix into
12693         an explicit dereference. This ensures that a reference to the original
12694         prefix is generated, if appropriate.
12695
12696         * sem_util.adb (Insert_Explicit_Dereference): When an implicit
12697         dereference is rewritten to an explicit one, generate a reference to
12698         the entity denoted by its prefix using the original prefix node, so
12699         the dereference can be properly recorded as a read of the denoted
12700         access value, if appropriate.
12701
12702         * sem_warn.adb (Output_Unreferenced_Messages): Do not abstain from
12703         emitting 'assigned but never read' warning on a variable on the basis
12704         that it has an access type.
12705         (Check_References): Emit unreferenced warning when the scope is a
12706         subprogram body.
12707
12708 2004-12-07  Robert Dewar  <dewar@adacore.com>
12709             Ed Schonberg  <schonberg@adacore.com>
12710
12711         * exp_ch6.adb (Expand_Call): Add comment on handling of back end
12712         intrinsic
12713
12714         * exp_intr.adb (Expand_Intrinsic_Call): Ignore unrecognized intrinsic,
12715         leaving call unchanged.
12716         This deals with the case where the pragma Import specified
12717         an external name, to be handled by the back end.
12718
12719         * sem_prag.adb (Process_Import_Or_Interface): Do not check validity of
12720         subprogram which is Imported with convention Intrinsic if an
12721         External_Name argument is specified.
12722         (Process_Import_Or_Interface): Properly diagnose link name argument.
12723         (Inlining_Not_Possible): New name for Cannot_Inline, to avoid confusion
12724         with Sem_Ch6.Cannot_Inline.
12725         (Process_Inline): Provide separate warning for inapplicable inline
12726         pragma.
12727         (Cannot_Inline): Reject subprograms that have an at_end handler, so that
12728         treatment is uniform on different targets.
12729
12730 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12731
12732         * exp_ch7.adb (Expand_Cleanup_Actions): If statement sequence of
12733         construct is rewritten, preserve end label to permit source navigation.
12734
12735 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12736
12737         * exp_dist.adb (Specific_Build_General_Calling_Stubs,
12738         Specific_Build_Stub_Target): New subprograms.
12739         (Build_Subprogram_Calling_Stubs): Make this procedure independent from
12740         the PCS implementation used, using the above PCS-customized subprograms.
12741         Minor reformatting.
12742         (PolyORB_Support.Helpers): New subunit containing supporting subprograms
12743         for generation of DSA code targeted to the PolyORB PCS.
12744         (Add_Stub_Type): Rewrite to isolate the parts that are specific to one
12745         implementation of the partition communication subsystem in ancillary
12746         subprograms.
12747         (Specific_Build_Stub_Type, GARLIC_Support.Build_Stub_Type,
12748         PolyORB_Support.Build_Stub_Type): New subrograms containing the
12749         PCS-specific part of Add_Stub_Type.
12750         (Insert_Partition_Check): Use runtime library function to perform
12751         E.4(19) check.
12752
12753         * rtsfind.ads: New entity System.PolyORB_Interface.Make_Ref
12754         (RE_Same_Partition): New entity, from s-parint.
12755
12756         * s-parint.ads, s-parint.adb (Same_Partition): New subprogram.
12757
12758 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12759
12760         * gnatmem.adb, gnatname.adb, gnatsym.adb, gprcmd.adb, vms_conv.adb:
12761         Output the copyright message on a separate line from the version
12762         message.
12763
12764 2004-12-07  Joel Brobecker  <brobecker@adacore.com>
12765
12766         * g-os_lib.adb (Spawn): Explicitly initialize Saved_Error to avoid a
12767         compile-time warning.
12768
12769 2004-12-07  Robert Dewar  <dewar@adacore.com>
12770
12771         * g-regpat.adb: (Match): Change a misuse of or to or else
12772
12773 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12774
12775         * lib-xref.adb:
12776         (Generate_Reference): Handle properly a reference to an entry formal,
12777          when an accept statement has a pragma Unreferenced for it.
12778
12779         * sem_ch9.adb (Analyze_Accept_Statement): Reset the Is_Referenced flag
12780         and the Has_Pragma_Unreferenced flag for each formal before analyzing
12781         the body, to ensure that warnings are properly emitted for each accept
12782         statement of a given task entry.
12783
12784 2004-12-07  Vasiliy Fofanov  <fofanov@adacore.com>
12785
12786         * Makefile.in: Add support for foreign threads on VMS.
12787
12788 2004-12-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12789
12790         * misc.c (gnat_types_compatible_p, LANG_HOOKS_TYPES_COMPATIBLE_P):
12791         Remove.
12792         (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): New.
12793
12794         * adaint.h: (__gnat_dup, __gnat_dup2): Add missing decls.
12795
12796         * trans.c (Exception_Handler_to_gnu_sjlj): Also handle renamed
12797         exception.
12798         (call_to_gnu): Convert to actual DECL_ARG_TYPE, not variant of it.
12799
12800 2004-12-07  Robert Dewar  <dewar@adacore.com>
12801
12802         * nlists.adb (Prepend_Debug): Remove parameters and nest within
12803         Prepend.
12804         (Remove_Next_Debug): Same fix
12805
12806         * nlists.ads: Correct bad comments for Prev and Prev_Non_Pragma (we do
12807         maintain back pointers now, though we did not used to, and comments
12808         were out of date).
12809         (Prepend): Remove pragma Inline.
12810         (Remove_Next): Same cleanup
12811
12812 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12813
12814         * sem_ch4.adb (Process_Implicit_Dereference_Prefix): New subprogram
12815         used to record an implicit dereference as a read operation on its
12816         prefix when operating under -gnatc. Necessary to avoid spurious
12817         'variable assigned but never read' warnings in that mode.
12818         (Process_Indexed_Component, Analyze_Selected_Component): When the prefix
12819         is a non-overloaded implicit dereference, call the above subprogram to
12820         ensure proper recording of references.
12821
12822 2004-12-07  Gary Dismukes  <dismukes@adacore.com>
12823
12824         * sem_ch5.adb (One_Bound): Remove call to Resolve, as the bound needs
12825         to be resolved later as part of Analyze_Iteration_Scheme's call to
12826         Make_Index.
12827
12828 2004-12-07  Ed Schonberg  <schonberg@adacore.com>
12829
12830         * sem_ch8.adb (Find_Type): If node is a reference to 'Base and the
12831         prefix is not a scalar type, place error message on prefix, not on
12832         type entity.
12833
12834 2004-12-07  Bernard Banner  <banner@adacore.com>
12835
12836         * vxaddr2line.adb: Add support for x86 vxworks
12837
12838 2004-12-07  Thomas Quinot  <quinot@adacore.com>
12839
12840         * g-socket.ads (Get_Host_By_Address, Get_Host_By_Name): Clarify
12841         documentation of the behaviour of these functions when passed an IP
12842         address that has no record in the system hosts database and no reverse
12843         record in the DNS.
12844
12845         * cstand.adb, a-tags.ads: Fix typos in comment.
12846
12847 2004-12-07  Robert Dewar  <dewar@adacore.com>
12848
12849         * exp_ch2.adb, exp_ch3.adb, exp_ch5.adb, exp_ch8.adb,
12850         exp_ch9.adb, exp_pakd.adb, interfac.ads, sem_ch6.adb,
12851         sem_ch7.adb, sem_ch10.adb, sem_ch13.adb, sem_ch3.adb,
12852         s-poosiz.ads: Minor reformatting
12853
12854         * make.adb: Minor reformatting
12855         Add some ??? comments asking for more comments
12856
12857         * s-poosiz.adb: Minor reformatting
12858         Add comments on alignment requirement
12859
12860         * sinfo.ads: Remove obsolete comment and fix typo.
12861
12862 2004-12-07  Vincent Celier  <celier@adacore.com>
12863             Sergey Rybin  <rybin@adacore.com>
12864
12865         * gnat_ugn.texi: Update the section "The GNAT Driver and Project
12866         Files" with the new tool and package names.
12867         Reformatting to suppress most of the warnings for line too long
12868         Document the new section "Project Search Path:" in the output of
12869         gnatls -v.
12870         Add gnatmetric section
12871
12872 2004-12-07  Vincent Celier  <celier@adacore.com>
12873
12874         * vms_data.ads: Correct GNAT METRIC qualifiers: -I-, -Idir and
12875         -gnatec= are not direct switches of gnatmetric. Changed -eis to -eps
12876         and -eit to -ept. Added qualifier
12877         /ELEMENT_METRICS=CONSTRUCT_NESTING_MAX for new switch -ec.
12878
12879 2004-11-27  Andreas Schwab  <schwab@suse.de>
12880
12881         * Make-lang.in (ada/trans.o): Depend on $(EXPR_H).
12882
12883 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12884
12885         * g-socthi-mingw.ads, g-socthi-vms.ads: Remove C_Read and C_Write from
12886         internal implementation unit GNAT.Sockets.Thin,
12887         as their usage for sockets is non-portable (using the read and write
12888         functions from the system runtime library is fine on UNIX but won't
12889         work under Windows).
12890
12891         * mingw32.h: Update copyright notice.
12892
12893 2004-11-25  Arnaud Charlet  <charlet@adacore.com>
12894
12895         * ada-tree.h: Minor reformatting of previous change to avoid lines
12896         longer than 79 characters.
12897
12898 2004-11-25  Olivier Hainque  <hainque@adacore.com>
12899
12900         * tb-gcc.c: GCC infrastructure based implementation of
12901         __gnat_backtrace.
12902
12903 2004-11-24  Steven Bosscher  <stevenb@suse.de>
12904
12905         * misc.c (gnat_post_options): Don't clear
12906         flag_inline_functions.
12907
12908 2004-11-22  Andrew Pinski  <pinskia@physics.uc.edu>
12909
12910         PR ada/17986
12911         * ada-tree.h (lang_tree_node): Set chain_next to be the chain of the
12912         tree.
12913
12914 2004-11-21  Andreas Jaeger  <aj@suse.de>
12915
12916         * stylesw.adb: Change Style_Check_Subprogram_Order to
12917         Style_Check_Order_Subprograms.
12918
12919 2004-11-18  Arnaud Charlet  <charlet@adacore.com>
12920
12921         * adaint.h, adaint.c
12922         (__gnat_portable_spawn): Fix cast of spawnvp third parameter
12923         to avoid warnings.
12924         Add also a cast to kill another warning.
12925         (win32_no_block_spawn): Initialize CreateProcess's dwCreationFlags
12926         parameter with the priority class of the parent process instead of
12927         always using the NORMAL_PRIORITY_CLASS.
12928         (__gnat_dup): New function.
12929         (__gnat_dup2): New function.
12930         (__gnat_is_symbolic_link): Enable the effective body of this
12931         function when __APPLE__ is defined.
12932
12933         * g-os_lib.ads, g-os_lib.adb (Spawn): Two new procedures.
12934         Update comments.
12935
12936 2004-11-18  Olivier Hainque  <hainque@adacore.com>
12937
12938         * a-exexpr.adb (Others_Value, All_Others_Value): New variables, the
12939         address of which may be used to represent "others" and "all others"
12940         choices in exception tables, instead of the current harcoded
12941         (void *)0 and (void *)1.
12942         (Setup_Exception): Do nothing in the GNAT SJLJ case.
12943
12944         * gigi.h (others_decl, all_others_decl): New decls representing the
12945         new Others_Value and All_Others_Value objects.
12946         (struct attrib): Rename "arg" component as "args", since GCC expects a
12947         list of arguments in there.
12948
12949         * raise.c (GNAT_OTHERS, GNAT_ALL_OTHERS): Are now the address of the
12950         corresponding objects exported by a-exexpr, instead of hardcoded dummy
12951         addresses.
12952
12953         * trans.c (Exception_Handler_to_gnu_zcx): Use the address of
12954         others_decl and all_others_decl instead of hardcoded dummy addresses
12955         to represent "others" and "all others" choices, which is cleaner and
12956         more flexible with respect to the possible eh pointer encoding policies.
12957
12958         * utils.c (init_gigi_decls): Initialize others_decl and all_others_decl.
12959         (process_attributes): Account for the naming change of the "args"
12960         attribute list entry component.
12961
12962         * decl.c (build_attr_list): Rename into prepend_attributes to allow
12963         cumulating attributes for different entities into a single list.
12964         (gnat_to_gnu_entity): Use prepend_attributes to build the list of
12965         attributes for the current entity and propagate first subtype
12966         attributes to other subtypes.
12967         <E_Procedure>: Attribute arguments are attr->args and not
12968         attr->arg any more.
12969         (build_attr_list): Ditto. Make attr->args a TREE_LIST when there is an
12970         argument provided, as this is what GCC expects. Use NULL_TREE instead
12971         of 0 for trees.
12972
12973 2004-11-18  Robert Dewar  <dewar@adacore.com>
12974
12975         * a-stmaco.ads, exp_util.ads, exp_util.adb, i-cpp.ads, i-cpp.adb:
12976         Minor reformatting througout (including new function specs)
12977         Add ??? comments asking for clarification.
12978
12979 2004-11-18  Thomas Quinot  <quinot@adacore.com>
12980
12981         * butil.ads, butil.adb, bindgen.adb (Get_Unit_Name_String): Remove
12982         incomplete duplicate implementation of this subprogram from butil.
12983
12984 2004-11-18  Thomas Quinot  <quinot@adacore.com>
12985
12986         * exp_dist.adb (Build_RPC_Receiver_Body): New subprogram. This
12987         procedures factors the common processing for building an RPC receiver
12988         for an RCI package or an RACW type.
12989         Stylistic cleanup: change '/= Empty' to 'Present ()'; move body of
12990         Build_Remote_Subprogram_Proxy_Type into proper alphabetical order.
12991         (Get_PCS_Name): New subprogram. Returns the name of the PCS currently
12992         in use.
12993         (Specific_Add_RACW_Features): New subprogram. PCS-specific part of
12994         Add_RACW_Features.
12995         (Specific_Add_RAST_Features): New subprogram. PCS-specific part of
12996         Add_RAST_Features.
12997         (Assign_Subprogram_Identifier): New subprogram. Provision for assigning
12998         distribution subprogram identifiers that are either subprogram numbers
12999         or strings.
13000         (Get_Subprogram_Ids): New subprogram. Retrieve both the numeric and
13001         string distribution identifiers assigned to a given subprogram.
13002         (Get_Subprogram_Id): Reimplement in terms of Get_Subprogram_Ids.
13003         (Add_RAS_Dereference_TSS): Add comments.
13004         (Build_General_Calling_Stubs): Note that the RACW_Type formal parameter
13005         is not referenced yet because it will be used by the PolyORB DSA
13006         implementation.
13007         (Insert_Partition_Check): Remove fossile code.
13008         (First_RCI_Subprogram_Id): Document this constant.
13009         (Add_RAS_Access_TSS): Correct the setting of the Etype of the
13010         RAS_Access TSS.
13011         (Get_Pkg_Name_String): Remove subprogram. Usage occurrences are
13012         replaced with calls to Get_Library_Unit_Name_String. Previously there
13013         were several instances of the same code in different locations in the
13014         compiler; this checkin completes the replacement of all of these
13015         instances with calls to a common subprogram.
13016         Minor reformatting.
13017
13018         * sem_dist.adb: Remove comment noting that RPC receiver generation
13019         should be disabled for RACWs that implement RASs.
13020         (Process_Partition_Id): Use new subprogram Get_Library_Unit_Name_String.
13021
13022         * sem_util.ads, sem_util.adb (Has_Stream): New function
13023         (Get_Library_Unit_Name_String): New subprogram to retrieve the fully
13024         qualified name of a library unit into the name buffer.
13025         (Note_Possible_Modification): Generate a reference only
13026         if the context comes from source.
13027
13028         * snames.ads (PCS_Names): New subtype corresponding to names of
13029         supported implementations of the Partition Communication Subsystem
13030         (PCS) (i.e. the runtime library support modules for the distributed
13031         systems annex).
13032
13033 2004-11-18  Robert Dewar  <dewar@adacore.com>
13034             Ed Schonberg  <schonberg@adacore.com>
13035
13036         * einfo.ads, einfo.adb: Remove Is_Psected flag, no longer used
13037         (Has_Rep_Pragma): New function
13038         (Has_Attribute_Definition_Clause): New function
13039         (Record_Rep_Pragma): Moved here from sem_ch13.adb
13040         (Get_Rep_Pragma): Remove junk kludge for Stream_Convert pragma
13041
13042         * sem_ch13.ads, sem_ch13.adb (Record_Rep_Pragma): Moved to einfo.adb
13043
13044         * exp_prag.adb: (Expand_Pragma_Common_Object): New procedure
13045         (Expand_Pragma_Psect_Object): New procedure
13046         These procedures contain the revised and cleaned up processing for
13047         these two pragmas. This processing was formerly in Sem_Prag, but
13048         is more appropriately moved here. The cleanup involves making sure
13049         that the pragmas are properly attached to the tree, and that no
13050         nodes are improperly shared.
13051
13052         * sem_prag.adb: Move expansion of Common_Object and Psect_Object
13053         pragmas to Exp_Prag, which is more appropriate.
13054         Attach these two pragmas to the Rep_Item chain Use Rep_Item chain to
13055         check for duplicates Remove use of Is_Psected flag, no longer needed.
13056         Use new Make_String_Literal function with string.
13057
13058         * exp_attr.adb (Expand_Fpt_Attribute): The floating-point attributes
13059         that are functions return universal values, that have to be converted
13060         to the context type.
13061         Use new Make_String_Literal function with string.
13062         (Get_Stream_Convert_Pragma): New function, replaces the use of
13063         Get_Rep_Pragma, which had to be kludged to work in this case.
13064
13065         * freeze.adb: Use new Has_Rep_Pragma function
13066
13067         * exp_intr.adb, exp_ch3.adb, sem_attr.adb: Use new Make_String_Literal
13068         function with string.
13069         Use new Has_Rep_Pragma function.
13070
13071         * tbuild.ads, tbuild.adb (Make_String_Literal): New function, takes
13072         string argument.
13073
13074 2004-11-18  Robert Dewar  <dewar@adacore.com>
13075
13076         * errout.ads, errout.adb: (First_Sloc): New function
13077
13078         * par-ch5.adb (P_Condition): Check for redundant parens is now a style
13079         check (-gnatyx) instead of being included as a redundant construct
13080         warning.
13081
13082         * sem_ch6.adb: Change name Style_Check_Subprogram_Order to
13083         Style_Check_Order_Subprograms.
13084
13085         * style.ads, styleg.ads, styleg.adb, styleg-c.adb, stylesw.ads,
13086         stylesw.adb: Add Style_Check_Xtra_Parens
13087
13088         * usage.adb: Add line for -gnatyx (check extra parens)
13089
13090         * vms_data.ads: Add entry for STYLE_CHECKS=XTRA_PARENS => -gnatyx
13091
13092 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13093             Robert Dewar  <dewar@adacore.com>
13094
13095         * exp_ch4.adb (Expand_N_Selected_Component): If the component is the
13096         discriminant of a constrained subtype, analyze the copy of the
13097         corresponding constraint, because in some cases it may be only
13098         partially analyzed.
13099         Removes long-lived ??? comments.
13100
13101         * exp_ch7.adb (Establish_Transient_Scope): Remove complex code that
13102         handled controlled or secondary-stack expressions within the
13103         iteration_scheme of a loop.
13104
13105         * sem_ch5.adb (Analyze_Iteration_Scheme): Build a block to evaluate
13106         bounds that may contain functions calls, to prevent memory leaks when
13107         the bound contains a call to a function that uses the secondary stack.
13108         (Check_Complex_Bounds): Subsidiary of Analyze_Iteration_Scheme, to
13109         generate temporaries for loop bounds that might contain function calls
13110         that require secondary stack and/or finalization actions.
13111
13112         * sem_ch4.adb (Analyze_Indexed_Component_Form): If the prefix is a
13113         selected component and the selector is overloadable (not just a
13114         function) treat as function call, Analyze_Call will disambiguate if
13115         necessary.
13116         (Analyze_Selected_Component): Do not generate an actual subtype for the
13117         selected component if expansion is disabled. The actual subtype is only
13118         needed for constraint checks.
13119         (Analyze_Allocator): If restriction No_Streams is set, then do
13120         not permit objects to be declared of a stream type, or of a
13121         composite type containing a stream.
13122
13123         * restrict.ads: Remove the a-stream entry from Unit_Array, since
13124         No_Streams no longer prohibits with'ing this package.
13125
13126         * sem_ch3.adb (Build_Derived_Record_Type): If the parent type has
13127         discriminants, but the parent base has unknown discriminants, there is
13128         no discriminant constraint to inherit. Such a discrepancy can arise
13129         when the actual for a formal type with unknown discriminants is a
13130         similar private type whose full view has discriminants.
13131         (Analyze_Object_Declaration): If restriction No_Streams is set, then
13132         do not permit objects to be declared of a stream type, or of a
13133         composite type containing a stream.
13134
13135 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13136
13137         * exp_dbug.ads: Update documentation to reflect simpler encoding for
13138         protected operations.
13139
13140         * exp_ch9.adb (Build_Selected_Name): Do not include "PT" suffix in
13141         generated name, it complicates decoding in gdb and hinders debugging
13142         of protected operations.
13143         (Build_Barrier_Function_Specification): Set the Needs_Debug_Info
13144         flag for the protected entry barrier function.
13145         (Build_Protected_Entry_Specification): Set the Needs_Debug_Info
13146         flag for the protected entry function.
13147
13148 2004-11-18  Nicolas Setton  <setton@adacore.com>
13149
13150         * expect.c: Define __unix__ when __APPLE__ is defined.
13151
13152         * Makefile.in: Inform the value of the variable GMEM_LIB in the
13153         Darwin-specific section.
13154
13155         * lang-specs.h: Change the placement of the %1 marker.
13156         Works around the fact that gcc adds -fPIC by default under Darwin.
13157
13158 2004-11-18  Ed Schonberg  <schonberg@adacore.com>
13159
13160         * exp_pakd.adb (Convert_To_PAT_Type): After replacing the original
13161         type of the object with the packed array type, set the Analyzed flag
13162         on the object if it is an entity or simple indexed component, to avoid
13163         spurious type errors.
13164
13165 2004-11-18  Gary Dismukes  <dismukes@adacore.com>
13166
13167         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb, gnatlink.adb,
13168         gnatls.adb, gnatxref.adb, gprep.adb: Output the copyright message on a
13169         separate line from the version message.
13170
13171 2004-11-18  Ed Falis  <falis@adacore.com>
13172
13173         * init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
13174         vthreads.
13175         (init_float): Eliminate initialization of floating point status for
13176         AE653. The instructions have no effect for vThreads.
13177
13178 2004-11-18  Vincent Celier  <celier@adacore.com>
13179
13180         * make.adb (Gnatmake): Invoke gnatlink with -shared-libgcc when
13181         gnatbind is invoked with -shared.
13182
13183 2004-11-18  Jose Ruiz  <ruiz@adacore.com>
13184
13185         * s-tposen.adb (Lock_Entry): Remove the code for raising Program_Error
13186         for Detect_Blocking which is redundant with the check done within the
13187         procedure Protected_Single_Entry_Call.
13188         (Lock_Read_Only_Entry): Remove the code for raising Program_Error for
13189         Detect_Blocking which is redundant with the check done within the
13190         procedure Protected_Single_Entry_Call.
13191
13192 2004-11-18  Vincent Celier  <celier@adacore.com>
13193
13194         * makegpr.adb (Compile): Put the compiling switches (in package
13195         Compiler and on the command line) immediately after "-c", instead of
13196         at the end of the command line invocation of the compiler, when
13197         compiling a non-Ada file.
13198         (Build_Global_Archive): When there is no need to rebuild the archive,
13199         set Global_Archive_Exists, so that the archive is passed to the linker
13200         if one is needed.
13201
13202 2004-11-18  Robert Dewar  <dewar@adacore.com>
13203             Sergey Rybin  <rybin@adacore.com>
13204
13205         * gnat_ugn.texi:
13206         Remove extra paren check from list of checks for redundant constructs
13207         Add documentation of new -gnatyx style check (check extra parens)
13208         Remove paragraph about gnatelim debug options.
13209
13210         * gnat_rm.texi: Document that Ada.Streams now forbids creating stream
13211         objects rather than forbidding dependencies on the package Ada.Streams.
13212
13213         * sinfo.ads: Add ??? note that we should document pragmas passed to
13214         back end.
13215
13216         * g-expect.ads: Fix a few typos in the comments.
13217
13218 2004-11-09  Joseph S. Myers  <joseph@codesourcery.com>
13219
13220         * misc.c (gnat_handle_option): Use %< and %> for quoting in
13221         warning message.
13222
13223 2004-11-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
13224
13225         * a-numaux-x86.adb (Tan): Fix fdivp syntax.
13226
13227 2004-11-07  Andreas Schwab  <schwab@suse.de>
13228
13229         * Makefile.in (install-gnatlib): Remove spurious hyphen.
13230
13231 2004-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
13232
13233         PR ada/18228
13234         * Makefile.in (darwin): Set soext to .dylib.
13235
13236 2004-10-26  Vincent Celier  <celier@gnat.com>
13237             Thomas Quinot   <quinot@act-europe.fr>
13238
13239         * g-socthi-vms.adb, g-socthi-mingw.adb, g-socthi-vxworks.ads:
13240         (C_Writev): Change MSG_Forced_Flags to Constants.MSG_Forced_Flags as
13241         there is no use of GNAT.Sockets.Constants.
13242         Remove remaining pragma Import for C_Write
13243         Remove C_Read and C_Write from internal implementation unit
13244         GNAT.Sockets.Thin, as their usage for sockets is non-portable (using
13245         the read and write functions from the system runtime library is fine
13246         on UNIX but won't work under Windows).
13247
13248         * g-socket.adb: (Abort_Selector): Use C_Send instead of C_Write.
13249         (Check_Selector): Use C_Recv instead of C_Read.
13250         Selectors are the GNAT.Sockets abstraction to perform a select()
13251         call on a set of descriptors. To allow abortion of an ongoing
13252         select operation, some data is written to a dedicated socket that
13253         is always monitored.
13254         Under Windows, the write and read library functions cannot operate
13255         on sockets, so we need to use send and recv instead, which is portable
13256         across all supported platforms.
13257
13258         * g-socthi.ads: Remove C_Read and C_Write from internal implementation
13259         unit GNAT.Sockets.Thin, as their usage for sockets is non-portable
13260         (using the read and write functions from the system runtime library is
13261         fine on UNIX but won't work under Windows).
13262
13263 2004-10-26  Nicolas Setton  <setton@act-europe.fr>
13264
13265         * mlib-tgt-darwin.adb: New file.
13266
13267         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13268         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13269         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
13270         mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb (Archive_Indexer_Options): New
13271         subprogram body.
13272
13273         * Makefile.in: Add support for building shared libraries under Darwin.
13274         (EXTRA_GNATRTL_NONTASKING_OBJS, ppc-vxworks): Add s-vxwexc.o, containing
13275         the low level EH init subprogram to be called from __gnat_initialize.
13276
13277         * mlib-tgt.ads, mlib-tgt.adb (Archive_Indexer_Options): New subprogram,
13278         indicates which options to pass to the archive indexer.
13279
13280         * mlib-utl.adb: Add support for calling ranlib with additional
13281         options. This is needed for instance under Mac OS X.
13282         (Ranlib_Options): New global variable, used to store the potential
13283         options to pass to ranlib.
13284         (Ar): Use Ranlib_Options when spawning ranlib.
13285         (Initialize): Set the value of ranlib option.
13286
13287 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13288
13289         * s-parame-linux.adb (Minimum_Stack_Size): Adjust to return 12K
13290         instead of 8K, to reflect the real potential needs for stack-checking
13291         in the ZCX case.
13292
13293 2004-10-26  Pascal Obry  <obry@gnat.com>
13294
13295         * s-parame-mingw.adb (Default_Stack_Size): Add some comments.
13296
13297         * s-taprop-mingw.adb (Create_Task): Set initial stack size to 1024. On
13298         Windows only the initial thread stack size can be set so it is good to
13299         start we a low stack size.
13300         The OS will adjust the size as needed.
13301
13302 2004-10-26  Olivier Hainque  <hainque@act-europe.fr>
13303             Nicolas Setton  <setton@act-europe.fr>
13304
13305         * expect.c, adaint.c, link.c, sysdep.c (unix sections): Guard with
13306         "__unix__" instead of "unix".
13307         The latter is implicitly defined by gcc3.2 but not by gcc >= 3.4, so the
13308         sections were just mistakenly ignored. The former is
13309         implicitely defined by gcc2.8, gcc3.2 and gcc3.4.
13310         Update #ifdef preprocessor macro to detect the symbol __hpux__ instead
13311         of hpux. This prevents an unwanted definition of the symbol
13312         convert_addresses in adaint.o.
13313
13314 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13315
13316         * a-exexpr.adb (Setup_Key): Change initial value to 16#DEAD#, for
13317         compatibility with type Unwind_Word on 16-bit targets such as AAMP.
13318
13319 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13320
13321         * a-filico.ads, a-filico.adb: fix incorrect header.
13322
13323 2004-10-26  Javier Miranda  <miranda@gnat.com>
13324
13325         * a-ststio.ads: Fix typo in identifier
13326
13327 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13328
13329         * sem_ch4.adb: Minor reformatting.
13330
13331 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13332
13333         * checks.adb (Expr_Known_Valid): If floating-point validity checks are
13334         enabled, check the result of unary and binary operations when the
13335         expression is the right-hand side of an assignment.
13336
13337 2004-10-26  Vincent Celier  <celier@gnat.com>
13338
13339         * clean.adb (Delete): Do not output warnings when in quiet output and
13340         not in verbose mode.
13341         (Force_Deletions): New Boolean flag, defaulted to False
13342         (Delete): Only delete a file if it is writable, and when
13343         Force_Deletions is True.
13344         (Parse_Cmd_Line): New switch -f: set Force_Deletions to True
13345         (Usage): Line for new switch -f
13346         (Clean_Directory): Use GNAT.OS_Lib.Set_Writable instead of rolling our
13347         own.
13348
13349 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13350
13351         * decl.c (gnat_to_gnu_field): Use the type of the inner object for a
13352         JM type only if its size matches that of the wrapper.  When a size is
13353         prescribed and the field is not aliased, remove the wrapper of a JM
13354         type only if the size is not greater than that of the packed array.
13355         (gnat_to_gnu_entity): Change the extension of packed array wrappers
13356         from LJM to JM.
13357
13358 2004-10-26  Geert Bosch  <bosch@gnat.com>
13359
13360         * eval_fat.adb (Eps_Model,Eps_Denorm): Remove, no longer used.
13361         (Succ): Re-implement using Scaling, Exponent and Ceiling attributes.
13362         (Pred): Implement in terms of Succ.
13363
13364 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13365
13366         * exp_aggr.adb (Safe_Component): An aggregate component that is an
13367         unchecked conversion is safe for in-place use if the expression of the
13368         conversion is safe.
13369         (Expand_Array_Aggregate): An aggregate that initializes an allocator may
13370         be expandable in place even if the aggregate does not come from source.
13371         (Convert_Array_Aggr_In_Allocator): New procedure to initialize the
13372         designated object of an allocator in place, rather than building it
13373         first on the stack. The previous scheme forces a full copy of the array,
13374         and may be altogether unsusable if the size of the array is too large
13375         for stack allocation.
13376
13377 2004-10-26  Robert Dewar  <dewar@gnat.com>
13378
13379         * exp_ch4.adb (Expand_N_Op_Eq): Make sure we expand a loop for array
13380         compares if the component is atomic.
13381
13382         * exp_ch5.adb (Expand_Assign_Array): Make sure we expand a loop for
13383         array assignment if the component type is atomic.
13384
13385 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13386             Eric Botcazou  <ebotcazou@act-europe.fr>
13387
13388         * exp_ch6.adb (Expand_Actuals): If the actual for an in-out parameter
13389         is aliased and is a by_reference type, do not pass by copy.
13390         (Expand_N_Function_Call) <Rhs_Of_Assign_Or_Decl>: New function to
13391         detect whether the call is in the right side of an assignment or
13392         the expression of an object declaration.  Recurse on component
13393         association within aggregates.
13394         Call it in the condition that determines whether the temporary is
13395         necessary for correct stack-checking.
13396
13397 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13398
13399         * exp_dist.adb (Build_General_Calling_Stubs): New formal parameter
13400         RACW_Type, used in the PolyORB version.
13401         Rename RCI_Info to RCI_Locator, for consistency between the PolyORB
13402         version and the GARLIC version.
13403
13404         * snames.ads, snames.adb, s-parint.ads, s-parint.adb:
13405         Rename RCI_Info to RCI_Locator for better consistency between the
13406         GARLIC and PolyORB versions of the distributed systems annex.
13407         (DSA_Implementation_Name): This enumeration lists the possible
13408         implementations of the Partition Communication Subsystem for the
13409         Distributed Systems Annex (DSA). The three available implementations
13410         are the dummy stub implementation (No_DSA), and two versions based on
13411         two different distribution runtime libraries: GARLIC and PolyORB. Both
13412         the GARLIC PCS and the PolyORB PCS are part of the GLADE distribution
13413         technology.
13414         Change the literal GLADE_DSA to GARLIC_DSA to accurately describe
13415         that organization.
13416
13417         * rtsfind.ads: Rename RCI_Info to RCI_Locator for better consistency
13418         between the GARLIC and PolyORB versions of the distributed systems
13419         annex.
13420         Remove RE_Unbounded_Reclaim_Pool since it is unused.
13421
13422 2004-10-26  Gary Dismukes  <dismukes@gnat.com>
13423
13424         * gnat1drv.adb: Suppress calling the back end when
13425         Frontend_Layout_On_Target is true.
13426
13427 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13428
13429         * g-os_lib.ads, g-os_lib.adb (Set_Executable, Set_Writable,
13430         Set_Read_Only): New subprograms.
13431         These new routines allow the user to set or unset the Owner execute
13432         and Owner write permission flags on a file.
13433
13434         * makegpr.adb, mlib.adb, mlib-prj.adb: Use
13435         GNAT.OS_Lib.Set_Executable instead of rolling our own.
13436
13437 2004-10-26  Matthew Gingell  <gingell@gnat.com>
13438
13439         * i-cpp.ads, i-cpp.adb: Change layout of VTable for new C++ ABI.
13440
13441 2004-10-26  Pascal Obry  <obry@gnat.com>
13442
13443         * init.c (__gnat_error_handler) [Win32]: Instead of trying to read the
13444         memory before the faulting page we properly test the process read
13445         access for this address using appropriate Win32 routine.
13446         (HPUX sections): guard with "__hpux__" instead of "hpux".
13447
13448 2004-10-26  Robert Dewar  <dewar@gnat.com>
13449
13450         * lib-xref.adb (Generate_Reference): Don't complain about reference to
13451         entry parameter if pragma Unreferenced set, since we do not properly
13452         handle the case of multiple parameters.
13453
13454 2004-10-26  Vincent Celier  <celier@gnat.com>
13455
13456         * prj-env.adb: (Contains_ALI_Files): New Boolean function
13457         (Ada_Objects_Path.Add): For a library project, add to the object path
13458         the library directory only if there is no object directory or if the
13459         library directory contains ALI files.
13460         (Set_Ada_Paths.Add.Recursive_Add): Ditto
13461
13462 2004-10-26  Vincent Celier  <celier@gnat.com>
13463
13464         * prj-nmsc.adb (Language_Independent_Check): Do not forbid virtual
13465         extension of library projects.
13466
13467         * prj-part.adb: If env var ADA_PROJECT_PATH is not defined, project
13468         path defaults to ".:<prefix>/lib/gnat".
13469         (Parse): For an extending all project, allow direct import of a project
13470         that is virtually extended.
13471
13472         * prj-proc.adb (Imported_Or_Extended_Project_From): If a project with
13473         the specified name is directly imported, return its ID. Otherwise, if
13474         an extension of this project is imported, return the ID of the
13475         extension.
13476
13477 2004-10-26  Robert Dewar  <dewar@gnat.com>
13478
13479         * s-arit64.adb: (Le3): New function, used by Scaled_Divide
13480         (Sub3): New procedure, used by Scaled_Divide
13481         (Scaled_Divide): Substantial rewrite, avoid duplicated code, and also
13482         correct more than one instance of failure to propagate carries
13483         correctly.
13484         (Double_Divide): Handle overflow case of largest negative number
13485         divided by minus one.
13486
13487         * s-arit64.ads (Double_Divide): Document that overflow can occur in
13488         the case of a quotient value out of range.
13489         Fix comments.
13490
13491 2004-10-26  Robert Dewar  <dewar@gnat.com>
13492
13493         * s-bitops.adb (Bit_Eq): Remove redundant check.
13494
13495         * s-bitops.ads: Minor comment updates
13496         Change some occurrences of Address to System.Address
13497
13498         * s-carsi8.ads: Fix minor cut-and-paste error in comments
13499
13500 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13501
13502         * sem_attr.adb (Resolve_Attribute, case 'Access): Apply proper
13503         accessibility check to prefix that is a protected operation.
13504
13505 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13506
13507         * sem_ch10.adb (Optional_Subunit): If file of expected subunit is
13508         empty, post message on stub.
13509
13510 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13511             Javier Miranda  <miranda@gnat.com>
13512
13513         * sem_ch12.adb (In_Main_Context): Predicate to determine whether the
13514         current instance appears within a unit that is directly in the context
13515         of the main unit.
13516         Used to determine whether the body of the instance should be analyzed
13517         immediately after its spec, to make its subprogram bodies available
13518         for front-end inlining.
13519         (Analyze_Formal_Array_Type): Cleanup condition that checks that range
13520         constraint is not allowed on the component type (AARM 12.5.3(3))
13521
13522 2004-10-26  Cyrille Comar  <comar@act-europe.fr>
13523
13524         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
13525         'Storage_Pool): enhance, document & limit detection of non-sharable
13526         internal pools.
13527
13528         * impunit.adb: Make System.Pool_Global and System.Pool_Local visible.
13529
13530         * s-pooglo.ads: Add more documentation now that this pool is properly
13531         documented.
13532
13533 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13534
13535         * sem_ch3.adb (Complete_Private_Subtype): If the full view is a task
13536         or protected type with discriminants, do not constrain the
13537         corresponding record type if the subtype declaration has no
13538         discriminant constraints. This can be the case in source code, or in
13539         the subtype declaration created to rename an actual type within an
13540         instantiation.
13541
13542 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13543
13544         * sem_ch6.adb (Analyze_Subprogram_Body): If body is a subunit for a
13545         different kind of stub (possibly wrong name for file), do not check
13546         for conformance.
13547         (Uses_Secondary_Stack): New subsidiary to Build_Body_To_Inline. If body
13548         includes call to some function that returns an unconstrained type, do
13549         not inline.
13550
13551 2004-10-26  Ed Schonberg  <schonberg@gnat.com>
13552
13553         * sem_elab.adb (Check_Elab_Call): Do not check a call that does not
13554         appear in the code for the main unit. Dependencies among units in the
13555         context of the main unit are established when those other units are
13556         compiled. Otherwise spurious elaboration constraints can generate
13557         incorrect elaboration circularities.
13558
13559 2004-10-26  Thomas Quinot  <quinot@act-europe.fr>
13560             Ed Schonberg   <schonberg@gnat.com>
13561
13562         * sem_util.adb (Is_Aliased_View): Defend against the case where this
13563         subprogram is called with a parameter that is not an object name. This
13564         situation arises for some cases of illegal code, which is diagnosed
13565         later, and in this case it is wrong to call Is_Aliased, as that might
13566         cause a compiler crash.
13567         (Explain_Limited_Type): Refine previous fix to include
13568         inherited components of derived types, to provide complete information.
13569
13570         * exp_ch9.adb (Set_Privals): Set the Ekind of the actual object that
13571         is the prival for a protected object.
13572         It is necessary to mark this entity as a variable, in addition to
13573         flagging it as Aliased, because Sem_Util.Is_Aliased_View has been
13574         modified to avoid checking the Aliased flag on entities that are not
13575         objects. (Checking that flag for non-objects is erroneous and could
13576         lead to a compiler crash).
13577
13578 2004-10-26  Robert Dewar  <dewar@gnat.com>
13579
13580         * s-fatgen.adb (Pred): Fix redundant test for X > 0.0, since if
13581         X_Frac = 0.5, then we know that the number X must be positive.
13582         (Succ): Remove the same redundant test, and also fix the primary test
13583         to test for X_Frac = -0.5 (used to be 0.5) which is clearly wrong.
13584         Minor reformatting
13585         (Decompose): Add fuller comments to spec
13586
13587 2004-10-26  Pascal Obry  <obry@gnat.com>
13588
13589         * tracebak.c (IS_BAD_PTR): Use IsBadCodePtr on Win32 to check for ptr
13590         validity (process must have read access). Set to 0 in all other cases.
13591         (STOP_FRAME): Now check for ptr validity to avoid a segmentation
13592         violation on Win32.
13593         (VALID_STACK_FRAME): Check for ptr validity on Win32 to avoid a
13594         segmentation violation.
13595
13596 2004-10-26  Eric Botcazou  <ebotcazou@act-europe.fr>
13597
13598         * trans.c (call_to_gnu): For an (in-)out parameter passed by reference
13599         whose type is a constructed subtype of an aliased object with an
13600         unconstrained nominal subtype, convert the actual to the constructed
13601         subtype before taking its address.
13602
13603 2004-10-26  Vincent Celier  <celier@gnat.com>
13604
13605         * a-dirval.ads, a-dirval.adb, a-dirval-vms.adb, a-dirval-mingw.adb
13606         (Is_Path_Name_Case_Sensitive): New function
13607
13608         * a-direct.adb (To_Lower_If_Case_Insensitive): New procedure
13609         (Base_Name, Simple_Name, Current_Directory, Compose,
13610         Containing_Directory, Full_Name): Call To_Lower_If_Case_Insensitive on
13611         the result.
13612
13613 2004-10-26  Cyrille Comar    <comar@act-europe.fr>
13614             Vasiliy Fofanov  <fofanov@act-europe.fr>
13615             Vincent Celier   <celier@gnat.com>
13616
13617         * gnat_ugn.texi: Generalize "finding memory problems" section into a
13618         "memory management issues" section and document some of the useful
13619         memory pools provided as part of the GNAT library.
13620         Remove "virtual" from declaration of A::method2 in
13621         the simple example of Ada/C++ mixed system.
13622         Library Projects may be virtually extended: their virtual extensions
13623         are not Library Projects.
13624         Added section on extending project hierarchies.
13625
13626 2004-10-19  Aaron W. LaFramboise  <aaronavay62@aaronwl.com>
13627
13628         * adaint.c (__gnat_get_libraries_from_registry): Cast value
13629         to LPBYTE.
13630         (__gnat_portable_spawn): Remove const.
13631
13632         * mingw32.h (MAXPATHLEN): Check for previous definition.
13633
13634 2004-10-17  Matthias Klose  <doko@debian.org>
13635
13636         * gnatvsn.ads: Set gnat library version to 4.0.
13637
13638 2004-10-05  Vincent Celier  <celier@gnat.com>
13639
13640         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Options_2
13641
13642 2004-10-04  Laurent GUERBY <laurent@guerby.net>
13643
13644         PR ada/15156
13645         * Makefile.in: Define and use RANLIB_FLAGS.
13646
13647 2004-10-04  Pascal Obry  <obry@gnat.com>
13648
13649         * tracebak.c: Always set LOWEST_ADDR to 0 on Win32 (as done on all
13650         other x86 platforms).
13651
13652 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13653
13654         * s-tassta.adb (Task_Wrapper): Make it Convention C, which makes sense
13655         in general and triggers stack alignment adjustment for thread entry
13656         points on targets where this is necessary.
13657
13658 2004-10-04  Bernard Banner  <banner@gnat.com>
13659
13660         PR ada/13897
13661
13662         * Makefile.in: Add section for powerpc linux
13663         Add variant i-vxwork-x86.ads
13664
13665         * i-vxwork-x86.ads, system-linux-ppc.ads: New files.
13666
13667 2004-10-04  Olivier Hainque  <hainque@act-europe.fr>
13668
13669         * init.c (__gnat_initialize): Call an Ada subprogram to perform the
13670         table registration calls when need be. Ensures no reference to the crt
13671         ctors symbol are issued in the SJLJ case, which avoids possible
13672         undefined symbol errors in the case of modules to be statically linked
13673         with the kernel.
13674
13675 2004-10-04  Javier Miranda  <miranda@gnat.com>
13676
13677         * sem_ch4.adb (Try_Object_Operation): Reformat the code to expand
13678         in-line the code corresponding to subprogram Analyze_Actuals. In
13679         addition, analyze the actuals only in case of subprogram call.
13680
13681 2004-10-04  Ed Falis  <falis@gnat.com>
13682
13683         * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
13684
13685 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
13686
13687         * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
13688         in the documentation.
13689
13690 2004-10-04  Robert Dewar  <dewar@gnat.com>
13691
13692         * sem_ch5.adb (Unblocked_Exit_Count): Now used for blocks as well as
13693         IF and CASE.
13694         (Analyze_Block_Statement): Add circuitry to detect following dead code
13695         (Check_Unreachable_Code): Handle case of block exit
13696
13697 2004-10-04  Robert Dewar  <dewar@gnat.com>
13698
13699         * g-spipat.adb: (XMatch): Avoid warning for Logic_Error call
13700         (XMatchD): Avoid warning for Logic_Error call
13701
13702 2004-10-04  Robert Dewar  <dewar@gnat.com>
13703
13704         * exp_ch4.adb (Is_Procedure_Actual): Correct so that this does not
13705         consider expressions buried within a procedure actual to be an actual.
13706         This caused some blowups with uses of packed slices within a procedure
13707         actual.
13708
13709 2004-10-04  Robert Dewar  <dewar@gnat.com>
13710
13711         * exp_ch3.adb (Needs_Simple_Initialization): Modular packed arrays no
13712         longer need to be initialized to zero.
13713         (Get_Simple_Init_Val): Modular packed arrays no longer need to be
13714         initialized to zero.
13715
13716         * checks.adb (Expr_Known_Valid): Packed arrays are now always
13717         considered valid, even if the representation is modular. That's correct
13718         now that we no longer initialize packed modular arrays to zero.
13719
13720         * exp_dbug.ads: Clarify documentation on handling of PAD and JM
13721         suffixes. These are now documented as the only cases in which the
13722         debugger ignores outer records.
13723         Previously, the spec allowed arbitrary suffixes for this purpose.
13724         Change name of LJM to JM for packed array pad records
13725         Create separate section on packed array handling, and add a whole new
13726         set of comments to this section describing the situation with packed
13727         modular types and justification requirements depending on endianness.
13728
13729 2004-10-04  Robert Dewar  <dewar@gnat.com>
13730
13731         * a-except.adb: Add a comment for last change
13732
13733         * einfo.ads: Minor spelling correction in comment
13734
13735         * exp_pakd.adb, gnatdll.adb, prj-attr.ads: Minor reformatting
13736
13737         * sem_ch11.adb: Fix a case of using | instead of \ for continuation
13738         messages.
13739
13740         * sem_util.ads: Minor comment update
13741
13742 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13743
13744         * sem_ch6.adb (Analyze_Subprogram_Body): Do not treat Inline as
13745         Inline_Always when in Configurable_Run_Time mode.
13746
13747         * sem_prag.adb (Process_Convention): If entity is an inherited
13748         subprogram, apply convention to parent subprogram if in same scope.
13749         (Analyze_Pragma, case Inline): Do not treat Inline as Inline_Always
13750         when in Configurable_Run_Time mode.
13751
13752 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13753
13754         * sem_ch3.adb (Build_Derived_Record_Type): Set First/Last entity of
13755         class_wide type after component list has been inherited.
13756
13757 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13758
13759         * sem_ch12.adb (Check_Generic_Actuals): New predicate
13760         Denotes_Previous_Actual, to handle properly the case of a private
13761         actual that is also the component type of a subsequent array actual.
13762         The visibility status of the first actual is not affected when the
13763         second is installed.
13764         (Process_Nested_Formal): Subsidiary of Instantiate_Formal_Package, to
13765         make fully recursive the treatment of formals of packages declared
13766         with a box.
13767         (Restore_Nested_Formal): Subsidiary of Restore_Private_Views, to undo
13768         the above on exit from an instantiation.
13769         (Denotes_Formal_Package): When called from Restore_Private_Views, ignore
13770         current instantiation which is now complete.
13771         (Analyze_Package_Instantiation): No instantiated body is needed if the
13772         main unit is generic. Efficient, and avoid anomalies when a instance
13773         appears in a package accessed through rtsfind.
13774
13775 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13776
13777         * exp_ch6.adb (Expand_N_Function_Call): If stack checking is enabled,
13778         do not generate a declaration for a temporary if the call is part of a
13779         library-level instantiation.
13780
13781 2004-10-04  Ed Schonberg  <schonberg@gnat.com>
13782
13783         * sem_util.adb (Explain_Limited_Type): Ignore internal components when
13784         searching for a limited component to flag.
13785
13786         * exp_attr.adb (Freeze_Stream_Subprogram): Subsidiary procedure to
13787         expansion of Input, to account for the fact that the implicit call
13788         generated by the attribute reference must freeze the user-defined
13789         stream subprogram. This is only relevant to 'Input, because it can
13790         appear in an object declaration, prior to the body of the subprogram.
13791
13792         * sem_ch13.adb (Rep_Item_Too_Late): Make the error non-serious, so that
13793         expansion can proceed and further errors uncovered.
13794         (Minor clean up): Fix cases of using | instead of \ for continuation
13795         messages.
13796
13797 2004-10-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
13798
13799         * cuintp.c, decl.c, utils2.c: Use gcc_assert and gcc_unreachable.
13800
13801         * trans.c (assoc_to_constructor): Fix unused var warning if no checking.
13802         (gnat_gimplify_expr, case ADDR_EXPR): Fix error in last change.
13803         Use gcc_assert and gcc_unreachable.
13804
13805         * decl.c (gnat_to_gnu_entity, case object): Check and process a
13806         specified alignment before validating size.
13807         (gnat_to_gnu_entity) <E_Modular_Integer_Subtype>: Create a
13808         stripped-down declaration for the type of the inner field when making
13809         a JM type.
13810
13811         * utils.c (finish_record_type): Do not compute the size in units
13812         incrementally. Instead compute it once for the rep clause case.
13813         Use gcc_assert and gcc_unreachable.
13814
13815 2004-10-04  Vincent Celier  <celier@gnat.com>
13816
13817         * a-dirval-mingw.adb (Invalid_Character): Add '\' as invalid character
13818         in file name.
13819         (Is_Valid_Path_Name): Take '/' as a directory separator.
13820
13821 2004-10-04  Vincent Celier  <celier@gnat.com>
13822
13823         * prj-part.adb (Parse_Single_Project): Call Is_Extending_All
13824         (Extended_Project) only if Extended_Project is defined, to avoid
13825         assertion error.
13826         (Post_Parse_Context_Clause): Always call Set_Path_Name_Of with a
13827         resolved path.
13828         (Parse_Single_Project): Ditto.
13829
13830         * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not call
13831         Add_To_Project_Path for virtual projects.
13832
13833 2004-10-04  Vincent Celier  <celier@gnat.com>
13834
13835         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
13836         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
13837         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb,
13838         mlib-tgt-vxworks.adb, mlib-tgt.adb (Build_Dynamic_Library): New
13839         parameter Options_2.
13840
13841         * mlib-prj.ads, mlib-prj.adb (Build_Library): Call
13842         Build_Dynamic_Library with an empty Options_2.
13843
13844         * mlib-utl.ads, mlib-utl.adb (Gcc): Parameter Options_2 has no
13845         default anymore.
13846
13847         * makegpr.adb (Get_Imported_Directories.add): Remove trailing
13848         directory separator, if any.
13849         (Gprmake): Do not allow mains on the command line for library projects.
13850         Do not attempt to link when the project is a library project.
13851         (Library_Opts): New table to store Library_Options.
13852         (Build_Library): If Library_Options is specified, pass these options
13853         when building a shared library.
13854
13855 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13856
13857         * s-tposen.adb (Service_Entry): The object must be always unlocked at
13858         the end of this procedure now that the unlock operation was inserted
13859         by the expander.
13860
13861 2004-10-04  Jose Ruiz  <ruiz@act-europe.fr>
13862
13863         * targparm.ads, targparm.adb (Targparm_Tags): Add PAS value
13864         corresponding to the Preallocated_Stacks flags in System.
13865         (Get_Target_Parameters): Including the processing for
13866         Preallocated_Stacks.
13867
13868         * system.ads, system-vxworks-x86.ads, system-darwin-ppc.ads,
13869         system-vms_64.ads, system-unixware.ads, system-linux-ia64.ads,
13870         system-freebsd-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
13871         system-linux-x86_64.ads, system-tru64.ads, system-aix.ads,
13872         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads,
13873         system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads,
13874         system-hpux.ads, system-vxworks-m68k.ads, system-linux-x86.ads,
13875         system-vxworks-mips.ads, system-os2.ads, system-interix.ads,
13876         system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads,
13877         system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads,
13878         system-vxworks-alpha.ads: Add the flag Preallocated_Stacks, that is
13879         used to signal whether the compiler creates the required stacks and
13880         descriptors for the different tasks (when True) or it is done by the
13881         underlying operating system at run time (when False).
13882         It is initially set to False in all targets.
13883
13884         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create the task stack
13885         if it is supported by the target.
13886         (Make_Task_Create_Call): Pass the stack address if it has been
13887         previously created. Otherwise pass a Null_Address.
13888
13889         * snames.adb: Add _stack.
13890
13891         * snames.ads: Add Name_uStack. Required to allow the expander to
13892         statically allocated task stacks.
13893
13894         * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Add
13895         Stack_Address argument.
13896         Check that its value is equal to Null_Address because this target does
13897         not support the static stack allocation.
13898
13899 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13900
13901         * usage.adb: Change "pragma inline" to "pragma Inline" in information
13902         and error messages
13903
13904 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13905
13906         * exp_dist.adb: Split declaration of asynchronous flag out of
13907         Add_RACW_Read_Attribute.
13908         Minor reformatting for better alignment with PolyORB version.
13909         Store the entity for the asynchronous flag of an RACW, rather than the
13910         expression, in the asynchronous flags table. This will allow this flag
13911         to be used in other subprograms beside Add_RACW_Read_Attribute.
13912
13913 2004-10-04  Thomas Quinot  <quinot@act-europe.fr>
13914
13915         * g-socket.ads, g-socket.adb, g-socthi.adb, socket.c,
13916         g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads,
13917         g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-vms.adb,
13918         g-soccon-mingw.ads, g-soccon-vxworks.ads, g-soccon-freebsd.ads,
13919         g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads:  Add new
13920         sockets constant MSG_NOSIGNAL (Linux-specific).
13921         Add new sockets constant MSG_Forced_Flags, list of flags to be set on
13922         all Send operations.
13923         For Linux, set MSG_NOSIGNAL on all send operations to prevent them
13924         from trigerring SIGPIPE.
13925         Rename components to avoid clash with Ada 2005 possible reserved
13926         word 'interface'.
13927         (Check_Selector): When the select system call returns with an error
13928         condition, propagate Socket_Error to the caller.
13929
13930 2004-10-01  Jan Hubicka  <jh@suse.cz>
13931
13932         * misc.c (gnat_expand_body): Update call of tree_rest_of_compilation.
13933
13934 2004-09-23  Robert Dewar  <dewar@gnat.com>
13935
13936         PR ada/17540
13937
13938         * sem_prag.adb (Process_Import_Or_Interface): Don't set Is_Public here,
13939         instead do this at freeze time (we won't do it if there is an address
13940         clause).
13941         Change "pragma inline" to "pragma Inline" in information and error
13942         messages.
13943         Minor reformatting.
13944
13945         * freeze.adb (Check_Address_Clause): Remove previous change, not the
13946         right way of doing things after all.
13947         (Freeze_Entity): For object, set Is_Public for imported entities
13948         unless there is an address clause present.
13949
13950 2004-09-21  Olivier Hainque  <hainque@act-europe.fr>
13951
13952         * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
13953         dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
13954         ensures proper handling of types with rep clauses, which might have
13955         their TYPE_SIZE set already.
13956
13957 2004-09-21  Robert Dewar  <dewar@gnat.com>
13958
13959         * decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
13960         packed array types in both little- and big-endian cases. This change
13961         ensures that we no longer count on the unused bits being initialized
13962         for such types (and in particular ensures that equality testing will
13963         only read the relevant bits).
13964         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
13965         These changes mean that we no longer need to initialize small packed
13966         arrays.
13967         (gnat_to_gnu_entity) <E_Record_Subtype>: Apply the same
13968         optimization to an LJM field as to its parent field.
13969
13970         * ada-tree.h, trans.c, utils.c, utils2.c:
13971         Change name TYPE_LEFT_JUSTIFIED_MODULAR_P to TYPE_JUSTIFIED_MODULAR_P
13972
13973 2004-09-20  Jan Hubicka  <jh@suse.cz>
13974
13975         * utils.c (gnat_finalize): Remove.
13976         (end_subprog_body): Directly call cgraph_finalize_function;
13977         do not lower the nested functions.
13978
13979 2004-09-20  Robert Dewar  <dewar@gnat.com>
13980
13981         PR ada/17540
13982
13983         * freeze.adb (Check_Address_Clause): Reset Is_Imported and Is_Public
13984         if an address clause is present, since that means that the Import
13985         should be ignored.
13986
13987 2004-09-20  Arnaud Charlet  <charlet@act-europe.fr>
13988
13989         * 5tsystem.ads: Removed, no longer used.
13990
13991 2004-09-17  Jeffrey D. Oldham  <oldham@codesourcery.com>
13992             Zack Weinberg  <zack@codesourcery.com>
13993
13994         * ada-tree.def: Use tree_code_class enumeration constants
13995         instead of code letters.
13996         * ada-tree.h, decl.c, misc.c, trans.c, utils.c, utils2.c:
13997         Update for new tree-class enumeration constants.
13998
13999 2004-09-17  Vincent Celier  <celier@gnat.com>
14000
14001         * prj-attr-pm.ads, prj-attr-pm.adb: New files, to split some private
14002         capabilities of the general project manager.
14003
14004 2004-09-09  Vincent Celier  <celier@gnat.com>
14005
14006         * a-direct.ads: Add pragma Ada_05
14007         (Directory_Entry_Type): Give default value to component Kind to avoid
14008         not initialized warnings.
14009
14010         * a-direct.adb (Current_Directory): Remove directory separator at the
14011         end.
14012         (Delete_Directory, Delete_Tree): Raise Name_Error if Directory is not
14013         an existing directory.
14014         (Fetch_Next_Entry): Give default value to variable Kind to avoid warning
14015         (Size (String)): Function C_Size returns Long_Integer, not File_Size.
14016         Convert the result to File_Size.
14017
14018         * prj.ads: (Project_Error): New exception
14019
14020         * prj-attr.adb: Except in procedure Initialize, Fail comes from
14021         Prj.Com, not from Osint.
14022         (Attrs, Package_Attributes): Tables moved to private part of spec
14023         (Add_Attribute, Add_Unknown_Package): Moved to new child package
14024         Prj.Attr.PM.
14025         (Register_New_Package (Name, Attributes), Register_New_Attribute): Raise
14026         Prj.Project_Error after call to Fail.
14027         (Register_New_Package (Name, Id)): Set Id to Empty_Package after calling
14028         Fail. Check that package name is not already in use.
14029
14030         * prj-attr.ads: Comment updates to indicate that all subprograms may be
14031         used by tools, not only by the project manager, and to indicate that
14032         exception Prj.Prj_Error may be raised in case of problem.
14033         (Add_Unknown_Package, Add_Attribute): Moved to new child package
14034         Prj.Attr.PM.
14035         (Attrs, Package_Attributes): Table instantiations moved from the body to
14036         the private part to be accessible from Prj.Attr.PM body.
14037
14038         * prj-dect.adb (Parse_Package_Declaration): Call Add_Unknown_Package
14039         from new package Prj.Attr.PM.
14040         (Parse_Attribute_Declaration): Call Add_Attribute from new package
14041         Prj.Attr.PM.
14042
14043         * Makefile.in: Add prj-attr-pm.o to gnatmake object list
14044
14045         * gnatbind.adb (Gnatbind): Correct warning message (Elaboration_Check
14046         instead of Elaboration_Checks).
14047
14048         * a-calend.adb: Minor reformatting
14049
14050 2004-09-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14051
14052         * gigi.h (maybe_pad_type): New declaration.
14053         (create_subprog_type): New arg RETURNS_BY_TARGET_PTR.
14054
14055         * ada-tree.h: (TYPE_RETURNS_BY_TARGET_PTR_P): New macro.
14056
14057         * cuintp.c: Convert to use buildN.
14058
14059         * decl.c (maybe_pad_type): No longer static.
14060         (gnat_to_gnu_entity, case E_Function): Handle case of returning by
14061         target pointer.
14062         Convert to use buildN.
14063
14064         * trans.c (call_to_gnu): Add arg GNU_TARGET; support
14065         TYPE_RETURNS_BY_TARGET_PTR_P.  All callers changed.
14066         (gnat_to_gnu, case N_Assignment_Statement): Call call_to_gnu if call on
14067         RHS.
14068         (gnat_to_gnu, case N_Return): Handle TYPE_RETURN_BY_TARGET_PTR_P.
14069         (gnat_gimplify_expr, case ADDR_EXPR): New case.
14070         Convert to use buildN.
14071
14072         * utils2.c (gnat_build_constructor): Also set TREE_INVARIANT and
14073         TREE_READONLY for const.
14074         Convert to use buildN.
14075
14076         * utils.c (create_subprog_type): New operand RETURNS_BY_TARGET_PTR.
14077         (create_var_decl): Refine when TREE_STATIC is set.
14078         Convert to use buildN.
14079
14080 2004-09-09  Gary Dismukes  <dismukes@gnat.com>
14081
14082         * gnat_ugn.texi: Delete text relating to checking of ali and object
14083         consistency.
14084
14085         * a-except.adb (Rcheck_*): Add pragmas No_Return for each of these
14086         routines.
14087
14088 2004-09-09  Jose Ruiz  <ruiz@act-europe.fr>
14089
14090         * gnat_ugn.texi: Add Detect_Blocking to the list of configuration
14091         pragmas recognized by GNAT.
14092
14093         * gnat_rm.texi: Document pragma Detect_Blocking.
14094
14095         * s-solita.adb (Timed_Delay_T): When pragma Detect_Blocking is active,
14096         raise Program_Error if called from a protected operation.
14097
14098         * s-taprob.adb (Lock): When pragma Detect_Blocking is active increase
14099         the protected action nesting level.
14100         (Lock_Read_Only): When pragma Detect_Blocking is active increase the
14101         protected action nesting level.
14102         (Unlock): When pragma Detect_Blocking is active decrease the protected
14103         action nesting level.
14104
14105         * s-taskin.adb (Initialize_ATCB): Initialize to 0 the
14106         Protected_Action_Nesting.
14107
14108         * s-taskin.ads: Adding the field Protected_Action_Nesting to the
14109         Common_ATCB record. It contains the dynamic level of protected action
14110         nesting for each task. It is needed for checking whether potentially
14111         blocking operations are called from protected operations.
14112         (Detect_Blocking): Adding a Boolean constant reflecting whether pragma
14113         Detect_Blocking is active or not in the partition.
14114
14115         * s-tasren.adb (Call_Simple): When pragma Detect_Blocking is active,
14116         raise Program_Error if called from a protected operation.
14117         (Task_Entry_Call): When pragma Detect_Blocking is active, raise
14118         Program_Error if called from a protected operation.
14119         (Timed_Task_Entry_Call): When pragma Detect_Blocking is active, raise
14120         Program_Error if called from a protected operation.
14121
14122         * s-tassta.adb (Abort_Tasks): When pragma Detect_Blocking is active,
14123         raise Program_Error if called from a protected operation.
14124
14125         * s-tpoben.adb (Lock_Entries): When pragma Detect_Blocking is active,
14126         raise Program_Error if called from a protected operation, and increase
14127         the protected action nesting level.
14128         (Lock_Read_Only_Entries): When pragma Detect_Blocking is active, raise
14129         Program_Error if called from a protected operation, and increase the
14130         protected action nesting level.
14131         (Unlock_Entries): When pragma Detect_Blocking is active decrease the
14132         protected action nesting level.
14133
14134         * s-tposen.adb (Lock_Entry): When pragma Detect_Blocking is active,
14135         raise Program_Error if called from a protected operation, and increase
14136         the protected action nesting level.
14137         (Lock_Read_Only_Entry): When pragma Detect_Blocking is active, raise
14138         Program_Error if called from a protected operation, and increase the
14139         protected action nesting level.
14140         (Protected_Single_Entry_Call): When pragma Detect_Blocking is active,
14141         raise Program_Error if called from a protected operation.
14142         (Timed_Protected_Single_Entry_Call): When pragma Detect_Blocking is
14143         active, raise Program_Error if called from a protected operation.
14144         (Unlock_Entry): When pragma Detect_Blocking is active decrease the
14145         protected action nesting level.
14146
14147         * sem_util.adb (Check_Potentially_Blocking_Operation): Remove the
14148         insertion of the statement raising Program_Error. The run time
14149         contains the required machinery for handling that.
14150
14151         * sem_util.ads: Change comment associated to procedure
14152         Check_Potentially_Blocking_Operation.
14153         This procedure does not insert a call for raising the exception because
14154         that is currently done by the run time.
14155
14156         * raise.h (__gnat_set_globals): Pass the detect_blocking parameter.
14157
14158         * init.c: Add the global variable __gl_detect_blocking that indicates
14159         whether pragma Detect_Blocking is active (1) or not (0). Needed for
14160         making the pragma available at run time.
14161         (__gnat_set_globals): Pass and update the detect_blocking parameter.
14162
14163         * lib-writ.adb (Write_ALI): Set the DB flag in the ali file if
14164         pragma Detect_Blocking is active.
14165
14166         * lib-writ.ads: Document the Detect_Blocking flag (DB) in ali files.
14167
14168         * ali.adb (Scan_ALI): Set the Detect_Blocking value to true if the flag
14169         DB is found in the ali file. Any unit compiled with pragma
14170         Detect_Blocking active forces its effect in the whole partition.
14171
14172         * a-retide.adb (Delay_Until): Raise Program_Error if pragma
14173         Detect_Blocking is active and delay is called from a protected
14174         operation.
14175
14176         * bindgen.adb (Gen_Adainit_Ada): When generating the call to
14177         __gnat_set_globals, pass 1 as Detect_Blocking parameter if pragma
14178         Detect_Blocking is active (0 otherwise).
14179         (Gen_Adainit_C): When generating the call to __gnat_set_globals, pass 1
14180         as Detect_Blocking parameter if pragma Detect_Blocking is active (0
14181         otherwise).
14182
14183 2004-09-09  Thomas Quinot  <quinot@act-europe.fr>
14184
14185         * gnat_rm.texi: Rename GNAT.Perfect_Hash.Generators to
14186         GNAT.Perfect_Hash_Generators, and remove the empty GNAT.Perfect_Hash
14187         package.
14188
14189         * s-parint.ads, s-parint.adb (Get_RAS_Info): New subprogram.
14190         (Register_Receiving_Stub): Add Subp_Info formal parameter.
14191         Update API in placeholder implemetation of s-parint to reflect changes
14192         in distribution runtime library.
14193
14194         * sem_ch3.adb (Expand_Derived_Record): Rename to
14195         Expand_Record_Extension.
14196
14197         * sem_disp.adb (Check_Controlling_Formals): Improve error message for
14198         primitive operations of potentially distributed object types that have
14199         non-controlling anonymous access formals.
14200
14201         * sem_dist.ads, sem_dist.adb (Build_RAS_Primitive_Specification): New
14202         subprogram.
14203         New implementation of expansion for remote access-to-subprogram types,
14204         based on the RACW infrastructure.
14205         This version of sem_dist is compatible with PolyORB/DSA as well as
14206         GLADE.
14207
14208         * sem_prag.adb (Analyze_Pragma, case Pragma_Asynchronous): For a pragma
14209         Asynchrronous that applies to a remote access-to-subprogram type, mark
14210         the underlying RACW type as asynchronous.
14211
14212         * link.c: FreeBSD uses GNU ld: set __gnat_objlist_file_supported and
14213          __gnat_using_gnu_linker to 1.
14214
14215         * Makefile.rtl, impunit.adb, g-perhas.ads, g-pehage.ads,
14216         g-pehage.adb: Rename GNAT.Perfect_Hash.Generators to
14217         GNAT.Perfect_Hash_Generators, and remove the empty
14218         GNAT.Perfect_Hash package.
14219
14220         * atree.adb: Minor reformatting
14221
14222         * exp_ch3.adb (Expand_Derived_Record): Rename to
14223         Expand_Record_Extension.
14224         (Build_Record_Init_Proc.Build_Assignment): The default expression in
14225         a component declaration must remain attached at that point in the
14226         tree so New_Copy_Tree copies it if the enclosing record type is derived.
14227         It is therefore necessary to take a copy of the expression when building
14228         the corresponding assignment statement in the init proc.
14229         As a side effect, in the case of a derived record type, we now see the
14230         original expression, without any rewriting that could have occurred
14231         during expansion of the ancestor type's init proc, and we do not need
14232         to go back to Original_Node.
14233
14234         * exp_ch3.ads (Expand_Derived_Record): Rename to
14235         Expand_Record_Extension.
14236
14237         * exp_dist.ads, exp_dist.adb (Underlying_RACW_Type): New subprogram.
14238         Returns the RACW type used to implement a remote access-to-subprogram
14239         type.
14240         (Add_RAS_Proxy_And_Analyze, Build_Remote_Subprogram_Proxy_Type):
14241         New subprograms. Used to create a proxy tagged object for a remote
14242         subprogram. The proxy object is used as the designated object
14243         for RAS values on the same partition (unless All_Calls_Remote applies).
14244         (Build_Get_Unique_RP_Call): New subprogram. Build a call to
14245         System.Partition_Interface.Get_Unique_Remote_Pointer.
14246         (Add_RAS_Access_TSS, Add_RAS_Dereference_TSS):
14247         Renamed from Add_RAS_*_Attribute.
14248         (Add_Receiving_Stubs_To_Declarations): Generate a table of local
14249         subprograms.
14250         New implementation of expansion for remote access-to-subprogram types,
14251         based on the RACW infrastructure.
14252
14253         * exp_dist.ads (Copy_Specification): Update comment to note that this
14254         function can copy the specification from either a subprogram
14255         specification or an access-to-subprogram type definition.
14256
14257 2004-09-09  Ed Schonberg  <schonberg@gnat.com>
14258
14259         * sem_type.adb (Disambiguate): Handle properly an accidental ambiguity
14260         in an instance, between an explicit subprogram an one inherited from a
14261         type derived from an actual.
14262
14263         * exp_ch6.adb (Expand_N_Subprogram_Body): If polling is enabled, do not
14264         add a polling call if the subprogram is to be inlined by the back-end,
14265         to avoid repeated calls with multiple inlinings.
14266
14267         * checks.adb (Apply_Alignment_Check): If the expression in the address
14268         clause is a call whose name is not a static entity (e.g. a dispatching
14269         call), treat as dynamic.
14270
14271 2004-09-09  Robert Dewar  <dewar@gnat.com>
14272
14273         * g-trasym.ads: Minor reformatting
14274
14275         * exp_ch3.adb (Component_Needs_Simple_Initialization): Don't except
14276         packed arrays, since unused bits are expected to be zero for a
14277         comparison.
14278
14279 2004-09-09  Eric Botcazou  <ebotcazou@act-europe.fr>
14280
14281         * exp_pakd.ads: Fix an inacurracy and a couple of typos in the head
14282         comment.
14283
14284 2004-09-09  Pascal Obry  <obry@gnat.com>
14285
14286         * mdll.ads, mdll.adb (Build_Dynamic_Library): New parameter Map_File to
14287         enable map file generation. Add the right option to generate the map
14288         file if Map_File is set to True.
14289
14290         * gnatdll.adb (Gen_Map_File): New variable.
14291         (Syntax): Add info about new -m (Map_File) option.
14292         (Parse_Command_Line): Add support for -m option.
14293         (gnatdll): Pass Gen_Map_File to Build_Dynamic_Library calls.
14294         Minor reformatting.
14295
14296 2004-09-09  Laurent Pautet  <pautet@act-europe.fr>
14297
14298         * gnatls.adb: Add a very verbose mode -V. Such mode is required by the
14299         new gnatdist implementation.
14300         Define a subpackage isolating the output routines specific to this
14301         verbose mode.
14302
14303 2004-09-09  Joel Brobecker  <brobecker@gnat.com>
14304
14305         * Makefile.rtl: (GNATRTL_NONTASKING_OBJS): Add g-dynhta.
14306
14307         * gnat_ugn.texi (Main Subprograms): Fix typo. Deduced, not deducted.
14308
14309 2004-09-09  Cyrille Comar  <comar@act-europe.fr>
14310
14311         * opt.adb (Set_Opt_Config_Switches): Use Ada_Version_Runtime to compile
14312         internal unit.
14313
14314         * opt.ads: Add Ada_Version_Runtime constant used to decide which
14315         version of the language is used to compile the run time.
14316
14317 2004-09-09  Arnaud Charlet  <charlet@act-europe.fr>
14318
14319         * sem_util.adb (Requires_Transient_Scope): Re-enable handling
14320         of variable length temporaries for function return now that the
14321         back-end and gigi support it.
14322
14323 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14324
14325         * misc.c (gnat_print_type): Use TYPE_RM_SIZE_NUM.
14326
14327         * trans.c (struct stmt_group): Delete field GLOBAL.
14328         (gnat_init_stmt_group): Do not initialize it.
14329         (call_to_gnu): Use save_expr, not protect_multiple_eval.
14330         (Exception_Handler_to_gnu_sjlj): Call build_int_cst, not build_int_2
14331         (gnat_to_gnu, case N_Character_Literal, N_String_Literal): Likewise.
14332         (gnat_to_gnu, case N_Compilation_Unit): Do not set GLOBAL in stmt group.
14333         (start_stmt_group): Likewise.
14334         (add_stmt, add_decl_expr): Rework handling of global DECL_EXPRs.
14335
14336         * utils2.c (ggc.h): Include.
14337         (build_call_raise): Call build_int_cst, not build_int_2.
14338
14339         * utils.c (gnat_init_decl_processing): Fix arg to
14340         build_common_tree_nodes.
14341         (create_subprog_type): Do not use SET_TYPE_CI_CO_LIST.
14342         (gnat_define_builtin): Set built_in_decls.
14343         (init_gigi_decls): Call build_int_cst, not build_int_2.
14344
14345         * ada-tree.h (struct lang_decl, struct lang_type): Field is type tree.
14346         (GET_TYPE_LANG_SPECIFIC, SET_TYPE_LANG_SPECIFIC): New macros.
14347         (GET_DECL_LANG_SPECIFIC, SET_DECL_LANG_SPECIFIC): Likewise.
14348         (TYPE_CI_CO_LIST, SET_TYPE_CI_CO_LIST, TYPE_MODULE,
14349         SET_TYPE_MODULE): Use them.
14350         (TYPE_INDEX_TYPE, SET_TYPE_INDEX_TYPE, TYPE_DIGITS_VALUE): Likewise.
14351         (SET_TYPE_DIGITS_VALUE, TYPE_UNCONSTRAINED_ARRAY): Likewise.
14352         (SET_TYPE_UNCONSTRAINED_ARRAY, TYPE_ADA_SIZE,
14353         SET_TYPE_ADA_SIZE): Likewise.
14354         (TYPE_ACTUAL_BOUNDS, SET_TYPE_ACTUAL_BOUNDS): Likewise.
14355         (DECL_CONST_CORRESPONDING_VAR,
14356         SET_DECL_CONST_CORRESPONDING_VAR): Likewise.
14357         (DECL_ORIGINAL_FIELD, SET_DECL_ORIGINAL_FIELD): Likewise.
14358         (TYPE_RM_SIZE_INT, TYPE_RM_SIZE_ENUM, SET_TYPE_RM_SIZE_ENUM): Deleted.
14359         (TYPE_RM_SIZE_NUM): New macro.
14360         (TYPE_RM_SIZE): Modified to use above.
14361
14362         * cuintp.c: (build_cst_from_int): New function.
14363         (UI_To_gnu): Use it.
14364
14365         * decl.c (gnat_to_gnu_entity): Use TYPE_RM_SIZE_NUM.
14366         (make_type_from_size): Avoid changing TYPE_UNSIGNED of a type.
14367         (gnat_substitute_in_type, case ARRAY_TYPE): If old had a
14368         MIN_EXPR for the size, copy it into new.
14369
14370 2004-09-01  Robert Dewar  <dewar@gnat.com>
14371
14372         * exp_ch6.adb (Expand_Call): Properly handle validity checks for
14373         packed indexed component where array is an IN OUT formal. This
14374         generated garbage code previously.
14375
14376         * gnat_ugn.texi: Document -fverbose-asm
14377
14378         * gnat-style.texi: Minor updates (note that boolean constants and
14379         variables are joined with AND/OR rather than short circuit forms).
14380
14381 2004-09-01  Ed Schonberg  <schonberg@gnat.com>
14382
14383         * exp_util.adb (Safe_Unchecked_Type_Conversion): Conversion is safe if
14384         it is an upward conversion of an untagged type with no representation
14385         change.
14386
14387 2004-09-01  Thomas Quinot  <quinot@act-europe.fr>
14388
14389         * rtsfind.ads: Move RCI_Subp_Info and RCI_Subp_Info_Array to
14390         System.Partition_Interface.
14391
14392         * checks.adb (Apply_Access_Checks): Do not generate checks when
14393         expander is not active (but check for unset reference to prefix of
14394         dereference).
14395
14396         * sem_prag.adb (Analyze_Pragma, case Pragma_Debug): Uniformly rewrite
14397         pragma Debug as an if statement with a constant condition, for
14398         consistent treatment of entity references contained within the
14399         enclosed procedure call.
14400
14401 2004-09-01  Vincent Celier  <celier@gnat.com>
14402
14403         * bindgen.adb: (Set_EA_Last): New procedure
14404         (Gen_Exception_Table_Ada, Gen_Exception_Table_C): Use new procedure
14405         Set_EA_Last.
14406         (Gen_Adafinal_Ada): If no finalization, adafinal does nothing
14407         (Gen_Output_File_Ada): Always call Gen_Adafinal_Ada, so that SAL can be
14408         linked without errors.
14409         (Gen_Exception_Table_Ada): Correct bugs when generating code for arrays
14410         ST and EA.
14411         (Gen_Exception_Table_C): Correct same bugs
14412
14413         * vms_data.ads: Add new qualifier /VERBOSE_ASM to GCC_Switches
14414
14415         * g-os_lib.adb (Normalize_Pathname.Get_Directory): When Dir is empty,
14416         on Windows, make sure that the drive letter is in upper case.
14417
14418         * g-os_lib.ads (Normalize_Pathname): Add a comment to indicate that on
14419         Windows, when the drive letter is added and Case_Sensitive is True, the
14420         drive letter is forced to upper case.
14421
14422         * mlib-tgt-irix.adb (Build_Dynamic_Library): Transfer all -lxxx options
14423         to Options_2 for the call to MLib.Utl.Gcc.
14424
14425         * bld.adb (Put_Include_Project): Use '/', not '\' on Windows as
14426         directory separator when defining BASE_DIR.
14427
14428 2004-09-01  Pascal Obry  <obry@gnat.com>
14429
14430         * gprcmd.adb (Extend): Do not output trailing directory separator. This
14431         is not needed and it confuses Windows GNU/make which does not report
14432         directory terminated by a slash as a directory.
14433         (gprcmd): Idem for "pwd" internal command.
14434
14435         * Makefile.generic: Use __GPRCOLON__ instead of pipe character in
14436         target names rewrite to fix regressions with recent version of
14437         GNU/make. Starting with GNU/make 3.80 the pipe character was not
14438         handled properly anymore.
14439
14440 2004-09-01  Andreas Schwab  <schwab@suse.de>
14441
14442         * Make-lang.in (EXTRA_GNATBIND_OBJS): Revert last change.
14443         * raise.c [!IN_RTS]: Undef abort.
14444
14445 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
14446
14447         * utils2.c (build_allocator): Use ssize_int.
14448
14449         * utils.c (gnat_init_decl_processing): Ada has a signed sizetype.
14450
14451 2004-08-27  Andreas Schwab  <schwab@suse.de>
14452
14453         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add errors.o.
14454
14455 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14456             Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14457
14458         * ada-tree.h (TYPE_RM_SIZE_INT): Use TYPE_LANG_SLOT_1.
14459
14460 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
14461
14462         * cuintp.c (UI_To_gnu): Adjust build_int_cst calls.
14463         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14464         * utils.c (init_gigi_decls): Likewise.
14465         * utils2.c (build_call_raise, build_allocator): Likewise.
14466
14467 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
14468
14469         * utils.c (gnat_init_decl_processing): Adjust
14470         build_common_tree_nodes call.
14471
14472 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
14473
14474         * utils2.c (build_allocator): Use build_int_cst for negative
14475         size types.
14476
14477 2004-08-18  Richard Henderson  <rth@redhat.com>
14478
14479         * misc.c (LANG_HOOKS_HONOR_READONLY): Remove.
14480
14481 2004-08-16  Nathan Sidwell  <nathan@codesourcery.com>
14482
14483         * cuintp.c (UI_To_gnu): Be more conservative with build_int_cst
14484         call.s
14485         * trans.c (Exception_Handler_to_gnu_sjlj): Likewise.
14486         (gnat_to_gnu): Likewise.
14487
14488 2004-08-16  Pascal Obry  <obry@gnat.com>
14489
14490         * adaint.c (__gnat_prj_add_obj_files): Set to 0 only on Win32 for GCC
14491         backend prior to GCC 3.4. With GCC 3.4 we are using the GCC's shared
14492         option and not mdll anymore. Update comment.
14493
14494 2004-08-16  Pascal Obry  <obry@gnat.com>
14495
14496         * bld.adb (Put_Include_Project): Properly handle directory separators
14497         on Windows.
14498
14499 2004-08-16  Ed Schonberg  <schonberg@gnat.com>
14500
14501         * sem_ch4.adb (Try_Object_Operation): Restructure code. Optimize by
14502         decreasing the number of allocated junk nodes while searching for the
14503         appropriate subprogram.
14504
14505 2004-08-15  Nathan Sidwell  <nathan@codesourcery.com>
14506
14507         * cuintp.c (UI_To_gnu): Use build_int_cst..
14508         * trans.c (Exception_Handler_to_gnu_sjlj, gnat_to_gnu): Likewise.
14509         * utils.c (init_gigi_decls): Likewise.
14510         * utils2.c (build_call_raise): Likewise.
14511
14512 2004-08-13  Olivier Hainque  <hainque@act-europe.fr>
14513
14514         * decl.c (gnat_to_gnu_entity) <E_Variable>: When building an allocator
14515         for a global aliased object with a variable size and an unconstrained
14516         nominal subtype, pretend there is no initializer if the one we have is
14517         incomplete, and avoid referencing an inexistant component in there. The
14518         part we have will be rebuilt anyway and the reference may confuse
14519         further operations.
14520
14521 2004-08-13  Thomas Quinot  <quinot@act-europe.fr>
14522
14523         * einfo.ads: Minor reformatting
14524
14525         * lib-writ.adb (Output_Main_Program_Line): Do not set parameter
14526         restrictions in the ALI if we only want to warn about violations.
14527
14528 2004-08-13  Vincent Celier  <celier@gnat.com>
14529
14530         * ali.adb (Scan_ALI): Initialize component Body_Needed_For_SAL to False
14531         when creating a new Unit_Record in table Units.
14532
14533         * gnatls.adb (Output_Unit): In verbose mode, output the restrictions
14534         that are violated, if any.
14535
14536         * prj-nmsc.adb (Ada_Check.Get_Path_Names_And_Record_Sources): Do not
14537         add directory separator if path already ends with a directory separator.
14538
14539 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14540
14541         * rtsfind.adb (Entity_Not_Defined): If the error ocurrs in a predefined
14542         unit, this is an attempt to inline a construct that is not available in
14543         the current restricted mode, so abort rather than trying to continue.
14544
14545         * sem_ch3.adb (Build_Underlying_Full_View): If the new type has
14546         discriminants that rename those of the parent, recover names of
14547         original discriminants for the constraint on the full view of the
14548         parent.
14549         (Complete_Private_Subtype): Do not create a subtype declaration if the
14550         subtype is an itype.
14551
14552         * gnat_rm.texi: Added section on implementation of discriminated
14553         records with default values for discriminants.
14554
14555 2004-08-13  Ed Schonberg  <schonberg@gnat.com>
14556
14557         PR ada/15601
14558         * sem_res.adb (Make_Call_Into_Operator): Handle properly the case where
14559         the second operand is overloaded.
14560
14561 2004-08-10  Richard Henderson  <rth@redhat.com>
14562
14563         * utils.c (gnat_install_builtins): Remove __builtin_stack_alloc,
14564         add __builtin_alloca.
14565
14566 2004-08-10  Richard Henderson  <rth@redhat.com>
14567
14568         * config-lang.in (boot_language): Yes.
14569
14570 2004-08-09  Thomas Quinot  <quinot@act-europe.fr>
14571
14572         * g-socket.adb (Abort_Selector): Initialize Buf to prevent valgrind
14573         from complaining on potential uninitialized reference.
14574         Change calls to GNAT.Sockets.Thin.Is_Socket_In_Set to account for
14575         new specification and test explicitly for non-zero return value.
14576
14577         * g-socthi.ads (Is_Socket_In_Set): Declare imported function as
14578         returning C.int, to avoid using a derived boolean type.
14579
14580         * exp_ch5.adb (Make_Tag_Ctrl_Assignments): Use
14581         Duplicate_Subexpr_No_Checks in preference to direct use of
14582         Remove_Side_Effects and New_Copy_Tree.
14583         Clear Comes_From_Source on prefix of 'Size attribute reference.
14584
14585         * g-socthi.adb, g-socthi-vms.adb, g-socthi-mingw.adb,
14586         g-socthi-vxworks.adb: Change calls to
14587         GNAT.Sockets.Thin.Is_Socket_In_Set to account for new specification
14588         and test explicitly for non-zero return value.
14589
14590         * g-socthi-vms.ads, g-socthi-mingw.ads, g-socthi-vxworks.ads:
14591         (Is_Socket_In_Set): Declare imported function as returning C.int, to
14592         avoid using a derived boolean type.
14593
14594 2004-08-09  Albert Lee  <lee@gnat.com>
14595
14596         * system-irix-n32.ads: Refine tasking priority constants for IRIX.
14597
14598 2004-08-09  Pascal Obry  <obry@gnat.com>
14599
14600         * gnat_ugn.texi: Document new way to build DLLs on Windows using
14601         GCC's -shared option.
14602
14603         * mlib-tgt-mingw.adb (Build_Dynamic_Library): Pass GCC's options into
14604         Options_2 parameter (options put after object files).
14605
14606 2004-08-09  Olivier Hainque  <hainque@act-europe.fr>
14607
14608         * decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Adjust condition to
14609         ignore overflows on low and high bounds of an index to also account for
14610         differences in signedness between sizetype and gnu_index_subtype.
14611         These are as legitimate as the ones caused by a lower TYPE_PRECISION
14612         on sizetype.
14613
14614 2004-08-09  Robert Dewar  <dewar@gnat.com>
14615
14616         * s-solita.ads, s-solita.adb: Minor reformatting
14617
14618         * gnat_rm.texi: Add documentation for pragma Profile (Restricted)
14619         Move pragma Restricted_Run_Time, No_Run_Time, Ravenscar to new
14620         obsolescent section
14621         Add note that No_Implicit_Conditionals does not suppress
14622         run time constraint checks.
14623
14624         * vms_conv.ads: Minor reformatting
14625
14626         * s-secsta.adb: Use SS_Ptr instead of Mark_Id as stack pointer (cleanup
14627         and necessary for following change).
14628         (Mark): Return new format Mark_Id containing sec stack address
14629         (Release): Use sec stack address from Mark_Id avoiding Self call
14630
14631         * s-secsta.ads: Define SS_Ptr to be used instead of Mark_Id as stack
14632         pointer (cleanup and necessary for following change).
14633         Define Mark_Id as record containing address of secondary stack, that way
14634         Release does not need to find the stack again, decreasing the number of
14635         calls to Self and improving efficiency.
14636
14637         * sem_util.ads: Add a ??? comment for Is_Local_Variable_Reference
14638
14639         * sem_ch5.adb (Analyze_Case_Statement): Add circuitry to track value of
14640         case variable into the individual case branches when possible.
14641
14642         * sem_ch11.adb: Minor reformatting
14643
14644         * prj.ads: Correct spelling of suffixs
14645
14646         * prj-nmsc.adb: Minor reformatting
14647         Correct spelling suffixs throughout (also in identifiers)
14648
14649         * freeze.adb: Minor spelling correction
14650
14651         * exp_ch2.adb: Cleanups to handling of Current_Value
14652         (no functional effect).
14653
14654         * bld.adb: Correct spelling of suffixs
14655
14656         * einfo.adb (Enclosing_Dynamic_Scope): Defend against junk argument
14657
14658 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14659
14660         PR ada/15408
14661
14662         * sem_ch7.adb (Install_Private_Declarations): In the body of the
14663         package or of a child, private entities are both immediately_visible
14664         and not hidden.
14665
14666 2004-08-09  Ed Schonberg  <schonberg@gnat.com>
14667
14668         * sem_eval.adb (Eval_Integer_Literal): If the context is Any_Integer,
14669         there are no range checks on the value of the literal.
14670
14671         * exp_ch7.adb (Insert_Actions_In_Scope_Around): If the node being
14672         wrapped is the triggering alternative of an asynchronous select, action
14673         statements mustbe inserted before the select itself.
14674
14675         * sem_attr.adb (Analyze_Attribute, case 'Size): Handle properly the
14676         case where the prefix is a protected function call.
14677         (Resolve_Attribute, case 'Access): The attribute reference on a
14678         subprogram is legal in a generic body if the subprogram is declared
14679         elsewhere.
14680
14681 2004-08-09  Vincent Celier  <celier@gnat.com>
14682
14683         * makegpr.adb (Build_Library): Link with g++ if C++ is one of the
14684         languages, otherwise building the library may fail with unresolved
14685         symbols.
14686         (Compile_Sources): Do not build libraries if -c switch is used
14687
14688         * gnatlink.adb (Process_Args): New switches -M and -Mmap
14689         (Write_Usage): If map file creation is supported, output new switches
14690         -M and -Mmap.
14691         (Gnatlink): When -M is specified, add the necessary switch(es) to the
14692         gcc call, when supported.
14693
14694         * Makefile.in: Added indepsw.o to the object list for gnatlink
14695         Specified the AIX, GNU/Linux and Windows versions of indepsw.adb
14696
14697         * indepsw-aix.adb, indepsw-linux.adb, indepsw-mingw.adb,
14698         indepsw.adb, indepsw.ads: New files.
14699
14700 2004-08-09  Bernard Banner  <banner@gnat.com>
14701
14702         * system-vxworks-x86.ads, s-vxwork-x86.ads: New files.
14703
14704         * Makefile.in: add section for vxworks x86
14705
14706 2004-08-09  Hristian Kirtchev  <kirtchev@gnat.com>
14707
14708         * exp_ch3.adb (Build_Init_Statements): Add extra condition to deal with
14709         per-object constrained components where the discriminant is of an
14710         Access type.
14711         (Build_Record_Init_Proc): Add condition to prevent the inheritance of
14712         the parent initialization procedure for derived Unchecked_Unions.
14713         Instead, derived Unchecked_Unions build their own initialization
14714         procedure.
14715         (Build_Variant_Record_Equality): Implement Unchecked_Union equality.
14716         Check the body of the subprogram for details.
14717         (Freeze_Record_Type): Prevent the inheritance of discriminant checking
14718         functions for derived Unchecked_Union types by introducing a condition.
14719         Allow the creation of TSS equality functions for Unchecked_Unions.
14720         (Make_Eq_Case): Rename formal parameter Node to E in function signature.
14721         Add formal parameter Discr to function signature. Discr is used to
14722         control the generated case statement for Unchecked_Union types.
14723         (Make_Eq_If): Rename formal parameter Node to E in function signature.
14724
14725         * exp_ch4.adb (Build_Equality_Call): Implement equality calls for
14726         Unchecked_Unions.
14727         Check the body of the subprogram for details.
14728         (Expand_Composite_Equality): Augment composite type equality to include
14729         correct handling of Unchecked_Union components.
14730         (Expand_N_In): Add condition to detect illegal membership tests when the
14731         subtype mark is a constrained Unchecked_Union and the expression lacks
14732         inferable discriminants, and build a Raise_Program_Error node.
14733         (Expand_N_Op_Eq): Add function Has_Unconstrained_UU_Component. Used
14734         to detect types that contain components of unconstrained Unchecked_Union
14735         subtype. Add condition to detect equality between types that have an
14736         unconstrained Unchecked_Union component, and build a Raise_Program_Error
14737         node. Add condition to detect equality between Unchecked_Union types
14738         that lack inferable discriminants, and build a Raise_Program_Error node.
14739         Otherwise build a TSS equality function call.
14740         (Expand_N_Type_Conversion): Add condition to detect illegal conversions
14741         from a derived Unchecked_Union to an unconstrained non-Unchecked_Union
14742         with the operand lacking inferable discriminants, and build a Raise_
14743         Program_Error node.
14744         (Expand_Record_Equality): Remove guard that prevents Unchecked_Union
14745         composite equality.
14746         (Has_Inferable_Discriminants): Implement new predicate for objects and
14747         expressions of Unchecked_Union type. Check the body of subprogram for
14748         details.
14749         (Has_Unconstrained_UU_Components): Add function
14750         Component_Is_Unconstrained_UU. It is used to detect whether a single
14751         component is of an unconstrained Unchecked_Union subtype. Add function
14752         Variant_Is_Unconstrained_UU. It is used to detect whether a single
14753         component inside a variant is of an unconstrained Unchecked_Union type.
14754
14755         * exp_ch5.adb (Expand_Assign_Record): Add condition to copy the
14756         inferred discriminant values. Add condition to generate a case
14757         statement with an inferred discriminant as the switch.
14758         (Make_Component_List_Assign): Introduce a Boolean flag that determines
14759         the behaviour of the subprogram in the presence of an Unchecked_Union.
14760         Add condition to trigger the usage of the inferred discriminant value
14761         as the generated case statement switch.
14762         (Make_Field_Assign): Introduce a Boolean flag that determines the
14763         behaviour of the subprogram in the presence of an Unchecked_Union. Add
14764         condition to trigger the usage of the inferred discriminant value as
14765         the right-hand side of the generated assignment.
14766
14767         * exp_ch6.adb (Expand_Call): Add condition to skip extra actual
14768         parameter generation when dealing with Unchecked_Unions.
14769
14770         * checks.adb (Apply_Discriminant_Check): Do not apply discriminant
14771         checks for Unchecked_Unions.
14772
14773         * einfo.ads: Update comment on usage of flag Has_Per_Object_Constraint
14774
14775         * exp_attr.adb (Expand_N_Attribute_Reference): Produce
14776         Raise_Program_Error nodes for the execution of Read and Write
14777         attributes of Unchecked_Union types and the execution of Input and
14778         Output attributes of Unchecked_Union types that lack default
14779         discriminant values.
14780
14781         * sem_prag.adb (Analyze_Pragma): Remodel the analysis of pragma
14782         Unchecked_Union. Add procedure Check_Component. It is used to inspect
14783         per-object constrained components of Unchecked_Unions for being
14784         Unchecked_Unions themselves. Add procedure Check_Variant. It is used to
14785         check individual components withing a variant.
14786
14787         * sem_res.adb (Resolve_Comparison_Op): Remove guard that prevents
14788         comparison of Unchecked_Unions.
14789         (Resolve_Equality_OP): Remove guard that prevents equality between
14790         Unchecked_Unions.
14791
14792         * sem_util.adb (Build_Component_Subtype): Add guard to prevent creation
14793         of component subtypes for Unchecked_Union components.
14794         (Get_Actual_Subtype): Add condition that returs the Unchecked_Union type
14795         since it is the actual subtype.
14796
14797         * sem_ch12.adb (Instantiate_Type): Add condition to detect the correct
14798         pass of Unchecked_Union subtypes as generic actuals to formal types
14799         that lack known_discriminant_parts or that are derived Unchecked_Union
14800         types, and do nothing. In any other case, produce an error message.
14801
14802         * sem_ch3.adb (Analyze_Component_Declaration): Add function
14803         Contains_POC. It determines whether a constraint uses the discriminant
14804         of an enclosing record type.
14805         Add condition to detect per-object constrained component and set the
14806         appropriate flag.
14807         (Derived_Type_Declaration): Remove guard that prevents derivation from
14808         Unchecked_Union types.
14809         (Process_Subtype): Remove quard that prevents the creation of Unchecked_
14810         Union subtypes.
14811
14812         * sem_ch4.adb (Analyze_Selected_Component): Correct the detection of
14813         references to Unchecked_Union discriminants.
14814
14815         * sem_ch6.adb (Create_Extra_Formals): Add condition to skip extra
14816         formal generation when dealing with Unchecked_Unions.
14817         (Set_Actual_Subtypes): Add condition to prevent generation of actual
14818         subtypes for Unchecked_Unions.
14819
14820         * sem_ch7.adb (Analyze_Package_Specification): Add procedure
14821         Inspect_Unchecked_Union_Completion. It is used to detect incorrect
14822         completions of discriminated partial views by Unchecked_Unions and
14823         produce an error message.
14824
14825 2004-08-09  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14826
14827         * trans.c (struct stmt_group): New field, GLOBAL.
14828         (global_stmt_group, gnu_elab_proc_decl, build_unit_elab): Deleted.
14829         (struct elab_info): New struct.
14830         (elab_info_list, gnu_elab_proc_stack): New variables.
14831         (Compilation_Unit_to_gnu): New procedure.
14832         (gigi): Call it and also handle elaboration procs we've saved.
14833         (gnat_init_stmt_group): Don't set global_stmt_group; instead initialize
14834         global field from parent.
14835         (gnat_to_gnu): Get decl from gnu_elab_proc_stack.
14836         (gnat_to_gnu, case N_Compilation_Unit): Call Compilation_Unit_to_gnu.
14837         (start_stmt_group): Initialize global field from parent.
14838         (add_decl_expr): Set to global for current statement group.
14839         (gnat_gimplify_expr, case NULL_EXPR): Add operand 0 to pre list, not
14840         post.
14841
14842         * utils.c (global_bindings_p): True when no current_function_decl; no
14843         longer check current_binding_level.
14844
14845 2004-08-09  Ben Brosgol  <brosgol@gnat.com>
14846
14847         * xgnatugn.adb: Added logic to deal with @ifset/@ifclear for edition
14848         choice.
14849
14850         * gnat_rm.texi, gnat_ugn.texi: Added edition conditionalization logic.
14851
14852 2004-08-06  Andreas Schwab  <schwab@suse.de>
14853
14854         * utils.c (gnat_define_builtin): Remove second parameter of
14855         make_decl_rtl.
14856         (begin_subprog_body): Likewise.
14857
14858 2004-07-26  Arnaud Charlet  <charlet@act-europe.fr>
14859
14860         * sem_util.adb (Requires_Transient_Scope): Temporarily disable
14861         optimization, not supported by the tree-ssa back-end.
14862
14863 2004-07-26  Olivier Hainque  <hainque@act-europe.fr>
14864
14865         * s-mastop-irix.adb: Update comments.
14866
14867         * a-except.adb (Exception_Information): Raise Constraint_Error if
14868         exception Id is Null_Id.
14869         This is required behavior, which is more reliably and clearly checked
14870         at the top level interface level.
14871
14872 2004-07-26  Javier Miranda  <miranda@gnat.com>
14873
14874         * exp_aggr.adb (Build_Array_Aggr_Code): Do not build the initialization
14875         call if a component has no default_expression and the box is used.
14876
14877         * sem_aggr.adb (Resolve_Array_Aggregate): If a component has no
14878         default_expression and you use box, it behaves as if you had declared a
14879         stand-alone object.
14880         (Resolve_Record_Aggregate): If a component has no default_expression and
14881         you use box, it behaves as if you had declared a stand-alone object.
14882
14883         * sem_ch10.adb (Install_Siblings): Do not make visible the private
14884         entities of private-with siblings.
14885
14886 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14887
14888         * sem_ch3.adb (Build_Underlying_Full_View): If this is the full view
14889         for a component of an itype, set the parent pointer for analysis,
14890         there is no list in which to insert it.
14891
14892         * sem_res.adb (Resolve): Call Rewrite_Renamed_Operator only for
14893         bona-fide renamings, not for inherited operations.
14894
14895         * exp_ch4.adb (Expand_Allocator_Expression): If the allocator is an
14896         actual for a formal that is an access parameter, create local
14897         finalization list even if the expression is not an aggregate.
14898
14899 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14900
14901         PR ada/16213
14902         * sem_ch8.adb (Attribute_Renaming, Check_Library_Level_Renaming):
14903         Diagnose properly illegal subprogram renamings that are library units.
14904
14905 2004-07-26  Ed Schonberg  <schonberg@gnat.com>
14906
14907         PR ada/15588
14908         * sem_util.adb (Is_OK_Variable_For_Out_Formal): If actual is a type
14909         conversion rewritten as an unchecked conversion, check that original
14910         expression is a variable.
14911
14912         * exp_ch4.adb (Expand_N_Type_Conversion): If rewriting as an
14913         unchecked_conversion, create new node rather than rewriting in place,
14914         to preserve original construct.
14915
14916 2004-07-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
14917
14918         * gigi.h (gnat_expand_body): Deleted.
14919
14920         * Make-lang.in: (trans.o): Depends on function.h.
14921
14922         * misc.c: (gnat_expand_body): Moved to here.
14923
14924         * trans.c (gnat_expand_body_1): Deleted.
14925         (gnat_expand_body): Moved from here.
14926         (gnat_to_gnu): N_Implicit_Label_Declaration forces being in elab proc.
14927         (add_stmt): Check for marked visited with global_bindings_p.
14928         (gnat_gimplify_expr, case COMPONENT_REF): New case.
14929         (gnat_gimplify_expr, case NULL_EXPR): Set TREE_NO_WARNING for temp.
14930
14931         * utils2.c (build_binary_op, case MODIFY_EXPR): Put LHS in a
14932         VIEW_CONVERT_EXPR if not operation type.
14933
14934         * utils.c (update_pointer_to): Set DECL_ORIGINAL_FIELD for
14935         fat pointer.
14936
14937         * decl.c, cuintp.c, gigi.h, misc.c, trans.c, utils.c, utils2.c: Minor
14938         changes: reformatting of negation operators, removing unneeded
14939         inequality comparison with zero, converting equality comparisons with
14940         zero to negations, changing int/0/1 to bool/false/true, replace calls
14941         to gigi_abort with abort, and various other similar changes.
14942
14943 2004-07-26  Vincent Celier  <celier@gnat.com>
14944
14945         * gnatcmd.adb (GNATCmd): Add processing for new built-in command
14946         "setup".
14947
14948         * make.adb (Gnatmake): Fail when a library is not present and there is
14949         no object directory.
14950
14951         * mlib-prj.adb (Check_Library): No need to check if the library needs
14952         to be rebuilt if there is no object directory, hence no object files
14953         to build the library.
14954
14955         * opt.ads (Setup_Projects): New Boolean flag.
14956
14957         * prj-nmsc.adb (Locate_Directory): New parameter Project, Kind and
14958         Location.
14959         Create directory when Kind /= "" and in "gnat setup". Report error if
14960         directory cannot be created.
14961         (Ada_Check): Create library interface copy dir if it does not exist
14962         and we are in "gnat setup".
14963         (Find_Sources): No error if in "gnat setup" and no Ada sources were
14964         found.
14965         (Language_Independent_Check): Create object directory, exec directory
14966         and/or library directory if they do not exist and we are in
14967         "gnat setup".
14968
14969         * vms_conv.ads: (Command_Type): New command Setup.
14970
14971         * vms_conv.adb (Initialize): Add Setup component of Cammand_List.
14972
14973         * vms_data.ads: Add qualifiers/switches for new built-in command
14974         "setup".
14975
14976 2004-07-25  Richard Henderson  <rth@redhat.com>
14977
14978         * utils.c (create_subprog_decl): Set DECL_ARTIFICIAL and
14979         DECL_IGNORED_P on RESULT_DECL.
14980
14981 2004-07-20  Olivier Hainque  <hainque@act-europe.fr>
14982
14983         * a-elchha.adb (Last_Chance_Handler): Remove the bogus buffer dynamic
14984         allocation and potentially overflowing update with
14985         Tailored_Exception_Information. Use the sec-stack free procedural
14986         interface to output Exception_Information instead.
14987
14988         * a-except.adb (To_Stderr): New subprogram for character, and string
14989         version moved from a-exextr to be visible from other separate units.
14990         (Tailored_Exception_Information): Remove the procedural version,
14991         previously used by the default Last_Chance_Handler and not any more.
14992         Adjust various comments.
14993
14994         * a-exexda.adb: Generalize the exception information procedural
14995         interface, to minimize the use of secondary stack and the need for
14996         local buffers when the info is to be output to stderr:
14997         (Address_Image): Removed.
14998         (Append_Info_Character): New subprogram, checking for overflows and
14999         outputing to stderr if buffer to fill is of length 0.
15000         (Append_Info_String): Output to stderr if buffer to fill is of length 0.
15001         (Append_Info_Address, Append_Info_Exception_Name,
15002         Append_Info_Exception_Message, Append_Info_Basic_Exception_Information,
15003         Append_Info_Basic_Exception_Traceback,
15004         Append_Info_Exception_Information): New subprograms.
15005         (Append_Info_Nat, Append_Info_NL): Use Append_Info_Character.
15006         (Basic_Exception_Info_Maxlength, Basic_Exception_Tback_Maxlength,
15007         Exception_Info_Maxlength, Exception_Name_Length,
15008         Exception_Message_Length): New subprograms.
15009         (Exception_Information): Use Append_Info_Exception_Information.
15010         (Tailored_Exception_Information): Use
15011         Append_Info_Basic_Exception_Information.
15012         Export services for the default Last_Chance_Handler.
15013
15014         * a-exextr.adb (To_Stderr): Remove. Now in a-except to be usable by
15015         other separate units.
15016
15017 2004-07-20  Vincent Celier  <celier@gnat.com>
15018
15019         * clean.adb, mlib-utl.adb, osint.adb, makegpr.adb: Minor reformatting.
15020
15021 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15022
15023         * freeze.adb (Freeze_Entity): If entity is a discriminated record type,
15024         emit itype references for the designated types of component types that
15025         are declared outside of the full record declaration, and that may
15026         denote a partial view of that record type.
15027
15028 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15029
15030         PR ada/15607
15031         * sem_ch3.adb (Build_Discriminated_Subtype): Do not attach a subtype
15032         which is the designated type in an access component declaration, to the
15033         list of incomplete dependents of the parent type, to avoid elaboration
15034         issues with out-of-scope subtypes.
15035         (Complete_Private_Subtype): Recompute Has_Unknown_Discriminants from the
15036         full view of the parent.
15037
15038 2004-07-20  Ed Schonberg  <schonberg@gnat.com>
15039
15040         PR ada/15610
15041         * sem_ch8.adb (Find_Expanded_Name): If name is overloaded, reject
15042         entities that are hidden, such as references to generic actuals
15043         outside an instance.
15044
15045 2004-07-20  Javier Miranda  <miranda@gnat.com>
15046
15047         * sem_ch4.adb (Try_Object_Operation): New subprogram that gives
15048         support to the new notation.
15049         (Analyze_Selected_Component): Add call to Try_Object_Operation.
15050
15051 2004-07-20  Jose Ruiz  <ruiz@act-europe.fr>
15052
15053         * s-taprob.adb: Adding the elaboration code required for initializing
15054         the tasking soft links that are common to the full and the restricted
15055         run times.
15056
15057         * s-tarest.adb (Init_RTS): Tasking soft links that are shared with the
15058         restricted run time has been moved to the package
15059         System.Soft_Links.Tasking.
15060
15061         * s-tasini.adb (Init_RTS): Tasking soft links that are shared with the
15062         restricted run time has been moved to the package
15063         System.Soft_Links.Tasking.
15064
15065         * Makefile.rtl: Add entry for s-solita.o in run-time library list.
15066
15067         * s-solita.ads, s-solita.adb: New files.
15068
15069 2004-07-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15070
15071         * trans.c (Identifier_to_gnu, Pragma_to_gnu, Attribute_to_gnu,
15072         Case_Statement_to_gnu): Split off from gnat_to_gnu.
15073         (Loop_Statement_to_gnu, Subprogram_Body_to_gnu, call_to_gnu,
15074         Handled_Sequence_Of_Statements_to_gnu, Exception_Handler_to_gnu_sjlj,
15075         Exception_Handler_to_gnu_zcx): Likewise.
15076
15077 2004-07-17  Joseph S. Myers  <jsm@polyomino.org.uk>
15078
15079         * gigi.h (builtin_function): Declare.
15080
15081 2004-07-15  Robert Dewar  <dewar@gnat.com>
15082
15083         * makegpr.adb, s-secsta.ads, sem_ch3.adb, sem_case.adb: Minor
15084         reformatting
15085
15086         * gnat_ugn.texi: Add instantiation of direct_io or sequential_io with
15087         access values as an example of a warning.
15088
15089         * gnat_rm.texi: Document new attribute Has_Access_Values
15090
15091         * gnat-style.texi: Document that box comments belong on nested
15092         subprograms
15093
15094         * sem_util.ads (Has_Access_Values): Improved documentation
15095
15096         * s-finimp.ads, s-finimp.adb: Fix spelling error in comment
15097
15098         * sem_prag.adb (Check_Duplicated_Export_Name): New procedure
15099         (Process_Interface_Name): Call to this new procedure
15100         (Set_Extended_Import_Export_External_Name): Call to this new procedure
15101
15102         * s-mastop-x86.adb, 9drpc.adb: Fix spelling error in comment
15103
15104         * a-direio.ads, a-sequio.ads: Warn if Element_Type has access values
15105
15106         * einfo.ads: Minor comment typo fixed
15107
15108 2004-07-15  Jose Ruiz  <ruiz@act-europe.fr>
15109
15110         * snames.adb: Add _atcb.
15111
15112         * snames.ads: Add Name_uATCB.
15113
15114         * s-tarest.adb (Create_Restricted_Task): ATCBs are always preallocated
15115         (in the expanded code) when using the restricted run time.
15116
15117         * s-tarest.ads (Create_Restricted_Task): Created_Task transformed into
15118         a in parameter in order to allow ATCBs to be preallocated (in the
15119         expanded code).
15120
15121         * s-taskin.adb (Initialize_ATCB): T converted into a in parameter in
15122         order to allow ATCBs to be preallocated. In case of error, the ATCB is
15123         deallocated in System.Tasking.Stages.
15124
15125         * s-taskin.ads (Initialize_ATCB): T converted into a in parameter in
15126         order to allow ATCBs to be preallocated.
15127
15128         * s-tassta.adb (Create_Task): In case of error the ATCB is deallocated
15129         here. It was previously done in Initialize_ATCB.
15130
15131         * rtsfind.ads: Make the Ada_Task_Control_Block visible.
15132
15133         * exp_ch9.adb: Preallocate the Ada_Task_Control_Block when using the
15134         Restricted run time.
15135
15136         * exp_ch3.adb: When using the Restricted run time, pass the
15137         preallocated Ada_Task_Control_Block when creating a task.
15138
15139 2004-07-15  Ed Schonberg  <schonberg@gnat.com>
15140
15141         * sem_util.adb (Normalize_Actuals): If there are no actuals on a
15142         function call that is itself an actual in an enclosing call, diagnose
15143         problem here rather than assuming that resolution will catch it.
15144
15145         * sem_ch7.adb (Analyze_Package_Specification): If the specification is
15146         the local copy of a generic unit for a formal package, and the generic
15147         is a child unit, install private part of ancestors before compiling
15148         private part of spec.
15149
15150         * sem_cat.adb (Validate_Categorization_Dependency): Simplify code to
15151         use scope entities rather than tree structures, to handle properly
15152         parent units that are instances rewritten as bodies for inlining
15153         purposes.
15154
15155         * sem_ch10.adb (Get_Parent_Entity, Implicit_With_On_Parent,
15156         Remove_Parents): Handle properly a parent unit that is an
15157         instantiation, when the unit has been rewritten as a body for inlining
15158         purposes.
15159
15160         * par.adb (Goto_List): Global variable to collect goto statements in a
15161         given unit, for use in detecting natural loops.
15162
15163         * par-ch5.adb (P_Goto_Statement): Add goto to global Goto_List, for
15164         use in detecting natural loops.
15165
15166         * par-labl.adb (Find_Natural_Loops): Recognize loops create by
15167         backwards goto's, and rewrite as a infinite loop, to improve locality
15168         of temporaries.
15169
15170         * exp_util.adb (Force_Evaluation): Recognize a left-hand side
15171         subcomponent that includes an indexed reference, to prevent the
15172         generation of copies that would miscompile the desired assignment
15173         statement.
15174         (Build_Task_Image_Decls): Add a numeric suffix to
15175         generated name for string variable, to avoid spurious conflicts with
15176         the name of the type of a single protected object.
15177
15178         * exp_ch4.adb (Expand_Array_Equality): If indices are distinct, use a
15179         loop with an explicit exit statement, to avoid generating an
15180         out-of-range value with 'Succ leading to spurious constraint_errors
15181         when compiling with -gnatVo.
15182
15183 2004-07-15  Thomas Quinot  <quinot@act-europe.fr>
15184
15185         * sem_ch4.adb (Analyze_Slice): Always call Analyze on the prefix: it
15186         might not be analyzed yet, even if its Etype is already set (case of an
15187         unchecked conversion built using Unchecked_Convert_To, for example).
15188         If the prefix has already been analyzed, this will be a nop anyway.
15189
15190         * exp_ch5.adb (Make_Tag_Ctrl_Assignment): For an assignment of a
15191         controller type, or an assignment of a record type with controlled
15192         components, copy only user data, and leave the finalization chain
15193         pointers untouched.
15194
15195 2004-07-15  Vincent Celier  <celier@gnat.com>
15196
15197         * make.adb (Collect_Arguments): Improve error message when attempting
15198         to compile a source not part of any project, when -x is not used.
15199
15200         * prj.ads: (Defined_Variable_Kind): New subtype
15201
15202         * prj-attr.adb (Register_New_Package): Two new procedures to register
15203         a package with or without its attributes.
15204         (Register_New_Attribute): Mew procedure to register a new attribute in a
15205         package.
15206         New attribute oriented subprograms: Attribute_Node_Id_Of,
15207         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15208         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15209         Next_Attribute.
15210         New package oriented subprograms: Package_Node_Id_Of,
15211         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15212
15213         * prj-attr.ads (Attribute_Node_Id): Now a private, self initialized
15214         type.
15215         (Package_Node_Id): Now a private, self initialized type
15216         (Register_New_Package): New procedure to register a package with its
15217         attributes.
15218         New attribute oriented subprograms: Attribute_Node_Id_Of,
15219         Attribute_Kind_Of, Set_Attribute_Kind_Of, Attribute_Name_Of,
15220         Variable_Kind_Of, Set_Variable_Kind_Of, Optional_Index_Of,
15221         Next_Attribute.
15222         New package oriented subprograms: Package_Node_Id_Of,
15223         Add_Unknown_Package, First_Attribute_Of, Add_Attribute.
15224
15225         * prj-dect.adb (Parse_Attribute_Declaration,
15226         Parse_Package_Declaration): Adapt to new spec of Prj.Attr.
15227
15228         * prj-makr.adb (Make): Parse existing project file before creating
15229         other files. Fail if there was an error during parsing.
15230
15231         * prj-proc.adb (Add_Attributes, Process_Declarative_Items): Adapt to
15232         new spec of Prj.Attr.
15233
15234         * prj-strt.adb (Attribute_Reference, Parse_Variable_Reference): Adapt
15235         to new spec of Prj.Attr.
15236
15237 2004-07-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15238
15239         * utils2.c: Fix typo in comment.
15240
15241 2004-07-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15242
15243         * trans.c (add_decl_expr): Clear TREE_READONLY if clear DECL_INITIAL.
15244         * utils.c (unchecked_convert): Don't do two VIEW_CONVERT_EXPRs.
15245
15246 2004-07-14  Andreas Schwab  <schwab@suse.de>
15247
15248         * trans.c (gnat_init_stmt_group): Remove duplicate definition.
15249
15250 2004-07-13  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15251
15252         * decl.c: (gnat_to_gnu_entity, object case): Convert initializer to
15253         object type.
15254         (gnat_to_gnu_entity, case E_Record_Subtype): Properly set
15255         TYPE_STUB_DECL.
15256
15257         * misc.c (gnat_types_compatible_p): New function.
15258         (LANG_HOOKS_TYPES_COMPATIBLE_P): New hook, to use it.
15259         (LANG_HOOKS_TYPE_MAX_SIZE, gnat_type_max_size): New.
15260
15261         * trans.c (gigi): Move processing of main N_Compilation_Unit here.
15262         (gnat_to_gnu, case N_Compilation_Unit): Just handle nested case here.
15263         (add_stmt): Force walking of sizes and DECL_INITIAL for DECL_EXPR.
15264         (mark_visited): Don't mark dummy type.
15265         (tree_transform <N_Procedure_Call_Statement>): Unless this is an In
15266         parameter, we must remove any LJM building from GNU_NAME.
15267         (gnat_to_gnu, case N_String_Literal): Fill in indices in CONSTRUCTOR.
15268         (pos_to_constructor): Use int_const_binop.
15269         (gnat_to_gnu, case N_Identifier): Don't reference DECL_INITIAL of
15270         PARM_DECL.
15271
15272         * utils.c (gnat_init_decl_processing): Don't make two "void" decls.
15273         (gnat_pushlevel): Set TREE_USE on BLOCK node.
15274         (gnat_install_builtins): Add __builtin_memset.
15275
15276 2004-07-13  Olivier Hainque  <hainque@act-europe.fr>
15277
15278         * decl.c (gnat_to_gnu_entity <E_Variable>): If we are making a pointer
15279         for a renaming, stabilize the initialization expression if we are at a
15280         local level.  At the local level, uses of the renaming may be performed
15281         by a direct dereference of the initializing expression, and we don't
15282         want possible variables there to be evaluated for every use.
15283
15284         * trans.c (gnat_stabilize_reference, gnat_stabilize_reference_1):
15285         Propagate TREE_SIDE_EFFECTS and TREE_THIS_VOLATILE to avoid loosing
15286         them on the way.  Account for the fact that we may introduce side
15287         effects in the process.
15288
15289 2004-07-13  Richard Henderson  <rth@redhat.com>
15290
15291         * misc.c (default_pass_by_ref): Use pass_by_reference.
15292
15293 2004-07-11  Joseph S. Myers  <jsm@polyomino.org.uk>
15294
15295         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL,
15296         LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove.
15297
15298 2004-07-08  Richard Henderson  <rth@redhat.com>
15299
15300         * trans.c (gnat_to_gnu <N_Handled_Sequence_Of_Statements>): Update
15301         commentary.
15302
15303 2004-07-06  Vincent Celier  <celier@gnat.com>
15304
15305         * vms_conv.ads: Minor reformatting.
15306         Alphabetical order for enumerated values of type Command_Type, to have
15307         the command in alphabetical order for the usage.
15308
15309         * vms_conv.adb (Process_Argument): Set Keep_Temporary_Files to True for
15310         the special qualifier /KEEP_TEMPORARY_FILES (minimum 6 characters).
15311
15312         * gnat_ugn.texi: Document new switch -dn for the GNAT driver.
15313
15314         * makegpr.adb (Global_Archive_Exists): New global Boolean variable
15315         (Add_Archive_Path): Only add the global archive if there is one.
15316         (Build_Global_Archive): Set Global_Archive_Exists depending if there is
15317         or not any object file to put in the global archive, and don't build
15318         a global archive if there is none.
15319         (X_Switches): New table
15320         (Compile_Link_With_Gnatmake): Pass to gnatmake the -X switches stored
15321         in the X_Switches table, if any.
15322         (Initialize): Make sure the X_Switches table is empty
15323         (Scan_Arg): Record -X switches in table X_Switches
15324
15325         * opt.ads (Keep_Temporary_Files): New Boolean flag, defaulted to False.
15326
15327         * make.adb: Minor comment fix
15328
15329         * gnatname.adb (Gnatname): When not on VMS, and gnatname has been
15330         invoked with directory information, add the directory in front of the
15331         path.
15332
15333         * gnatchop.adb (Gnatchop): When not on VMS, and gnatchop has been
15334         invoked with directory information, add the directory in front of the
15335         path.
15336
15337         * gnatcmd.adb (Delete_Temp_Config_Files): Only delete temporary files
15338         when Keep_Temporary_Files is False.
15339         (GNATCmd): When not on VMS, and the GNAT driver has been invoked with
15340         directory information, add the directory in front of the path.
15341         When not on VMS, handle new switch -dn before the command to set
15342         Keep_Temporary_Files to True.
15343         (Non_VMS_Usage): Use lower case for the non VMS usage: this is valid
15344         everywhere.
15345
15346         * gnatlink.adb (Gnatlink): When not on VMS, and gnatlink has been
15347         invoked with directory information, add the directory in front of the
15348         path.
15349
15350 2004-07-06  Thomas Quinot  <quinot@act-europe.fr>
15351
15352         * snames.ads, snames.adb (Name_Stub): New name for the distributed
15353         systems annex.
15354
15355         * rtsfind.ads: New RTE TC_Object, for DSA/PolyORB.
15356         New RTEs RAS_Proxy_Type and RAS_Proxy_Type_Access, for DSA.
15357
15358         * g-socket.adb (To_Timeval): Fix incorrect conversion of
15359         Selector_Duration to Timeval for the case of 0.0.
15360
15361         * exp_util.ads (Evolve_Or_Else): Fix overenthusiastic copy/paste of
15362         documentation from Evolve_And_Then.
15363
15364 2004-07-06  Jose Ruiz  <ruiz@act-europe.fr>
15365
15366         * s-taprop-tru64.adb, s-taprop-os2.adb,
15367         s-taprop-mingw.adb, s-taprop-posix.adb: Update comment.
15368
15369 2004-07-06  Robert Dewar  <dewar@gnat.com>
15370
15371         * s-osinte-hpux.ads, s-osinte-freebsd.ads,
15372         s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-osinte-tru64.ads,
15373         s-osinte-aix.ads, s-osinte-irix.ads, s-taprop-irix.adb,
15374         s-interr-sigaction.adb, s-taprop-irix-athread.adb,
15375         s-osinte-hpux-dce.adb, s-taprop-hpux-dce.adb,
15376         s-taprop-linux.adb, s-taprop-dummy.adb, s-taprop-solaris.adb,
15377         s-interr-vms.adb, s-osinte-vms.ads, s-taprop-vms.adb,
15378         s-osinte-vxworks.ads, s-osprim-vxworks.adb, a-numaux-x86.adb,
15379         a-except.adb, a-exexpr.adb, a-intsig.adb, a-tags.adb,
15380         a-tags.ads, bindgen.ads, checks.adb, checks.adb,
15381         csets.ads, einfo.ads, einfo.ads, elists.adb, exp_ch4.adb,
15382         exp_ch7.adb, exp_dist.adb, exp_util.adb, freeze.adb,
15383         g-dynhta.adb, gnatmem.adb, g-regexp.adb, inline.adb,
15384         i-os2thr.ads, osint.adb, prj.adb, scng.adb, sem_cat.adb,
15385         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, sem_ch7.adb,
15386         sem_ch8.adb, sem_disp.adb, sem_prag.adb, sem_res.adb,
15387         sem_type.adb, sem_type.ads, sem_warn.adb, s-ficobl.ads,
15388         s-finimp.adb, s-htable.adb, sinfo.ads, sinput-l.ads,
15389         s-interr.adb, s-interr.ads, sprint.adb, s-tarest.adb,
15390         s-tasini.ads, s-taskin.ads, s-taskin.ads, uname.adb,
15391         vms_data.ads: Minor reformatting,
15392         Fix bad box comment format.
15393
15394         * gnat_rm.texi: Fix minor grammatical error
15395
15396         * sem_attr.adb, exp_attr.adb: New attribute Has_Access_Values
15397
15398         * sem_util.ads, sem_util.adb (Requires_Transient_Scope): Allow many
15399         more cases of discriminated records to be recognized as not needing a
15400         secondary stack.
15401         (Has_Access_Values): New function.
15402
15403         * snames.h, snames.adb, snames.ads: New attribute Has_Access_Values
15404
15405         * cstand.adb, layout.ads, layout.adb, sem_ch13.ads: Change name
15406         Set_Prim_Alignment to Set_Elem_Alignment (more accurate correspondence
15407         with LRM terminology).
15408         Change terminology in comments primitive type => elementary type.
15409
15410 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15411
15412         PR ada/15602
15413         * sem_ch7.adb (Unit_Requires_Body): For a generic package, the formal
15414         parameters do not impose any requirements on the presence of a body.
15415
15416 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15417
15418         PR ada/15593
15419         * sem_ch12.adb (Analyze_Package_Instantiation): If the generic is not a
15420         compilation unit and is in an open scope at the point of instantiation,
15421         assume that a body may be present later.
15422
15423 2004-07-06  Ed Schonberg  <schonberg@gnat.com>
15424
15425         * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 'Size):
15426         Improve error message when specified size is not supported.
15427
15428         * sem_ch6.adb (Maybe_Primitive_Operation): A library-level subprogram
15429         is never a primitive operation.
15430
15431 2004-07-05  Andreas Schwab  <schwab@suse.de>
15432
15433         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Use
15434         RECORD_OR_UNION_CHECK.
15435         (TYPE_CONTAINS_TEMPLATE_P): Likewise.
15436
15437 2004-07-04  Kelley Cook  <kcook@gcc.gnu.org>
15438
15439         * Make-lang.in (doc/gnat_ugn_unw.texi): Eliminate explicit
15440         dependency on xgnatugn, instead build it via a submake.
15441         (ADA_INFOFILES): Add doc/gnat_ugn_unw.texi.
15442
15443 2004-07-04  Richard Henderson  <rth@redhat.com>
15444
15445         * utils2.c (gnat_mark_addressable): Don't put_var_into_stack.
15446
15447 2004-07-01  Richard Henderson  <rth@redhat.com>
15448
15449         * trans.c (gnat_stabilize_reference): Don't handle RTL_EXPR.
15450         * utils.c (max_size): Likewise.
15451
15452 2004-06-28  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15453
15454         * decl.c: Remove calls to add_decl_expr, pushdecl, rest_of_compilation,
15455         and rest_of_type_compilation; add arg to create_*_decl.
15456         (annotate_decl_with_node): Deleted.
15457         (gnat_to_gnu_entity, case E_Array_Type): Set location of fields.
15458         * gigi.h (get_decls, block_has_vars, pushdecl): Deleted.
15459         (get_current_block_context, gnat_pushdecl): New declarations.
15460         (gnat_init_stmt_group): Likewise.
15461         (create_var_decl, create_type_decl, create_subprog_decl): Add new arg.
15462         * misc.c (LANG_HOOKS_CLEAR_BINDING_STACK): Deleted.
15463         (LANG_HOOKS_GETDECLS, LANG_HOOKS_PUSHDECL): Deleted.
15464         (gnat_init): Call gnat_init_stmt_group.
15465         * trans.c (global_stmt_group, gnu_elab_proc_decl): New variables.
15466         (gnu_pending_elaboration_list): Deleted.
15467         (mark_visited, mark_unvisited, gnat_init_stmt_group): New functions.
15468         (gigi): Rearrange initialization calls and move some to last above.
15469         (gnat_to_gnu): If statement and not in procedure, go into elab proc.
15470         Delete calls to add_decl_expr; add arg to create_*_decl.
15471         (gnat_to_gnu, case N_Loop): Recalculate side effects on COND_EXPR.
15472         (gnat_to_gnu, case N_Subprogram_Body): Move some code to
15473         begin_subprog_body and call it.
15474         Don't push and pop ggc context.
15475         (gnat_to_gnu, case N_Compilation_Unit): Rework to support elab proc.
15476         (add_stmt): Remove handling of DECL_EXPR from here.
15477         If not in function, mark visited.
15478         (add_decl_expr): Put global at top level.
15479         Check for cases of DECL_INITIAL we have to handle here.
15480         (process_type): Add extra arg to create_type_decl.
15481         (build_unit_elab): Rework to just gimplify.
15482         * utils.c (pending_elaborations, elist_stack, getdecls): Deleted.
15483         (block_has_vars, mark_visited, add_pending_elaborations): Likewise.
15484         (get_pending_elaborations, pending_elaborations_p): Likewise.
15485         (push_pending_elaborations, pop_pending_elaborations): Likewise.
15486         (get_elaboration_location, insert_elaboration_list): Likewise.
15487         (gnat_binding_level): Renamed from ada_binding_level.
15488         (init_gnat_to_gnu): Don't clear pending_elaborations.
15489         (global_bindings_p): Treat as global if no current_binding_level.
15490         (set_current_block_context): New function.
15491         (gnat_pushdecl): Renamed from pushdecl; major rework.
15492         All callers changed.
15493         (create_type_decl, create_var_decl, create_subprog_decl): Add new arg.
15494         (finish_record_type): Call call pushdecl for stub decl.
15495         (function_nesting_depth): Deleted.
15496         (begin_subprog_body): Delete obsolete code.
15497         * utils2.c (build_call_alloc_dealloc): Add new arg to create_var_decl.
15498
15499 2004-06-28  Robert Dewar  <dewar@gnat.com>
15500
15501         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15502         mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb,
15503         mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-solaris.adb,
15504         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb,
15505         a-strmap.adb, a-strmap.ads, clean.adb: Minor reformatting
15506
15507         * exp_util.adb (Is_Possibly_Unaligned_Slice): Completely rewritten, to
15508         deal with problem of inefficient slices on machines with strict
15509         alignment, when the slice is a component of a composite.
15510
15511         * checks.adb (Apply_Array_Size_Check): Do not special case 64-bit
15512         machines, we need the check there as well.
15513
15514 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15515
15516         * exp_ch5.adb (Expand_Assign_Array): Use correct condition to
15517         determine safe copying direction for overlapping slice assignments
15518         when component is controlled.
15519
15520         * sem_ch12.adb (Instantiate_Formal_Package): Implicit operations of a
15521         formal derived type in the actual for a formal package are visible in
15522         the enclosing instance.
15523
15524 2004-06-28  Ed Schonberg  <schonberg@gnat.com>
15525
15526         PR ada/15600
15527         * sem_util.adb (Trace_Components): Diagnose properly an illegal
15528         circularity involving a private type whose completion includes a
15529         self-referential component.
15530         (Enter_Name): Use Is_Inherited_Operation to distinguish a source
15531         renaming or an instantiation from an implicit derived operation.
15532
15533 2004-06-28  Pascal Obry  <obry@gnat.com>
15534
15535         * mlib-tgt-mingw.adb: (Library_Exists_For): Remove "lib" prefix from
15536         DLL.
15537         (Library_File_Name_For): Idem.
15538
15539 2004-06-28  Matthew Gingell  <gingell@gnat.com>
15540
15541         * g-traceb.ads: Add explanatory note on the format of addresses
15542         expected by addr2line.
15543
15544 2004-06-28  Jerome Guitton  <guitton@act-europe.fr>
15545
15546         * Makefile.in: Force debugging information on s-tasdeb.adb,
15547         a-except.adb and s-assert.adb needed by the debugger.
15548
15549 2004-06-28  Vincent Celier  <celier@gnat.com>
15550
15551         * make.adb (Collect_Arguments_And_Compile): Change Flag1 to
15552         Need_To_Build_Lib.
15553         (Gnatmake): Ditto.
15554
15555         * mlib-prj.adb (Check_Library): Replace Flag1 with Need_To_Build_Lib
15556
15557         * prj.adb: Minor reformatting
15558         (Project_Empty): Change Flag1 to Need_To_Build_Lib. Remove Flag2.
15559
15560         * prj.ads: Comment updates
15561         Minor reformatting
15562         (Project_Data): Change Flag1 to Need_To_Build_Lib.
15563         Remove Flag2: not used.
15564
15565         * prj-dect.adb (Parse_Declarative_Items): Accept "null" as a
15566         declaration.
15567
15568         * gnat_ugn.texi: Put a "null;" declaration in one project file example
15569
15570         * gnat_rm.texi: Document Empty declarations "null;".
15571
15572         * makegpr.adb (Compile_Link_With_Gnatmake): Put the global archives in
15573         front of the linker options.
15574         (Link_Foreign): Put the global archives and the libraries in front of
15575         the linker options.
15576
15577 2004-06-28  Javier Miranda  <miranda@gnat.com>
15578
15579         * rtsfind.adb: (Get_Unit_Name): Fix typo in comment
15580         (RTU_Loaded): Code cleanup
15581         (Set_RTU_Loaded): New procedure to register as *loaded* explicitly
15582         withed predefined units.
15583
15584         * rtsfind.ads (Set_RTU_Loaded): New procedure to register as *loaded*
15585         explicitly withed predefined units.
15586         Fix typo in comment
15587
15588         * sem_ch10.adb (Analyze_Compilation_Unit): Register as *loaded*
15589         explicitly withed predefined units.
15590
15591 2004-06-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15592
15593         * ada-tree.def (DECL_STMT): Deleted.
15594         * ada-tree.h (IS_ADA_STMT): Now test against STMT_STMT.
15595         (DECL_STMT_VAR): Deleted.
15596         * decl.c: add_decl_stmt now add_decl_expr.
15597         * gigi.h: Likewise.
15598         * trans.c: Likewise.
15599         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
15600         (gnat_to_gnu, case N_Subprogram_Body): Set cfun->function_end_locus.
15601         (add_stmt): Only handle padded type here.
15602         (add_stmt_with_node): Allow gnat_node to not be present.
15603         (gnat_gimplify_stmt, case USE_STMT): Set *STMT_P to null.
15604         (gnat_gimplify_stmt, case DECL_STMT): Deleted.
15605         (gnat_stabilize_reference_1): If COMPONENT_REF of fat pointer,
15606         make a SAVE_EXPR for the entire fat pointer.
15607         * utils.c (pushdecl): Walk a DECL_EXPR in global case.
15608         (create_index_type): Make a DECL_EXPR.
15609         (end_subprog_body): Don't call allocate_struct_function here but
15610         do clear cfun.
15611
15612 2004-06-25  Pascal Obry  <obry@gnat.com>
15613
15614         * makegpr.adb (Build_Library): Remove parameter Lib_Address and
15615         Relocatable from Build_Dynamic_Library call.
15616
15617         * gnat_ugn.texi: Change documentation about Library_Kind. Dynamic and
15618         Relocatable are now synonym.
15619
15620         * Makefile.in: Use s-parame-mingw.adb on MingW platform.
15621
15622         * mlib-prj.adb (Build_Library): Remove DLL_Address constant definition.
15623         Remove parameter Lib_Address and Relocatable from Build_Dynamic_Library
15624         call.
15625
15626         * mlib-tgt.ads, mlib-tgt.adb (Build_Dynamic_Library): Remove parameter
15627         Lib_Address and Relocatable.
15628         (Default_DLL_Address): Removed.
15629
15630         * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb,
15631         mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb,
15632         mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-vxworks.adb:
15633         (Build_Dynamic_Library): Remove parameter Lib_Address and Relocatable.
15634         (Default_DLL_Address): Removed.
15635
15636         * mlib-tgt-mingw.adb: Ditto.
15637         (Build_Dynamic_Library): Do not add "lib" prefix to the DLL name.
15638
15639         * s-taprop-mingw.adb (Create_Task): Use Adjust_Storage_Size to compute
15640         the initial thread stack size.
15641
15642         * a-strmap.ads: Move package L to private part as it is not used in
15643         the spec. Found while reading code.
15644
15645 2004-06-25  Olivier Hainque  <hainque@act-europe.fr>
15646
15647         * tracebak.c: Introduce support for a GCC infrastructure based
15648         implementation of __gnat_backtrace.
15649
15650         * raise.c: Don't rely on a C mapping of the GNAT_GCC_Exception record
15651         any more. Use accessors instead. This eases maintenance and relaxes
15652         some alignment constraints.
15653         (_GNAT_Exception structure): Remove the Ada specific fields
15654         (EID_For, Adjust_N_Cleanups_For): New accessors, exported by
15655         a-exexpr.adb.
15656         (is_handled_by, __gnat_eh_personality): Replace component references to
15657         exception structure by use of the new accessors.
15658
15659         * init.c (__gnat_initialize): Adjust comments to match the just
15660         reverted meaning of the -static link-time option.
15661
15662         * adaint.c (convert_addresses): Arrange not to define a stub for
15663         mips-irix any more, as we now want to rely on a real version from a
15664         recent libaddr2line.
15665
15666         * a-exexpr.adb: Provide new accessors to a GNAT_GCC occurrence, so that
15667         the personality routine can use them and not have to rely on a C
15668         counterpart of the record anymore. This simplifies maintenance and
15669         relaxes the constraint of having Standard'Maximum_Alignment match
15670         BIGGEST_ALIGNMENT.
15671         Update comments, and add a section on the common header alignment issue.
15672
15673 2004-06-25  Geert Bosch  <bosch@gnat.com>
15674
15675         * a-ngelfu.adb (Tanh): Use full 20 digit precision for constants in
15676         polynomial approximation. Fixes inconsistency with Cody/Waite algorithm.
15677
15678 2004-06-25  Robert Dewar  <dewar@gnat.com>
15679
15680         * gnat_rm.texi: Fix section on component clauses to indicate that the
15681         restriction on byte boundary placement still applies for bit packed
15682         arrays.
15683         Add comment on stack usage from Initialize_Scalars
15684
15685         * gnat_ugn.texi: Add documentation for -gnatyLnnn
15686
15687         * stylesw.ads, stylesw.adb: Implement new -gnatyLnnn option for
15688         limiting nesting level.
15689
15690         * usage.adb: Add line for -gnatyLnnn switch
15691
15692         * g-debpoo.ads, xtreeprs.adb, sinput.ads, sem_ch13.ads,
15693         sem_ch13.adb, exp_aggr.adb: Minor reformatting
15694
15695         * sem_prag.adb (Process_Atomic_Shared_Volatile): Set Is_Atomic on base
15696         type as well as on the subtype. This corrects a problem in freeze in
15697         setting alignments of atomic types.
15698
15699         * sem_eval.ads: Minor comment typo fixed
15700
15701         * par-util.adb (Push_Scope_Stack): Check for violation of max nesting
15702         level.  Minor reformatting.
15703
15704         * fname.adb (Is_Predefined_File_Name): Require a letter after the
15705         minus sign. This means that file names like a--b.adb will not be
15706         considered predefined.
15707
15708         * freeze.adb: Propagate new flag Must_Be_On_Byte_Boundary to containing
15709         record Test new flag and give diagnostic for bad component clause.
15710         (Freeze_Entity): Set alignment of array from component alignment in
15711         cases where this is safe to do.
15712
15713         * exp_pakd.adb: Set new flag Must_Be_On_Byte_Boundary for large packed
15714         arrays.
15715
15716         * cstand.adb: (Create_Standard): Set alignment of String to 1
15717
15718         * einfo.ads, einfo.adb: Introduce new flag Must_Be_On_Byte_Boundary
15719
15720         * exp_ch4.adb (Expand_Array_Equality): Improve efficiency of generated
15721         code in the common constrained array cases.
15722
15723         * a-storio.adb: Change implementation to avoid possible alignment
15724         problems on machines requiring strict alignment (data should be moved
15725         as type Buffer, not type Elmt).
15726
15727         * checks.adb (Apply_Array_Size_Check): Improve these checks by
15728         killing the overflow checks which we really do not need (64-bits is
15729         enough).
15730
15731 2004-06-25  Vincent Celier  <celier@gnat.com>
15732
15733         * makegpr.adb (Is_Included_In_Global_Archive): New Boolean function
15734         (Add_Archives.Recursive_Add_Archives): Call Add_Archive_Path
15735         inconditionally for the main project.
15736         (Recursive_Add_Archives.Add_Archive_Path): New procedure
15737         (Link_Executables.Check_Time_Stamps): New procedure
15738         (Link_Executables.Link_Foreign): New procedure
15739         Changes made to reduce nesting level of this package
15740         (Check): New procedure
15741         (Add_Switches): When not in quiet output, check that a switch is not
15742         the concatenation of several valid switches. If it is, issue a warning.
15743         (Build_Global_Archive): If the global archive is rebuilt, linking need
15744         to be done.
15745         (Compile_Sources): Rebuilding a library archive does not imply
15746         rebuilding the global archive.
15747         (Build_Global_Archive): New procedure
15748         (Build_Library): New name for Build_Archive, now only for library
15749         project
15750         (Check_Archive_Builder): New procedure
15751         (Create_Global_Archive_Dependency_File): New procedure
15752         (Gprmake): Call Build_Global_Archive before linking
15753         * makegpr.adb: Use Other_Sources_Present instead of Sources_Present
15754         throughout.
15755         (Scan_Arg): Display the Copyright notice when -v is used
15756
15757         * gnat_ugn.texi: Document new switch -files= (VMS qualifier /FILES=)
15758         for gnatls.
15759
15760         * vms_data.ads: Add qualifier /MAX_NESTING=nnn (-gnatyLnnn) for GNAT
15761         COMPILE.
15762         Add new GNAT LIST qualifier /FILES=
15763         Added qualifier /DIRECTORY= to GNAT METRIC
15764         Added qualifier /FILES= to GNAT METRIC
15765         Added qualifier /FILES to GNAT PRETTY
15766
15767         * switch.adb (Is_Front_End_Switch): Refine the test for --RTS or -fRTS,
15768         to take into account both versions of the switch.
15769
15770         * switch-c.adb (Scan_Front_End_Switches): New switch -gnatez. Should
15771         always be the last switch to the gcc driver. Disable switch storing so
15772         that switches automatically added by the gcc driver are not put in the
15773         ALI file.
15774
15775         * prj.adb (Project_Empty): Take into account changes in components of
15776         Project_Data.
15777
15778         * prj.ads (Languages_Processed): New enumaration value All_Languages.
15779
15780         * prj.ads (Project_Data): Remove component Lib_Elaboration: never
15781         used. Split Boolean component Ada_Sources_Present in two Boolean
15782         components Ada_Sources_Present and Other_Sources_Present.
15783         Minor reformatting
15784
15785         * prj-env.adb (For_All_Source_Dirs.Add): Use Ada_Sources_Present
15786         instead of Sources_Present.
15787         (Set_Ada_Paths.Add.Recursive_Add): Ditto
15788
15789         * prj-nmsc.adb: Minor reformatting
15790         (Check_Ada_Naming_Scheme): New name of procedure Check_Naming_Scheme
15791         (Check_Ada_Naming_Scheme_Validity): New name of previous procedure
15792         Check_Ada_Naming_Scheme.
15793         Change Sources_Present to Ada_Sources_Present or Other_Sources_Present
15794         throughout.
15795
15796         * prj-part.adb (Post_Parse_Context_Clause): New Boolean parameter
15797         In_Limited.
15798         Make sure that all cycles where there is at least one "limited with"
15799         are detected.
15800         (Parse_Single_Project): New Boolean parameter In_Limited
15801
15802         * prj-proc.adb (Recursive_Check): When Process_Languages is
15803         All_Languages, call first Prj.Nmsc.Ada_Check, then
15804         Prj.Nmsc.Other_Languages_Check.
15805
15806         * prj-proc.adb (Process): Use Ada_Sources_Present or
15807         Other_Sources_Present (instead of Sources_Present) depending on
15808         Process_Languages.
15809
15810         * lang-specs.h: Keep -g and -m switches in the same order, and as the
15811         last switches.
15812
15813         * lib.adb (Switch_Storing_Enabled): New global Boolean flag
15814         (Disable_Switch_Storing): New procedure. Set Switch_Storing_Enabled to
15815         False.
15816         (Store_Compilation_Switch): Do nothing if Switch_Storing_Enabled is
15817         False.
15818
15819         * lib.ads (Disable_Switch_Storing): New procedure.
15820
15821         * make.adb: Modifications to reduce nesting level of this package.
15822         (Check_Standard_Library): New procedure
15823         (Gnatmake.Check_Mains): New procedure
15824         (Gnatmake.Create_Binder_Mapping_File): New procedure
15825         (Compile_Sources.Compile): Add switch -gnatez as the last option
15826         (Display): Never display -gnatez
15827
15828         * Makefile.generic:
15829         When using $(MAIN_OBJECT), always use $(OBJ_DIR)/$(MAIN_OBJECT)
15830
15831         * gnatcmd.adb (Check_Project): New function
15832         (Process_Link): New procedure to reduce nesting depth
15833         (Check_Files): New procedure to reduce the nesting depth.
15834         For GNAT METRIC, include the inherited sources in extending projects.
15835         (GNATCmd): When GNAT LS is invoked with a project file and no files,
15836         add the list of files from the sources of the project file. If this list
15837         is too long, put it in a temp text files and use switch -files=
15838         (Delete_Temp_Config_Files): Delete the temp text file that contains
15839         a list of source for gnatpp or gnatmetric, if one has been created.
15840         (GNATCmd): For GNAT METRIC and GNAT PRETTY, if the number of sources
15841         in the project file is too large, create a temporary text file that
15842         list them and pass it to the tool with "-files=<temp text file>".
15843         (GNATCmd): For GNAT METRIC add "-d=<abject dir>" as the first switch
15844
15845         * gnatlink.adb (Gnatlink): Do not compile with --RTS= when the
15846         generated file is in not in Ada.
15847
15848         * gnatls.adb: Remove all parameters And_Save that are no longer used.
15849         (Scan_Ls_Arg): Add processing for -files=
15850         (Usage): Add line for -files=
15851
15852         * g-os_lib.adb (On_Windows): New global constant Boolean flag
15853         (Normalize_Pathname): When on Windows and the path starts with a
15854         directory separator, make sure that the resulting path will start with
15855         a drive letter.
15856
15857         * clean.adb (Clean_Archive): New procedure
15858         (Clean_Project): When there is non-Ada code, delete the global archive,
15859         the archive dependency files, the object files and their dependency
15860         files, if they exist.
15861         (Gnatclean): Call Prj.Pars.Parse for All_Languages, not for Ada only.
15862
15863 2004-06-25  Thomas Quinot  <quinot@act-europe.fr>
15864
15865         * sinfo.ads: Fix typo in comment.
15866
15867         * sem_dist.adb (Process_Remote_AST_Attribute): Simplify code that uses
15868         the TSS for remote access-to-subprogram types, since these TSS are
15869         always present once the type has been analyzed.
15870         (RAS_E_Dereference): Same.
15871
15872         * sem_attr.adb (Analyze_Attribute): When analysis of an attribute
15873         reference raises Bad_Attribute, mark the reference as analyzed so the
15874         node (and any children resulting from rewrites that could have occurred
15875         during the analysis that ultimately failed) is not analyzed again.
15876
15877         * exp_ch7.ads (Find_Final_List): Fix misaligned comment.
15878
15879         * exp_dist.adb: Minor comment fix.
15880
15881         * exp_ch4.adb (Expand_N_Allocator): For an allocator whose expected
15882         type is an anonymous access type, no unchecked deallocation of the
15883         allocated object can occur. If the object is controlled, attach it with
15884         a count of 1. This allows attachment to the Global_Final_List, if
15885         no other relevant list is available.
15886         (Get_Allocator_Final_List): For an anonymous access type that is
15887         the type of a discriminant or record component, the corresponding
15888         finalisation list is the one of the scope of the type.
15889
15890 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15891
15892         * sem_ch3.adb (Replace_Type): When computing the signature of an
15893         inherited subprogram, use the first subtype if the derived type
15894         declaration has no constraint.
15895
15896         * exp_ch6.adb (Add_Call_By_Copy_Code): Check that formal is an array
15897         before applying previous optimization. Minor code cleanup.
15898
15899         * exp_util.adb (Is_Possibly_Unaligned_Slice): If the component is
15900         placed at the beginning of an unpacked record without explicit
15901         alignment, a slice of it will be aligned and does not need a copy when
15902         used as an actual.
15903
15904 2004-06-25  Ed Schonberg  <schonberg@gnat.com>
15905
15906         PR ada/15591
15907         PR ada/15592
15908         * sem_ch8.adb (Attribute_Renaming): Reject renaming if the attribute
15909         reference is written with expressions mimicking parameters.
15910
15911 2004-06-25  Hristian Kirtchev  <kirtchev@gnat.com>
15912
15913         PR ada/15589
15914         * sem_ch3.adb (Build_Derived_Record_Type): Add additional check to
15915         STEP 2a. The constraints of a full type declaration of a derived record
15916         type are checked for conformance with those declared in the
15917         corresponding private extension declaration. The message
15918         "not conformant with previous declaration" is emitted if an error is
15919         detected.
15920
15921 2004-06-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
15922
15923         * g-traceb.ads: Document the need for -E binder switch in the spec.
15924
15925         * g-trasym.ads: Document the need for -E binder switch in the spec.
15926
15927 2004-06-25  Jose Ruiz  <ruiz@act-europe.fr>
15928
15929         * sem_prag.adb: Add handling of pragma Detect_Blocking.
15930
15931         * snames.h, snames.ads, snames.adb: Add entry for pragma
15932         Detect_Blocking.
15933
15934         * s-rident.ads: Change reference to pragma Detect_Blocking.
15935
15936         * targparm.ads, targparm.adb: Allow pragma Detect_Blocking in
15937         system.ads.
15938
15939         * opt.ads (Detect_Blocking): New Boolean variable (defaulted to False)
15940         to indicate whether pragma Detect_Blocking is active.
15941
15942         * par-prag.adb: Add entry for pragma Detect_Blocking.
15943
15944         * rtsfind.adb (RTU_Loaded): Fix the temporary kludge to get past bug
15945         of not handling WITH.
15946         Note that this replaces the previous update which was incorrect.
15947
15948 2004-06-25  Javier Miranda  <miranda@gnat.com>
15949
15950         * sem_ch10.adb (Re_Install_Use_Clauses): Force the installation of the
15951         use-clauses to have a clean environment.
15952
15953         * sem_ch8.adb (Install_Use_Clauses): Addition of a new formal to force
15954         the installation of the use-clauses to stablish a clean environment in
15955         case of compilation of a separate unit; otherwise the call to
15956         use_one_package is protected by the barrier Applicable_Use.
15957
15958         * sem_ch8.ads (Install_Use_Clauses): Addition of a new formal to force
15959         the installation of the use-clauses to stablish a clean environment in
15960         case of compilation of a separate unit.
15961         (End_Use_Clauses): Minor comment cleanup.
15962
15963 2004-06-25  Sergey Rybin  <rybin@act-europe.fr>
15964
15965         * gnat_ugn.texi: Add description of the gnatpp 'files' switch
15966
15967 2004-06-23  Richard Henderson  <rth@redhat.com>
15968
15969         * trans.c (gnat_gimplify_stmt): Update gimplify_type_sizes call.
15970
15971 2004-06-20  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
15972
15973         * decl.c (elaborate_expression, elaborate_expression_1): Arguments
15974         now bool instead of int.
15975         (gnat_to_gnu_entity, elaborate_expression_1): New arg to COMPONENT_REF.
15976         * trans.c (gnu_switch_label_stack): New function.
15977         (gnat_to_gnu, N_Object_Renaming_Declaration): Result is what the
15978         elaboration of renamed entity returns.
15979         (gnat_to_gnu, case N_Case_Statement): Add branches to end label.
15980         (add_decl_stmt): Don't add TYPE_DECL for UNCONSTRAINED_ARRAY_TYPE.
15981         (gnat_gimplify_stmt): Use alloc_stmt_list, not build_empty_stmt.
15982         (gnat_gimplify_stmt, case DECL_STMT): gimplify DECL_SIZE and
15983         DECL_SIZE_UNIT and simplify variable-sized case.
15984         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Deleted.
15985         Callers changes to call gimplify_type_sizes and gimplify_one_sizepos.
15986         (gnat_stabilize_reference): Add arg to COMPONENT_REF.
15987         (build_unit_elab): Disable for now.
15988         * utils.c (mark_visited): New function.
15989         (pushdecl): Walk tree to call it for global decl.
15990         (update_pointer_to): Update all variants of pointer and ref types.
15991         Add arg to COMPONENT_REF.
15992         (convert): Likewise.
15993         Move check for converting between variants lower down.
15994         * utils2.c (build_simple_component_ref): Add arg to COMPONENT_REF.
15995         (build_allocator): Don't force type of MODIFY_EXPR.
15996         (gnat_mark_addressable, case VAR_DECL): Unconditionally call
15997         put_var_into_stack.
15998
15999 2004-06-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16000
16001         * ada-tree.def (LOOP_STMT, EXIT_STMT): Update documentation.
16002         * ada-tree.h (EXIT_STMT_LABEL): Renamed from EXIT_STMT_LOOP.
16003         * decl.c (gnat_to_gnu_entity): Also set force_global for imported
16004         subprograms.
16005         * trans.c (gnu_loop_label_stack): Renamed from gnu_loop_stmt_stack;
16006         all callers changed.
16007         (gnat_to_gnu, case N_Loop_Statement, case N_Exit_Statement): Change
16008         the way that EXIT_STMT finds the loop label.
16009         (gnat_gimplify_stmt, case LOOP_STMT, EXIT_STMT): Likewise.
16010         (gnat_gimplify_stmt, case DECL_STMT): Handle variable-sized decls here.
16011         (add_stmt): Use annotate_with_locus insted of setting directly.
16012         (pos_to_construct): Set TREE_PURPOSE of each entry to index.
16013         (gnat_stabilize_reference, case ARRAY_RANGE_REF): Merge with ARRAY_REF.
16014         * utils.c (gnat_install_builtins): Install __builtin_memcmp.
16015         (build_vms_descriptor): Add extra args to ARRAY_REF.
16016         (convert): Use VIEW_CONVERT_EXPR between aggregate types.
16017         * utils2.c (gnat_truthvalue_conversion, case INTEGER_CST, REAL_CST):
16018         New cases.
16019         (build_binary_op): Don't make explicit CONVERT_EXPR.
16020         Add extra rgs to ARRAY_REF.
16021
16022 2004-06-14  Pascal Obry  <obry@gnat.com>
16023
16024         * gnat_ugn.texi: Document relocatable vs. dynamic Library_Kind on
16025         Windows.  Fix minor typo.
16026
16027         * mlib-tgt-mingw.adb: New implementation using the GCC -shared option
16028         which is now supported on Windows. With this implementation using the
16029         Library Project feature is no different on Windows than on UNIX.
16030
16031 2004-06-14  Vincent Celier  <celier@gnat.com>
16032
16033         * makegpr.adb (Compile_Sources): Nothing to do when there are no
16034         non-Ada sources.
16035
16036         * mlib-tgt-vxworks.adb (Library_Exists_For): Remove incorrect comment
16037
16038         * prj-part.adb (Parse_Single_Project): When a duplicate project name is
16039         found, show the project name and the path of the previously parsed
16040         project file.
16041
16042 2004-06-14  Ed Schonberg  <schonberg@gnat.com>
16043
16044         * exp_ch6.adb (Add_Call_By_Copy_Code): For an out-parameter that is an
16045         array, avoid copying the actual before the call.
16046
16047 2004-06-14  Thomas Quinot  <quinot@act-europe.fr>
16048
16049         * g-debpoo.adb: Remove alignment assumptions from GNAT.Debug_Pools.
16050         Instead, allocate memory on worst-case alignment assumptions, and then
16051         return an aligned address within the allocated zone.
16052
16053 2004-06-14  Robert Dewar  <dewar@gnat.com>
16054
16055         * bindgen.adb (Gen_Adainit_Ada): Do not generate external references to
16056         elab entities in predefined units in No_Run_Time_Mode.
16057         (Gen_Adainit_C): Same fix
16058         (Gen_Elab_Calls_Ada): Do not generate calls to elaborate predefined
16059         units in No_Run_Time_Mode
16060         (Gen_Elab_Calls_C): Same fix
16061
16062         * symbols-vms-alpha.adb: Minor reformatting
16063
16064         * g-debpoo.ads: Minor reformatting
16065
16066         * lib.adb (In_Same_Extended_Unit): Version working on node id's
16067
16068         * lib.ads (In_Same_Extended_Unit): Version working on node id's
16069
16070         * lib-xref.adb: Minor cleanup, use new version of In_Same_Extended_Unit
16071         working on nodes.
16072
16073         * make.adb: Minor reformatting
16074
16075         * par-ch12.adb: Minor reformatting
16076
16077         * par-prag.adb: Add dummy entry for pragma Profile_Warnings
16078
16079         * prj-strt.adb: Minor reformatting
16080
16081         * restrict.ads, restrict.adb: Redo handling of profile restrictions to
16082         be more general.
16083
16084         * sem_attr.adb: Minor reformatting
16085
16086         * sem_ch7.adb: Minor reformatting
16087
16088         * sem_elab.adb (Check_A_Call): Deal with problem of calling init proc
16089         for type in the same unit as the object declaration.
16090
16091         * sem_prag.adb (Check_Arg_Is_External_Name): New procedure, allows
16092         static string expressions and not just string literals.
16093         Minor reformatting
16094         (Set_Warning): Reset restriction warning flag for restriction pragma
16095         Implement pragma Profile_Warnings
16096         Implement pragma Profile (Restricted)
16097         Give obolescent messages for old restrictions and pragmas
16098
16099         * snames.h, snames.ads, snames.adb: Add new entry for pragma
16100         Profile_Warnings.
16101
16102         * s-rident.ads: Add declarations for restrictions required by profile
16103         Restricted and profile Ravenscar.
16104
16105         * targparm.ads, targparm.adb: Allow pragma Profile in system.ads
16106
16107         * gnat_ugn.texi: Correct some missing entries in the list of GNAT
16108         configuration pragmas.
16109
16110 2004-06-11  Vincent Celier  <celier@gnat.com>
16111
16112         * mlib-tgt-vms-alpha.adb (Build_Dynamic_Library): Issue switch -R to
16113         gnatsym, when symbol policy is Restricted.
16114
16115         * mlib-tgt-vms-ia64.adb (Build_Dynamic_Library): Issue switch -R to
16116         gnatsym, when symbol policy is Restricted.
16117
16118         * symbols-vms-alpha.adb (Initialize): When symbol policy is Restricted,
16119         read the symbol file.
16120         (Finalize): Fail in symbol policy Restricted if a symbol in the original
16121         symbol file is not in the object files. Do not create a new symbol file
16122         when symbol policy is Restricted.
16123
16124         * gnatbind.adb (Gnatbind): Initialize Snames, because Snames is used
16125         in Scng.
16126
16127         * gnatsym.adb (Parse_Vmd_Line): Process new switch -R for symbol policy
16128         Restricted.
16129         (Usage): Line for new switch -R
16130
16131         * make.adb (Initialize): When the platform is not VMS, add the
16132         directory where gnatmake is invoked in the front of the path, if
16133         gnatmake is invoked with directory information.  Change the Scan_Args
16134         while loop to a for loop.
16135         (Recursive_Compute_Depth): Remove parameter Visited. Improve efficiency:
16136         if Depth is equal or greater than the proposed depth, there is nothing
16137         to do.
16138         (Initialize): Call Recursive_Compute_Depth with initial Depth equal to 1
16139         instead of 0.
16140
16141         * prj.ads: Add new symbol policy Restricted.
16142
16143         * prj-dect.adb (Parse_Case_Construction): Call End_Case_Construction
16144         with the new parameters Check_All_Labels and Case_Location.
16145
16146         * prj-nmsc.adb (Ada_Check): Process new symbol policy Restricted
16147         (Library_Symbol_File needs to be defined).
16148
16149         * prj-strt.adb (End_Case_Construction): New parameters Check_All_Labels
16150         and Case_Location If Check_All_Labels is True, check that all values of
16151         the string type are used, and output warning(s) if they are not.
16152
16153         * prj-strt.ads (End_Case_Construction): New parameters Check_All_Labels
16154         and Case_Location.
16155
16156         * gnat_ugn.texi: Reorder subclauses in menus "Switches for gcc"
16157
16158         * gnat_ugn.texi: Update documentation about the library directory in
16159         Library Projects.
16160
16161         * makegpr.adb (Display_Command): In verbose mode, also display the
16162         value of the CPATH env var, when the compiler is gcc.
16163         (Initialize): Change the Scan_Args while loop to a for loop
16164         (Compile_Individual_Sources): Change directory to object directory
16165         before compilations.
16166
16167         * symbols.ads: New symbol policy Restricted.
16168
16169 2004-06-11  Olivier Hainque  <hainque@act-europe.fr>
16170
16171         * a-except.adb (Raise_After_Setup family): Remove. The responsibility
16172         is now taken care of internally in the Exception_Propagation package
16173         and does not require clients assistance any more.
16174
16175         * a-exexpr.adb (Is_Setup_And_Not_Propagated,
16176         Set_Setup_And_Not_Propagated, and Clear_Setup_And_Not_Propagated): New
16177         functions. Helpers to maintain a predicate required in the handling of
16178         occurrence transfer between tasks.
16179         This is now handled internally and does not require clients assistance
16180         for the setup/propagate separation anymore.
16181         (Setup_Exception, Propagate_Exception): Simplify the Private_Data
16182         allocation strategy, handle the Setup_And_Not_Propagated predicate and
16183         document.
16184
16185         * s-taenca.adb (Check_Exception): Use raise_with_msg instead of
16186         raise_after_setup, now that everything is handled internally within the
16187         setup/propagation engine.
16188
16189 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16190
16191         * exp_ch6.adb (Expand_Inlined_Call): Add function Formal_Is_Used_Once.
16192         Add additional conditions for the case of an actual being a simple
16193         name or literal. Improve inlining by preventing the generation
16194         of temporaries with a short lifetime (one use).
16195
16196 2004-06-11  Hristian Kirtchev  <kirtchev@gnat.com>
16197
16198         PR ada/15587
16199
16200         * einfo.ads: Minor comment updates for Has_Completion and
16201         E_Constant list of flags.
16202
16203         * sem_ch3.adb (Analyze_Object_Declaration): Full constant declarations
16204         and constant redeclarations now set the Has_Completion flag of their
16205         defining identifiers.
16206
16207         * sem_ch7.adb (Analyze_Package_Spec): Add procedure
16208         Inspect_Deferred_Constant_Completion.
16209         Used to detect private deferred constants that have not been completed
16210         either by a constant redeclaration or pragma Import. Emits error message
16211         "constant declaration requires initialization expression".
16212
16213         * sem_prag.adb (Process_Import_Or_Interface): An Import pragma now
16214         completes a deferred constant.
16215
16216 2004-06-11  Geert Bosch  <bosch@gnat.com>
16217
16218         * eval_fat.adb (Decompose_Int): Fix rounding of negative numbers.
16219
16220         * s-fatgen.adb (Gradual_Scaling): Correct off-by-one error in
16221         calculating exponent for scaling denormal numbers.
16222         (Leading_Part): Properly raise Constraint_Error for zero or negative
16223         Adjustment.
16224         (Remainder): Properly raise Constraint_Error for zero divisor.
16225
16226 2004-06-11  Thomas Quinot  <quinot@act-europe.fr>
16227
16228         * sem_util.adb: Minor reformatting.
16229
16230         * exp_ch2.adb (Expand_Entry_Parameter): Generate an explicit
16231         dereference when accessing the entry parameter record.
16232         (Check_Array_Type): Always check for possible implicit dereference.
16233         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16234         Abort if a pointer is still present (denoting that an implicit
16235         dereference was left in the tree by the front-end).
16236
16237         * sem_attr.adb (Expand_Entry_Parameter): Generate an explicit
16238         dereference when accessing the entry parameter record.
16239         (Check_Array_Type): Always check for possible implicit dereference.
16240         (maybe_implicit_dereference): Rename to check_no_implicit_derefence.
16241         Abort if a pointer is still present (denoting that an implicit
16242         dereference was left in the tree by the front-end).
16243
16244 2004-06-11  Emmanuel Briot  <briot@act-europe.fr>
16245
16246         * g-debpoo.adb (Deallocate, Dereference): Add prefix "error:" to error
16247         message, like the compiler itself does. Easier to parse the output.
16248
16249         * g-debpoo.ads: (Allocate, Deallocate, Dereference): Add comments.
16250
16251         * gnat_ugn.texi (gnatxref, gnatfind): Clarify that source names should
16252         be base names, and not includes directories.
16253
16254 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16255
16256         * Makefile.generic ($(EXEC)): Depend on $(OBJECTS), not $(OBJ_FILES),
16257         so that dependencies are properly taken into account by make.
16258
16259 2004-06-11  Arnaud Charlet  <charlet@act-europe.fr>
16260
16261         PR ada/15622
16262         * s-unstyp.ads, s-maccod.ads, sem_ch8.adb, s-auxdec.ads,
16263         exp_intr.adb, s-auxdec-vms_64.ads: Fix typo: instrinsic -> intrinsic
16264
16265 2004-06-11  Jerome Guitton  <guitton@act-europe.fr>
16266
16267         * Makefile.in (install-gnatlib): install target-specific run-time files.
16268
16269         * Make-lang.in: Remove obsolete targets.
16270
16271 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16272
16273         * par-ch12.adb (P_Generic): Add scope before analyzing subprogram
16274         specification, to catch misuses of program unit names.
16275
16276         * sem_res.adb (Resolve_Type_Conversion): Do not emit warnings on
16277         superfluous conversions in an instance.
16278
16279 2004-06-11  Ed Schonberg  <schonberg@gnat.com>
16280
16281         PR ada/15403
16282
16283         * sem_ch12.adb (Save_References): If operator node has been folded to
16284         enumeration literal, associated_node must be discarded.
16285
16286 2004-06-11  Jose Ruiz  <ruiz@act-europe.fr>
16287
16288         * s-stchop-vxworks.adb: Add required pragma Convention to
16289         Task_Descriptor because it is updated by a C function.
16290
16291 2004-06-08  Arnaud Charlet  <charlet@act-europe.fr>
16292
16293         PR ada/15568
16294
16295         * Makefile.in: Remove target specific SO_OPT on IRIX
16296
16297 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16298
16299         * ada-tree.def (TRANSFORM_EXPR, ALLOCATE_EXPR, USE_EXPR): Deleted.
16300         (GNAT_NOP_EXPR, GNAT_LOOP_ID, EXPR_STMT, NULL_STMT): Likewise.
16301         (BLOCK_STMT, IF_STMT, GOTO_STMT, LABEL_STMT, RETURN_STMT): Likewise.
16302         (ASM_STMT, BREAK_STMT, REGION_STMT,HANDLER_STMT): Likewise.
16303         (STMT_STMT, USE_STMT): New statement codes.
16304         (LOOP_STMT, EXIT_STMT): Make slight semantic changes.
16305         * ada-tree.h: Reflect above changes.
16306         (struct tree_loop_id): Deleted.
16307         (union lang_tree_node, struct lang_decl, struct lang_type):
16308         Now just contains a tree node; update macros using TYPE_LANG_SPECIFIC
16309         and DECL_LANGUAGE_SPECIFIC to reflect these changes.
16310         (DECL_INIT_BY_ASSIGN_P, TRE_LOOP_NODE_ID, TREE_SLOC): Deleted.
16311         (IS_ADA_STMT): New macro.
16312         * decl.c (annotate_decl_with_node): New function.
16313         (gnat_to_gnu_entity): Use it and Sloc_to_locus instead of set_lineno.
16314         (gnat_to_gnu_entity, case object): Remove call to expand CONVERT_EXPR.
16315         Call add_stmt_with_node to do needed assignments.
16316         Add call to update setjmp buffer directly, not via EXPR_STMT.
16317         (maybe_variable): Argment GNAT_NODE deleted.
16318         * gigi.h (maybe_variable): Likewise.
16319         (make_transform, add_stmt_with_node, set_block_for_group): New.
16320         (gnat_gimplify_expr, gnat_expand_body, Sloc_to_locus): Likewise.
16321         (set_block_jmpbuf_decl, get_block_jmpbuf_decl): Likewise.
16322         (discard_file_names, gnu_block_stack, gnat_to_code): Deleted.
16323         (set_lineno, set_lineno_from_sloc): Likewise.
16324         (record_code_position, insert_code_for): Likewise.
16325         (gnat_poplevel): Now returns void.
16326         (end_subprog_body): Now takes argument.
16327         * misc.c (cgraph.h, tree-inline.h): New includes.
16328         (gnat_tree_size, LANG_HOOKS_TREE_SIZE): Deleted.
16329         (gnat_post_options, LANG_HOOKS_POST_OPTIONS): New.
16330         (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Likewise.
16331         (LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_GIMPLIFY_EXPR): Likewise.
16332         (gnat_parse_file): Don't set immediate_size_expand.
16333         Call cgraph functions.
16334         (gnat_expand_expr): Remove most cases.
16335         (record_code_position, insert_code_for): Remove from here.
16336         * trans.c (toplev.h, tree-gimple.h): Now included.
16337         (discard_file_names): Deleted.
16338         (gnu_block_stack, gnu_block_stmt_node, gnu_block_stmt_free_list): Del.
16339         (first_nondeleted_insn, make_expr_stmt_from_rtl): Likewise.
16340         (struct stmt_group, current_stmt_group, stmt_group_free_list): New.
16341         (gnu_stack_free_list, record_cost_position, insert_code_for): Likewise.
16342         (add_cleanup, push_stack, gnat_gimplify_stmt, add_cleanup): Likewise.
16343         (gnat_gimplify_type_sizes, gnat_gimplify_one_sizepos): Likewise.
16344         (gnat_expand_body_1, gnat_gimplify_expr, annotate_with_node): Likewise.
16345         (set_block_for_group, add_stmt_list): Likewise.
16346         (start_stmt_group): Renamed from start_block_stmt.
16347         (end_stmt_group): Likewise, from end_block_stmt.
16348         (build_stmt_group): Likewise, from build_block_stmt, also add arg.
16349         (gigi): Don't set discard_file_names or call set_lineno.
16350         Disallow front end ZCX; call gnat_to_gnu, not gnat_to_code.
16351         (tree_transform): Deleted, now renamed to be gnat_to_gnu.
16352         Numerous changes throughout to reflect new names and complete
16353         function-at-a-time implementation.
16354         (gnat_expand_stmt): Delete or comment out all cases.
16355         (process_inlined_subprograms): Use add_stmt.
16356         (process_decls): Use gnat_to_gnu, not gnat_to_code, and don't
16357         call set_lineno; also remove unneeded block handling.
16358         (process_type): Remove unneeded block handling.
16359         (build_unit_elab): Remove calls to deleted functions.
16360         * utils.c (cgraph.h, tree-inline.h, tree-gimple.h): Now include.
16361         (tree-dump.h): Likewise.
16362         (struct ada_binding_level): Add field jmpbuf_decl.
16363         (gnat_define_builtin, gnat_install_builtins): New.
16364         (gnat_gimplify_function, gnat_finalize): Likewise.
16365         (gnat_poplevel): No longer return BLOCK, set it instead.
16366         Remove code dealing with nested functions.
16367         (gnat_init_decl_processing): Also set size_type_node.
16368         Call gnat_install_builtins.
16369         (create_var_decl): Don't set DECL_INIT_BY_ASSIGN.
16370         (create_subprog_decl): Change handling of inline_flag; set TREE_STATIC.
16371         Remove special-case for "main".
16372         (end_subprog_body): Add arg and rework for tree-ssa.
16373         (convert): Don't use GNAT_NOP_EXPR or look for TRANSFORM_EXPR.
16374         Add case for BOOLEAN_TYPE.
16375         * utils2.c (rtl.h): Now include.
16376         (build_call_raise): Test Debug_Flag_NN directly.
16377         (build_call_alloc_dealloc): Don't use local stack allocation for now.
16378         (gnat_mark_addressable, case GNAT_NOP_EXPR): Deleted.
16379         (gnat_mark_addressable, case VAR_DECL): Handle both early & late cases.
16380
16381 2004-06-07  Robert Dewar  <dewar@gnat.com>
16382
16383         * a-direct.ads, einfo.ads: Minor comment updates
16384
16385         * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb,
16386         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16387         s-taprop-dummy.adb, s-taprop-os2.adb, s-taprop-solaris.adb,
16388         s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-vxworks.adb,
16389         s-taprop-posix.adb, s-taprop.ads, exp_dbug.adb: Minor reformatting.
16390
16391         * s-interr-sigaction.adb: Remove unreferenced variable
16392         (Attached_Interrupts).  Minor reformatting.
16393         Avoid use of variable I (replace by J).
16394
16395         * par-ch10.adb: Fix text of one error message
16396
16397         * checks.adb, checks.ads, cstand.adb, vms_data.ads, errout.ads,
16398         exp_aggr.adb, exp_ch3.adb, exp_ch3.ads, exp_ch5.adb, exp_ch6.adb,
16399         exp_ch9.adb, exp_code.adb, gnat1drv.adb, lib-load.adb, lib-writ.adb,
16400         opt.adb, par.adb, opt.ads, par-ch11.adb, par-ch3.adb, par-ch4.adb,
16401         par-ch5.adb, par-ch6.adb, par-ch8.adb, par-ch9.adb, par-prag.adb,
16402         par-util.adb, scng.adb, sem_aggr.adb, sem_attr.adb, sem_cat.adb,
16403         sem_ch10.adb, sem_ch10.adb, sem_ch11.adb, sem_ch12.adb, sem_ch2.adb,
16404         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
16405         sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_eval.adb, sem_prag.adb,
16406         sem_res.adb, sem_type.adb, sem_util.adb, sinfo.ads, snames.adb,
16407         snames.ads, snames.h, sprint.adb, switch-c.adb: Modifications for Ada
16408         2005 support.
16409
16410 2004-06-07  Doug Rupp  <rupp@gnat.com>
16411
16412         * mlib-tgt-vms.adb: Rename mlib-tgt-vms.adb mlib-tgt-vms-alpha.adb
16413
16414         * s-vaflop-vms.adb: Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb
16415
16416         * mlib-tgt-vms-ia64.adb: New file.
16417
16418         * Makefile.in: Rename mlib-tgt-vms.adb to mlib-tgt-vms-alpha.adb
16419         Add mlib-tgt-vms-ia64.adb
16420         Rename s-vaflop-vms.adb to s-vaflop-vms-alpha.adb.
16421         Move to alpha specific ifeq section.
16422         Add VMS specific versions of symbols.adb
16423         Renaming of 5q vms files.
16424
16425         * 5qsystem.ads renamed to system-vms_64.ads.
16426
16427 2004-06-07  Vincent Celier  <celier@gnat.com>
16428
16429         * a-calend.ads: Add a GNAT Note comment after function Time_Of to
16430         explain that when a time of day corresponding to the non existing hour
16431         on the day switching to DST is specified, Split may return a different
16432         value for Seconds.
16433
16434         * gnatcmd.adb: Add processing of GNAT METRIC (for gnatmetric), similar
16435         to GNAT PRETTY.
16436
16437         * g-os_lib.adb (OpenVMS): New Boolean value imported from System.
16438         (Normalize_Pathname): Only resolve VMS logical names when on VMS.
16439
16440         * mlib-prj.adb (Build_Library): New flag Gtrasymobj_Needed, initialize
16441         to False.
16442         If Gtrasymobj_Needed is True, add the full path of g-trasym.obj to
16443         the linking options.
16444         (Build_Library.Check_Libs): On VMS, if there is a dependency on
16445         g-trasym.ads, set Gtrasymobj_Needed to True.
16446
16447         * prj-attr.adb: Add new package Metrics for gnatmetric
16448
16449         * prj-nmsc.adb (Record_Other_Sources): Put source file names in
16450         canonical case to take into account files with upper case characters on
16451         Windows.
16452         (Ada_Check): Load the reference symbol file name in the name buffer to
16453         check it, not the symbol file name.
16454
16455         * snames.ads, snames.adb: Add standard name Metrics (name of project
16456         file package for gnatmetric).
16457
16458         * vms_conv.ads: Add Metric to Comment_Type
16459
16460         * vms_conv.adb (Initialize): Add component dor Metric in Command_List
16461
16462         * vms_data.ads: Add qualifiers for GNAT METRIC
16463
16464         * makegpr.adb (Link_Executables): Take into account the switches
16465         specified in package Linker of the main project.
16466
16467 2004-06-07  Thomas Quinot  <quinot@act-europe.fr>
16468
16469         * bindgen.adb (Set_Unit_Number): Units is an instance of Table, and so
16470         the index of the last element is Units.Last, not Units.Table'Last
16471         (which is usually not a valid index within the actually allocated
16472         storage for the table).
16473
16474         * exp_ch4.adb (Insert_Dereference_Action): Change predicate that
16475         determines whether to generate a call to a checked storage pool
16476         Dereference action.
16477         Generate such a call only for a dereference that either comes from
16478         source, or is the result of rewriting a dereference that comes from
16479         source.
16480
16481 2004-06-07  Romain Berrendonner  <berrendo@act-europe.fr>
16482
16483         * bindgen.adb (Gen_Output_File): Add support for GAP builds.
16484
16485 2004-06-07  Eric Botcazou  <ebotcazou@act-europe.fr>
16486
16487         (gnat_to_gnu_entity) <E_Array_Subtype>: For multi-dimensional arrays at
16488         file level, elaborate the stride for inner dimensions in alignment
16489         units, not bytes.
16490
16491         * exp_ch5.adb: Correct wrong reference to Component_May_Be_Bit_Aligned
16492         in a comment.
16493
16494 2004-06-07  Javier Miranda  <miranda@gnat.com>
16495
16496         * exp_ch6.adb: Correct wrong modification in previous patch
16497
16498 2004-06-07  Vasiliy Fofanov  <fofanov@act-europe.fr>
16499
16500         * g-trasym.ads: Corrected comment to properly reflect level of support
16501         on VMS.
16502
16503 2004-06-07  Hristian Kirtchev  <kirtchev@gnat.com>
16504
16505         * lib-xref.adb (Generate_Reference): Add nested function Is_On_LHS. It
16506         includes case of a variable referenced on the left hand side of an
16507         assignment, therefore remove redundant code. Variables and prefixes of
16508         indexed or selected components are now marked as referenced on left
16509         hand side. Warnings are now properly emitted when variables or prefixes
16510         are assigned but not read.
16511
16512         * sem_warn.adb (Output_Unreferenced_Messages): Add additional checks to
16513         left hand side referenced variables. Private access types do not
16514         produce the warning "variable ... is assigned but never read".
16515         Add also additional checks to left hand side referenced variables.
16516         Aliased, renamed objects and access types do not produce the warning
16517         "variable ... is assigned but never read" since other entities may read
16518         the memory location.
16519
16520 2004-06-07  Jerome Guitton  <guitton@act-europe.fr>
16521
16522         * Makefile.in: In the powerpc/vxworks-specific section, restore
16523         EXTRA_GNATRTL_NONTASKING_OBJS and EXTRA_GNATRTL_TASKING_OBJS (removed
16524         by mistake).
16525
16526 2004-06-07  Ed Schonberg  <schonberg@gnat.com>
16527
16528         * sem_ch4.adb (Remove_Abstract_Operations): Refine the removal of
16529         predefined operators.
16530         Removes spurious type errors from g-trasym-vms.adb.
16531
16532         * sem_res.adb (Rewrite_Renamed_Operator): If intrinsic operator is
16533         distinct from the operator appearing in the source, call appropriate
16534         routine to insert conversions when needed, and complete resolution of
16535         node.
16536         (Resolve_Intrinsic_Operator): Fix cut-and-paste bug on transfer of
16537         interpretations for rewritten right operand.
16538         (Set_Mixed_Mode_Operand): Handle properly a universal real operand when
16539         the other operand is overloaded and the context is a type conversion.
16540
16541 2004-06-07  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16542
16543         * ada-tree.def (BLOCK_STMT): Now has two operands.
16544         (BREAK_STMT): New.
16545
16546         * ada-tree.h: (BLOCK_STMT_BLOCK): New macro.
16547
16548         * gigi.h: (gnat_poplevel): Now returns a tree.
16549
16550         * trans.c (end_block_stmt): Add arg; all callers changed.
16551         (tree_transform, case N_Case_Statement): Make a BLOCK_STMT for a WHEN.
16552         (start_block_stmt): Clear BLOCK_STMT_BLOCK.
16553         (add_stmt): Set TREE_TYPE.
16554         (gnat_expand_stmt, case BLOCK_STMT): Handle BLOCK_STMT_BLOCK.
16555         (gnat_expand_stmt, case BREAK_STMT): New case.
16556
16557         * utils.c (gnat_poplevel): Return a BLOCK, if we made one.
16558
16559 2004-06-07  Jose Ruiz  <ruiz@act-europe.fr>
16560
16561         * s-stchop.adsm s-stchop.adb, s-stchop-vxworks.adb: Remove the
16562         procedure Set_Stack_Size that is not needed.
16563
16564 2004-06-07  Sergey Rybin  <rybin@act-europe.fr>
16565
16566         * gnat_ugn.texi: Clarify the case when non-standard naming scheme is
16567         used for gnatpp input file and for the files upon which it depends
16568
16569 2004-06-07  Ben Brosgol  <brosgol@gnat.com>
16570
16571         * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter
16572
16573 2004-06-07  Arnaud Charlet  <charlet@act-europe.fr>
16574
16575         * gnatvsn.ads: Bump version numbers appropriately.
16576         Add new build type.
16577
16578 2004-06-07  Pascal Obry  <obry@gnat.com>
16579
16580         * gnat_ugn.texi: Improve comments about imported names and link names
16581         on Windows. Add a note about the requirement to use -k gnatdll's option
16582         when working with a DLL which has stripped stdcall symbols (no @nn
16583         suffix).
16584
16585 2004-05-27  Vincent Celier  <celier@gnat.com>
16586
16587         * vms_data.ads: Add new GNAT PRETTY qualifiers /NO_BACKUP and
16588         COMMENTS_LAYOUT=UNTOUCHED
16589
16590         * symbols-vms.adb, symbols-vms-alpha.adb: Renamed symbols-vms.adb to
16591         symbols-vms-alpha.adb
16592
16593 2004-05-27  Thomas Quinot  <quinot@act-europe.fr>
16594
16595         * sem.ads: Clarify documentation on checks suppression.
16596
16597         * einfo.ads (Is_Known_Non_Null): Minor comment typo fix and rephrasing.
16598
16599 2004-05-27  Ed Schonberg  <schonberg@gnat.com>
16600
16601         * sem_util.adb (Is_Descendent_Of): Examine properly all ancestors in
16602         the case of multiple derivations.
16603         (Is_Object_Reference): For a selected component, verify that the prefix
16604         is itself an object and not a value.
16605
16606         * sem_ch12.adb (Same_Instantiated_Constant): New name for
16607         Same_Instantiated_Entity.
16608         (Same_Instantiated_Variable): Subsidiary to
16609         Check_Formal_Package_Instance, to recognize actuals for in-out generic
16610         formals that are obtained from a previous formal package.
16611         (Instantiate_Subprogram_Body): Emit proper error when
16612         generating code and the proper body of a stub is missing.
16613
16614         * sem_ch4.adb (Remove_Address_Interpretations): If the operation still
16615         has a universal interpretation, do the disambiguation here.
16616
16617         * exp_ch4.adb (Expand_N_Type_Conversion,
16618         Expand_N_Unchecked_Type_Conversion): Special handling when target type
16619         is Address, to avoid typing anomalies when Address is a visible integer
16620         type.
16621
16622         * exp_ch6.adb (Expand_N_Subprogram_Body): Use Is_Descendent_Of_Address
16623         to determine whether a subprogram should not be marked Pure, even when
16624         declared in a pure package.
16625
16626 2004-05-27  Jose Ruiz  <ruiz@act-europe.fr>
16627
16628         * gnat_ugn.texi: Replace pragma Ravenscar by pragma Profile.
16629
16630         * gnat_rm.texi: Replace Max_Entry_Queue_Depth by Max_Entry_Queue_Length
16631         Document No_Dynamic_Attachment, that supersedes No_Dynamic_Interrupts.
16632         Update the documentation about the Ravenscar profile, following the
16633         definition found in AI-249.
16634
16635         * sem_prag.adb: Use FIFO_Within_Priorities and Ceiling_Locking when
16636         setting the Profile (Ravenscar). This must be done in addition to
16637         setting the required restrictions.
16638
16639         * rtsfind.ads: Add the set of operations defined in package
16640         Ada.Interrupts.
16641
16642         * exp_ch6.adb: Check whether we are violating the No_Dynamic_Attachment
16643         restriction.
16644
16645 2004-05-27  Eric Botcazou  <ebotcazou@act-europe.fr>
16646
16647         lang-specs.h: Always require -c or -S and always redirect to /dev/null
16648         if -gnatc or -gnats is passed.
16649
16650 2004-05-27  Hristian Kirtchev  <kirtchev@gnat.com>
16651
16652         * sem_prag.adb (Sig_Flags): A Pragma_Unchecked_Union does not count as
16653         a significant reference. Warnings are now properly emitted when a
16654         discriminated type is not referenced.
16655
16656         * lib-xref.adb (Generate_Reference): A deferred constant completion,
16657         record representation clause or record type discriminant does not
16658         produce a reference to its corresponding entity. Warnings are now
16659         properly emitted when deferred constants and record types are not
16660         referenced.
16661
16662 2004-05-27  Geert Bosch  <bosch@gnat.com>
16663
16664         * Makefile.in: Use long version of libm routines on ia64 gnu/linux.
16665         Fixes ACATS Annex G tests.
16666
16667 2004-05-27  Robert Dewar  <dewar@gnat.com>
16668
16669         * rtsfind.adb (RTU_Loaded): Temporary kludge to get past bug of not
16670         handling WITH
16671
16672 2004-05-27  Arnaud Charlet  <charlet@act-europe.fr>
16673
16674         * s-interr.adb (Server_Task): Take into account case of early return
16675         from sigwait under e.g. linux.
16676
16677 2004-05-27  Sergey Rybin  <rybin@act-europe.fr>
16678
16679         * gnat_ugn.texi: Add description for the new gnatpp options:
16680          -rnb - replace the original source without creating its backup copy
16681          -c0 - do not format comments
16682
16683 2004-05-24  Geert Bosch  <bosch@gnat.com>
16684
16685         * a-numaux-x86.adb (Reduce): Reimplement using an approximation of Pi
16686         with 192 bits of precision, sufficient to reduce a double-extended
16687         arguments X with a maximum relative error of T'Machine_Epsilon, for X
16688         in -2.0**32 .. 2.0**32.
16689         (Cos, Sin):  Always reduce arguments of 1/4 Pi or larger, to prevent
16690         reduction by the processor, which only uses a 68-bit approximation of
16691         Pi.
16692         (Tan): Always reduce arguments and compute function either using
16693         the processor's fptan instruction, or by dividing sin and cos as needed.
16694
16695 2004-05-24  Doug Rupp  <rupp@gnat.com>
16696
16697         * adaint.c (__gnat_readdir): Cast CRTL function retun value to avoid
16698         gcc error on 32/64 bit VMS.
16699
16700 2004-05-24  Olivier Hainque  <hainque@act-europe.fr>
16701
16702         * init.c (__gnat_error_handler): Handle EEXIST as EACCES for SIGSEGVs,
16703         since this is what we get for stack overflows although not documented
16704         as such.
16705         Document the issues which may require adjustments to our signal
16706         handlers.
16707
16708 2004-05-24  Ed Schonberg  <schonberg@gnat.com>
16709
16710         * inline.adb (Add_Scope_To_Clean): Do not add cleanup actions to the
16711         enclosing dynamic scope if the instantiation is within a generic unit.
16712
16713 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16714
16715         * exp_dbug.ads: Fix typo.
16716
16717         * Makefile.in: s-osinte-linux-ia64.ads was misnamed.
16718         Rename it to its proper name: system-linux-ia64.ads
16719         (stamp-gnatlib1): Remove extra target specific run time files when
16720         setting up the rts directory.
16721
16722 2004-05-24  Javier Miranda  <miranda@gnat.com>
16723
16724         * einfo.ads, einfo.adb (Limited_Views): Removed.
16725         (Limited_View): New attribute that replaces the previous one. It is
16726         now a bona fide package with the limited-view list through the
16727         first_entity and first_private attributes.
16728
16729         * sem_ch10.adb (Install_Private_With_Clauses): Give support to
16730         limited-private-with clause.
16731         (Install_Limited_Withed_Unit): Install the private declarations of a
16732         limited-private-withed package. Update the installation of the shadow
16733         entities according to the new structure (see Build_Limited_Views)
16734         (Build_Limited_Views): Replace the previous implementation of the
16735         limited view by a package entity that references the first shadow
16736         entity plus the first shadow private entity (required for limited-
16737         private-with clause)
16738         (New_Internal_Shadow_Entity): Code cleanup.
16739         (Remove_Limited_With_Clause): Update the implementation to undo the
16740         new work carried out by Build_Limited_Views.
16741         (Build_Chain): Complete documentation.
16742         Replace Ada0Y by Ada 0Y in comments
16743         Minor reformating
16744
16745         * sem_ch3.adb (Array_Type_Declaration): In case of anonymous access
16746         types the level of accessibility depends on the enclosing type
16747         declaration.
16748
16749         * sem_ch8.adb (Find_Expanded_Name): Fix condition to detect shadow
16750         entities. Complete documentation of previous change.
16751
16752 2004-05-24  Robert Dewar  <dewar@gnat.com>
16753
16754         * namet.adb: Minor reformatting
16755         Avoid use of name I (replace by J)
16756         Minor code restructuring
16757
16758         * sem_ch6.adb: Minor reformatting
16759
16760         * lib-writ.adb: Do not set restriction as active if this is a
16761         Restriction_Warning case.
16762
16763         * sem_prag.adb: Reset restriction warning flag if real pragma
16764         restriction encountered.
16765
16766         * s-htable.adb: Minor reformatting
16767         Change rotate count to 3 in Hash (improves hash for small strings)
16768
16769         * 5qsystem.ads: Add comments for type Address (no literals allowed).
16770
16771         * gnat_ugn.texi: Add new section of documentation "Code Generation
16772         Control", which describes the use of -m switches.
16773
16774 2004-05-24  Eric Botcazou  <ebotcazou@act-europe.fr>
16775
16776         trans.c (tree_transform) <N_Identifier>: Do the dereference directly
16777         through the DECL_INITIAL for renamed variables.
16778
16779 2004-05-24  Arnaud Charlet  <charlet@act-europe.fr>
16780
16781         * s-osinte-linux-ia64.ads: Renamed system-linux-ia64.ads
16782
16783 2004-05-19  Joel Brobecker  <brobecker@gnat.com>
16784
16785         * exp_dbug.ads: Correct comments concerning handling of overloading,
16786         since we no longer use $ anymore.
16787
16788 2004-05-19  Sergey Rybin  <rybin@act-europe.fr>
16789
16790         * sem_ch10.adb (Optional_Subunit): When loading a subunit, do not
16791         ignore errors if ASIS_Mode is set. This prevents creating ASIS trees
16792         with illegal subunits.
16793
16794 2004-05-19  Ed Schonberg  <schonberg@gnat.com>
16795
16796         * sem_ch6.adb (Check_Following_Pragma): When compiling a subprogram
16797         body with front-end inlining enabled, check whether an inline pragma
16798         appears immediately after the body and applies to it.
16799
16800         * sem_prag.adb (Cannot_Inline): Emit warning if front-end inlining is
16801         enabled and the pragma appears after the body of the subprogram.
16802
16803 2004-05-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
16804
16805         Part of function-at-a-time conversion
16806
16807         * misc.c (adjust_decl_rtl): Deleted.
16808         (LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK):
16809         Define.
16810
16811         * gigi.h: (adjust_decl_rtl, kept_level_p, set_block): Deleted.
16812         (add_decl_stmt, add_stmt, block_has_vars): New functions.
16813         (gnat_pushlevel, gnat_poplevel): Renamed from pushlevel and poplevel.
16814
16815         * decl.c (elaborate_expression, maybe_pad_type): Call add_decl_stmt
16816         when making a decl.
16817         (gnat_to_gnu_entity): Likewise.
16818         Use add_stmt to update setjmp buffer.
16819         Set TREE_ADDRESSABLE instead of calling put_var_into_stack and
16820         flush_addressof.
16821         No longer call adjust_decl_rtl.
16822         (DECL_INIT_BY_ASSIGN_P): New macro.
16823         (DECL_STMT_VAR): Likewise.
16824
16825         * trans.c (gigi): Call start_block_stmt to make the outermost
16826         BLOCK_STMT.
16827         (gnat_to_code, gnu_to_gnu, tree_transform, process_decls, process_type):
16828         Call start_block_stmt and end_block_stmt temporarily.
16829         Use gnat_expand_stmt instead of expand_expr_stmt.
16830         (add_decl_stmt): New function.
16831         (tree_transform): Call it.
16832         (add_stmt): Also emit initializing assignment for DECL_STMT if needed.
16833         (end_block_stmt): Set type and NULL_STMT.
16834         (gnat_expand_stmt): Make recursize call instead of calling
16835         expand_expr_stmt.
16836         (gnat_expand_stmt, case DECL_STMT): New case.
16837         (set_lineno_from_sloc): Do nothing if global.
16838         (gnu_block_stmt_node, gnu_block_stmt_free_list): New variables.
16839         (start_block_stmt, add_stmt, end_block_stmt): New functions.
16840         (build_block_stmt): Call them.
16841         (gnat_to_code): Don't expand NULL_STMT.
16842         (build_unit_elab): Rename pushlevel and poplevel to gnat_* and change
16843         args.
16844         (tree_transform): Likewise.
16845         (tree_transform, case N_Null_Statement): Return NULL_STMT.
16846         (gnat_expand_stmt, case NULL_STMT): New case.
16847         (gnat_expand_stmt, case IF_STMT): Allow nested IF_STMT to have no
16848         IF_STMT_TRUE.
16849
16850         * utils2.c (gnat_mark_addressable, case VAR_DECL): Do not set
16851         TREE_ADDRESSABLE.
16852
16853         * utils.c (create_var_decl): Do not call expand_decl or
16854         expand_decl_init.
16855         Set TREE_ADDRESSABLE instead of calling gnat_mark_addressable.
16856         Set DECL_INIT_BY_ASSIGN_P when needed and do not generate MODIFY_EXPR
16857         here.
16858         (struct e_stack): Add chain_next to GTY.
16859         (struct binding_level): Deleted.
16860         (struct ada_binding_level): New struct.
16861         (free_block_chain): New.
16862         (global_binding_level, clear_binding_level): Deleted.
16863         (global_bindings_p): Rework to see if no chain.
16864         (kept_level_p, set_block): Deleted.
16865         (gnat_pushlevel): Renamed from pushlevel and extensive reworked to use
16866         new data structure and work directly on BLOCK node.
16867         (gnat_poplevel): Similarly.
16868         (get_decls): Look at BLOCK_VARS.
16869         (insert_block): Work directly on BLOCK node.
16870         (block_has_var): New function.
16871         (pushdecl): Rework for new binding structures.
16872         (gnat_init_decl_processing): Rename and rework calls to pushlevel and
16873         poplevel.
16874         (build_subprog_body): Likewise.
16875         (end_subprog_body): Likewise; also set up BLOCK in DECL_INITIAL.
16876
16877         * ada-tree.def (DECL_STMT, NULL_STMT): New codes.
16878
16879         * ada-tree.h: (DECL_INIT_BY_ASSIGN_P): New macro.
16880         (DECL_STMT_VAR): Likewise.
16881
16882 2004-05-17  Robert Dewar  <dewar@gnat.com>
16883
16884         * restrict.ads, restrict.adb (Process_Restriction_Synonym): New
16885         procedure
16886
16887         * sem_prag.adb (Analyze_Pragma, case Restrictions): Cleanup handling
16888         of restriction synonyums by using
16889         Restrict.Process_Restriction_Synonyms.
16890
16891         * snames.ads, snames.adb: Add entries for Process_Restriction_Synonym
16892
16893         * s-restri.ads (Tasking_Allowed): Correct missing comment
16894
16895         * s-rident.ads: Add entries for restriction synonyms
16896
16897         * ali.adb: Fix some problems with badly formatted ALI files that can
16898         result in infinite loops.
16899
16900         * s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, s-taprop-tru64.adb,
16901         s-tpopsp-posix-foreign.adb, s-taprop-irix.adb, s-interr-sigaction.adb,
16902         s-taprop-irix-athread.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb,
16903         s-taprop-dummy.adb, s-interr-dummy.adb, s-taprop-os2.adb,
16904         s-taprop-solaris.adb, s-tpopsp-solaris.adb, s-asthan-vms.adb,
16905         s-inmaop-vms.adb, s-interr-vms.adb, s-taprop-vms.adb,
16906         s-tpopde-vms.adb, s-taprop-mingw.adb, s-interr-vxworks.adb,
16907         s-taprop-vxworks.adb, s-tpopsp-vxworks.adb, s-taprop-posix.adb,
16908         s-tpopsp-posix.adb, s-tratas-default.adb, a-dynpri.adb,
16909         a-tasatt.adb, a-taside.adb, a-taside.ads, exp_attr.adb,
16910         exp_ch9.adb, g-thread.adb, rtsfind.ads, sem_attr.adb,
16911         s-interr.adb, s-interr.ads, s-soflin.ads, s-taasde.adb,
16912         s-taasde.ads, s-taenca.adb, s-taenca.ads, s-taprop.ads,
16913         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
16914         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
16915         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
16916         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
16917         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
16918         s-tpoben.adb, s-tpobop.adb, s-tpobop.ads, s-tporft.adb,
16919         s-tposen.adb, s-tposen.ads, s-tratas.adb, s-tratas.ads: Change Task_ID
16920         to Task_Id (minor cleanup).
16921
16922 2004-05-17  Vincent Celier  <celier@gnat.com>
16923
16924         * g-os_lib.adb (Normalize_Pathname.Final_Value): Remove trailing
16925         directory separator.
16926
16927         * prj-proc.adb (Recursive_Process): Inherit attribute Languages from
16928         project being extended, if Languages is not declared in extending
16929         project.
16930
16931 2004-05-17  Javier Miranda  <miranda@gnat.com>
16932
16933         * sem_ch10.adb (Install_Limited_Withed_Unit): Do not install the
16934         limited view of a visible sibling.
16935
16936 2004-05-14  Robert Dewar  <dewar@gnat.com>
16937
16938         * gnat_ugn.texi: Minor change to -gnatS documentation
16939
16940         * sprint.adb: Remove some instances of Assert (False) and for this
16941         purpose replace them by output of a ??? string.
16942
16943         * checks.adb, exp_aggr.adb, sem_elim.adb: Remove useless pragma
16944         Assert (False).
16945
16946         * lib-writ.adb, lib-load.adb, lib.ads, lib.adb: Remove Dependent_Unit
16947         flag processing. This was suppressing required dependencies in
16948         No_Run_Time mode and is not needed since the binder does not generate
16949         references for things in libgnat anyway.
16950
16951         * sem_ch3.adb (Access_Type_Declaration): Reorganize code to avoid GCC
16952         warning.
16953
16954 2004-05-14  Thomas Quinot  <quinot@act-europe.fr>
16955
16956         * gnat_ugn.texi: Document AIX-specific issue with initialization of
16957         resolver library.
16958
16959         * exp_ch4.adb (Insert_Dereference_Action): Do not generate dereference
16960         action for the case of an actual parameter in an init proc call.
16961
16962 2004-05-14  Ed Schonberg  <schonberg@gnat.com>
16963
16964         * sem_ch4.adb (Analyze_Selected_Component): If prefix is a protected
16965         subtype, check visible entities in base type.
16966
16967         * exp_ch7.adb (Clean_Simple_Protected_Objects): Do not generate cleanup
16968         actions if the object is a renaming.
16969
16970         * sem_ch12.adb (Same_Instantiated_Entity): Predicate for
16971         Check_Formal_Package_Instance, to determine more precisely when the
16972         formal and the actual denote the same entity.
16973
16974 2004-05-14  Javier Miranda  <miranda@gnat.com>
16975
16976         * par-ch10.adb (P_Context_Clause): Complete documentation on AI-262
16977
16978         * sem_ch10.adb (Analyze_With_Clause): After analyzed, the entity
16979         corresponding to a private_with must be removed from visibility; it
16980         will be made visible later, just before we analyze the private part of
16981         the package.
16982         (Check_Private_Child_Unit): Allow private_with clauses in public
16983         siblings.
16984         (Install_Siblings): Make visible the private entities of private-withed
16985         siblings.
16986         (Install_Withed_Unit): Do not install the private withed unit if we
16987         are compiling a package declaration and the Private_With_OK flag was
16988         not set by the caller. These declarations will be installed later,
16989         just before we analyze the private part of the package.
16990
16991         * sem_ch3.adb (Analyze_Object_Declaration): In case of errors detected
16992         during the evaluation of the expression that initializes the object,
16993         decorate it with the expected type to avoid cascade errors.
16994         Code cleanup.
16995
16996         * sem_ch6.adb (Analyze_Subprogram_Body): If we are compiling a library
16997         subprogram we have to install the private_with clauses after its
16998         specification has been analyzed (as documented in AI-262.TXT).
16999
17000         * sem_ch8.adb (Has_Private_With): New function. Determines if the
17001         current compilation unit has a private with on a given entity.
17002         (Find_Direct_Name): Detect the Beaujolais problem described in
17003         AI-262.TXT
17004
17005         * sem_utils.ads, sem_util.adb (Is_Ancestor_Package): New function. It
17006         provides the functionality of the function Is_Ancestor that was
17007         previously available in sem_ch10. It has been renamed to avoid
17008         overloading.
17009
17010         * sprint.adb (Sprint_Node_Actual): Print limited_with clauses
17011
17012 2004-05-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17013
17014         * utils.c (build_vms_descriptor): Use SImode pointers.
17015
17016 2004-05-14  Vasiliy Fofanov  <fofanov@act-europe.fr>
17017
17018         * gnat_ugn.texi: Revised chapter "GNAT and Libraries".
17019
17020 2004-05-14  GNAT Script  <nobody@gnat.com>
17021
17022         * Make-lang.in: Makefile automatically updated
17023
17024 2004-05-14  Arnaud Charlet  <charlet@act-europe.fr>
17025
17026         Renaming of target specific files for clarity
17027
17028         * Makefile.in: Rename GNAT target specific files.
17029
17030         * 31soccon.ads, 31soliop.ads 35soccon.ads, 3asoccon.ads,
17031         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3psoccon.ads,
17032         3ssoccon.ads, 3ssoliop.ads, 3veacodu.adb, 3vexpect.adb,
17033         3vsoccon.ads, 3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb,
17034         3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads, 3wsoliop.ads,
17035         3zsoccon.ads, 3zsocthi.adb, 3zsocthi.ads, 41intnam.ads,
17036         42intnam.ads, 45intnam.ads, 4aintnam.ads, 4cintnam.ads,
17037         4gintnam.ads, 4hexcpol.adb, 4hintnam.ads, 4lintnam.ads,
17038         4nintnam.ads, 4ointnam.ads, 4onumaux.ads, 4pintnam.ads,
17039         4sintnam.ads, 4vcaldel.adb, 4vcalend.adb, 4vcalend.ads,
17040         4vintnam.ads, 4wcalend.adb, 4wexcpol.adb, 4wintnam.ads,
17041         4zintnam.ads, 4znumaux.ads, 4zsytaco.adb, 4zsytaco.ads,
17042         51osinte.adb, 51osinte.ads, 51system.ads,
17043         52osinte.adb, 52osinte.ads, 53osinte.ads, 54osinte.ads,
17044         55osinte.adb, 55osinte.ads, 55system.ads, 56osinte.adb,
17045         56osinte.ads, 56system.ads, 56taprop.adb, 56taspri.ads,
17046         56tpopsp.adb, 57system.ads, 58system.ads,
17047         5amastop.adb, 5aml-tgt.adb, 5aosinte.adb, 5aosinte.ads,
17048         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
17049         5atpopsp.adb, 5avxwork.ads, 5bml-tgt.adb, 5bosinte.adb,
17050         5bosinte.ads, 5bsystem.ads, 5cosinte.ads, 5csystem.ads,
17051         5dsystem.ads, 5esystem.ads, 5fintman.adb, 5fosinte.adb,
17052         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
17053         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gml-tgt.adb,
17054         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
17055         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
17056         5hml-tgt.adb, 5hosinte.adb, 5hosinte.ads, 5hparame.ads,
17057         5hsystem.ads, 5htaprop.adb, 5htaspri.ads, 5htraceb.adb,
17058         5iosinte.adb, 5iosinte.ads, 5itaprop.adb, 5itaspri.ads,
17059         5ksystem.ads, 5kvxwork.ads, 5lml-tgt.adb, 5losinte.ads,
17060         5lparame.adb, 5lsystem.ads, 5msystem.ads, 5mvxwork.ads,
17061         5ninmaop.adb, 5nintman.adb, 5nosinte.ads, 5nsystem.ads,
17062         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
17063         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
17064         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
17065         5posprim.adb, 5psystem.ads, 5pvxwork.ads, 5sintman.adb,
17066         5sml-tgt.adb, 5sosinte.adb, 5sosinte.ads, 5sosprim.adb,
17067         5sparame.adb, 5ssystem.ads, 5staprop.adb, 5stasinf.adb,
17068         5stasinf.ads, 5staspri.ads, 5stpopsp.adb, 5svxwork.ads,
17069         5tosinte.ads, 5usystem.ads, 5vasthan.adb, 5vdirval.adb,
17070         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
17071         5vmastop.adb, 5vml-tgt.adb, 5vosinte.adb, 5vosinte.ads,
17072         5vosprim.adb, 5vosprim.ads, 5vparame.ads, 5vsymbol.adb,
17073         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
17074         5vtpopde.ads, 5vtraent.adb, 5vtraent.ads, 5vvaflop.adb,
17075         5wdirval.adb, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
17076         5wml-tgt.adb, 5wosinte.ads, 5wosprim.adb, 5wsystem.ads,
17077         5wtaprop.adb, 5wtaspri.ads, 5xparame.ads, 5xsystem.ads,
17078         5xvxwork.ads, 5yparame.ads, 5ysystem.ads, 5zinterr.adb,
17079         5zintman.adb, 5zintman.ads, 5zml-tgt.adb, 5zosinte.adb,
17080         5zosinte.ads, 5zosprim.adb, 5zparame.ads, 5zstchop.adb,
17081         5zsystem.ads, 5ztaprop.adb, 5ztaspri.ads, 5ztfsetr.adb,
17082         5ztpopsp.adb, 6vcpp.adb, 6vcstrea.adb, 6vinterf.ads,
17083         7sinmaop.adb, 7sintman.adb, 7sosinte.adb, 7sosprim.adb,
17084         7staprop.adb, 7staspri.ads, 7stfsetr.adb, 7stpopsp.adb,
17085         7straceb.adb, 7straces.adb, 7strafor.adb, 7strafor.ads,
17086         7stratas.adb, 86numaux.adb, 86numaux.ads: Replaced by files below.
17087
17088         * a-caldel-vms.adb, a-calend-mingw.adb, a-calend-vms.adb,
17089         a-calend-vms.ads, a-dirval-mingw.adb, a-dirval-vms.adb,
17090         a-excpol-abort.adb, a-excpol-interix.adb, a-intnam-aix.ads,
17091         a-intnam-dummy.ads, a-intnam-freebsd.ads, a-intnam-hpux.ads,
17092         a-intnam-interix.ads, a-intnam-irix.ads, a-intnam-linux.ads,
17093         a-intnam-lynxos.ads, a-intnam-mingw.ads, a-intnam-os2.ads,
17094         a-intnam-solaris.ads, a-intnam-tru64.ads, a-intnam-unixware.ads,
17095         a-intnam-vms.ads, a-intnam-vxworks.ads, a-numaux-libc-x86.ads,
17096         a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads,
17097         a-sytaco-vxworks.adb, a-sytaco-vxworks.ads, g-eacodu-vms.adb,
17098         g-expect-vms.adb, g-soccon-aix.ads, g-soccon-freebsd.ads,
17099         g-soccon-hpux.ads, g-soccon-interix.ads, g-soccon-irix.ads,
17100         g-soccon-mingw.ads, g-soccon-solaris.ads, g-soccon-tru64.ads,
17101         g-soccon-unixware.ads, g-soccon-vms.adb, g-soccon-vxworks.ads,
17102         g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vms.adb,
17103         g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads,
17104         g-soliop-mingw.ads, g-soliop-solaris.ads, g-soliop-unixware.ads,
17105         g-trasym-vms.adb, i-cpp-vms.adb, i-cstrea-vms.adb,
17106         interfac-vms.ads, mlib-tgt-aix.adb, mlib-tgt-hpux.adb,
17107         mlib-tgt-irix.adb, mlib-tgt-linux.adb, mlib-tgt-mingw.adb,
17108         mlib-tgt-solaris.adb, mlib-tgt-tru64.adb, mlib-tgt-vms.adb,
17109         mlib-tgt-vxworks.adb, s-asthan-vms.adb, s-gloloc-mingw.adb,
17110         s-inmaop-dummy.adb, s-inmaop-posix.adb, s-inmaop-vms.adb,
17111         s-interr-dummy.adb, s-interr-sigaction.adb, s-interr-vms.adb,
17112         s-interr-vxworks.adb, s-intman-dummy.adb, s-intman-irix.adb,
17113         s-intman-irix-athread.adb, s-intman-mingw.adb, s-intman-posix.adb,
17114         s-intman-solaris.adb, s-intman-vms.adb, s-intman-vms.ads,
17115         s-intman-vxworks.adb, s-intman-vxworks.ads, s-mastop-irix.adb,
17116         s-mastop-tru64.adb, s-mastop-vms.adb, s-mastop-x86.adb,
17117         s-memory-mingw.adb, s-osinte-aix.adb, s-osinte-aix.ads,
17118         s-osinte-aix-fsu.ads, s-osinte-dummy.ads, s-osinte-freebsd.adb,
17119         s-osinte-freebsd.ads, s-osinte-fsu.adb, s-osinte-hpux.ads,
17120         s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, s-osinte-interix.ads,
17121         s-osinte-irix.adb, s-osinte-irix.ads, s-osinte-irix-athread.ads,
17122         s-osinte-linux.ads, s-osinte-linux-fsu.ads, s-osinte-linux-ia64.ads,
17123         s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb,
17124         s-osinte-lynxos.ads, s-osinte-mingw.ads, s-osinte-os2.adb,
17125         s-osinte-os2.ads, s-osinte-posix.adb, s-osinte-solaris.adb,
17126         s-osinte-solaris.ads, s-osinte-solaris-fsu.ads,
17127         s-osinte-solaris-posix.ads, s-osinte-tru64.adb, s-osinte-tru64.ads,
17128         s-osinte-unixware.adb, s-osinte-unixware.ads, s-osinte-vms.adb,
17129         s-osinte-vms.ads, s-osinte-vxworks.adb,
17130         s-osinte-vxworks.ads, s-osprim-mingw.adb,
17131         s-osprim-os2.adb, s-osprim-posix.adb, s-osprim-solaris.adb,
17132         s-osprim-unix.adb, s-osprim-vms.adb, s-osprim-vms.ads,
17133         s-osprim-vxworks.adb, s-parame-ae653.ads, s-parame-hpux.ads,
17134         s-parame-linux.adb, s-parame-os2.adb, s-parame-solaris.adb,
17135         s-parame-vms.ads, s-parame-vms-restrict.ads, s-parame-vxworks.ads,
17136         s-proinf-irix-athread.adb, s-proinf-irix-athread.ads,
17137         s-stchop-vxworks.adb, s-taprop-dummy.adb,
17138         s-taprop-hpux-dce.adb, s-taprop-irix.adb,
17139         s-taprop-irix-athread.adb, s-taprop-linux.adb, s-taprop-lynxos.adb,
17140         s-taprop-mingw.adb, s-taprop-os2.adb, s-taprop-posix.adb,
17141         s-taprop-solaris.adb, s-taprop-tru64.adb, s-taprop-vms.adb,
17142         s-taprop-vxworks.adb, s-tasinf-irix.ads, s-tasinf-irix-athread.adb,
17143         s-tasinf-irix-athread.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads,
17144         s-tasinf-tru64.ads, s-taspri-dummy.ads, s-taspri-hpux-dce.ads,
17145         s-taspri-linux.ads, s-taspri-lynxos.ads, s-taspri-mingw.ads,
17146         s-taspri-os2.ads, s-taspri-posix.ads, s-taspri-solaris.ads,
17147         s-taspri-tru64.ads, s-taspri-vms.ads, s-taspri-vxworks.ads,
17148         s-tfsetr-default.adb, s-tfsetr-vxworks.adb, s-tpopde-vms.adb,
17149         s-tpopde-vms.ads, s-tpopsp-lynxos.adb, s-tpopsp-posix.adb,
17150         s-tpopsp-posix-foreign.adb, s-tpopsp-solaris.adb, s-tpopsp-vxworks.adb,
17151         s-traceb-hpux.adb, s-traceb-mastop.adb, s-traces-default.adb,
17152         s-traent-vms.adb, s-traent-vms.ads, s-trafor-default.adb,
17153         s-trafor-default.ads, s-tratas-default.adb, s-vaflop-vms.adb,
17154         s-vxwork-alpha.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads,
17155         s-vxwork-ppc.ads, s-vxwork-sparcv9.ads, s-vxwork-xscale.ads,
17156         symbols-vms.adb, system-aix.ads, system-freebsd-x86.ads,
17157         system-hpux.ads, system-interix.ads, system-irix-n32.ads,
17158         system-irix-o32.ads, system-linux-x86_64.ads,
17159         system-linux-x86.ads, system-lynxos-ppc.ads, system-lynxos-x86.ads,
17160         system-mingw.ads, system-os2.ads, system-solaris-sparc.ads,
17161         system-solaris-sparcv9.ads, system-solaris-x86.ads, system-tru64.ads,
17162         system-unixware.ads, system-vms.ads, system-vms-zcx.ads,
17163         system-vxworks-alpha.ads, system-vxworks-m68k.ads,
17164         system-vxworks-mips.ads, system-vxworks-ppc.ads,
17165         system-vxworks-sparcv9.ads, system-vxworks-xscale.ads: Replace files
17166         above.
17167
17168 2004-05-13  Zack Weinberg  <zack@codesourcery.com>
17169
17170         * trans.c (gnat_stabilize_reference_1): Remove case 'b'.
17171
17172 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
17173
17174         Merge from tree-ssa-20020619-branch.
17175
17176         * config-lang.in (boot_language, build_by_default): Set
17177         to no.
17178         * utils.c (unchecked_convert): Use OEP_ONLY_CONST.
17179         (max_size): Add static chain op for call_expr.
17180
17181 2004-05-12  Richard Sandiford  <rsandifo@redhat.com>
17182
17183         PR target/15331
17184         * 5gmastop.adb (Roff): Choose between '4' and '0', not '4' and ' '.
17185
17186 2004-05-11  Roger Sayle  <roger@eyesopen.com>
17187
17188         * utils.c (max_size): Use MIN_EXPR to find the minimum value of a
17189         COND_EXPR.
17190
17191 2004-05-10  Doug Rupp  <rupp@gnat.com>
17192
17193         * 5qsystem.ads: Remove Short_Address subtype declaration. Moved to
17194         system.aux_dec.
17195
17196         * s-auxdec.ads: Add Short_Address subtype (moved here from System).
17197
17198         * Makefile.in: [VMS]: Add translation for 5qauxdec.ads.
17199
17200         * init.c: [VMS] Macroize LIB$ calls for IA64 and Alpha.
17201         Fixes undefined symbols in IA64 gnatlib.
17202
17203         * 5vinmaop.adb: Reference s-auxdec for Short_Address.
17204
17205         * 5xsystem.ads, 5vsystem.ads: Back out last change (addition of subtype
17206         Short_Address). This will be moved to system.auxdec.
17207
17208 2004-05-10  Thomas Quinot  <quinot@act-europe.fr>
17209
17210         * sem_util.adb: Replace test for presence of a node that is always
17211         present with a call to Discard_Node.
17212
17213         * sem_ch10.adb (Analyze_Compilation_Unit): Remove superfluous call to
17214         Analyze on the library unit node after generation of distribution stub
17215         constructs.  The call was a no-op because Unit_Node has already been
17216         Analyzed, and the tree fragments for the distribution stubs are
17217         analyzed as they are inserted in Exp_Dist.
17218         Update comment regarding to distribution stubs to reflect that we
17219         do not generate stub in separate files anymore.
17220
17221         * einfo.ads: Clarify the fact that a tagged private type has the
17222         E_Record_Type_With_Private Ekind.
17223
17224         * erroutc.adb: Minor reformatting
17225
17226         * erroutc.ads (Max_Msg_Length): Increase to cover possible larger
17227         values if line length is increased using -gnatyM (noticed during code
17228         reading).
17229
17230         * eval_fat.adb: Minor reformatting
17231         Put spaces around exponentiation operator
17232
17233 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17234
17235         PR ada/15005
17236         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): If prefix
17237         has been rewritten as an explicit dereference, retrieve type of
17238         original node to check for possibly unconstrained record type.
17239
17240 2004-05-10  Ed Schonberg  <schonberg@gnat.com>
17241
17242         * exp_ch7.adb (Check_Visibly_Controlled): If given operation is not
17243         overriding, use the operation of the parent unconditionally.
17244
17245         * sem_ch4.adb (Remove_Address_Interpretations): Remove address
17246         operation when either operand is a literal, to avoid further
17247         ambiguities.
17248
17249         * sem_ch6.adb (New_Overloaded_Entity): If new entity is inherited and
17250         overridden by a previous explicit declaration, mark the previous entity
17251         as overriding.
17252
17253         * sem_disp.adb (Check_Dispatching_Operation): New predicate
17254         Is_Visibly_Controlled, to determine whether a declaration of a
17255         primitive control operation for a derived type overrides an inherited
17256         one. Add warning if the explicit declaration does not override.
17257
17258 2004-05-10  Vincent Celier  <celier@gnat.com>
17259
17260         * gnatls.adb (Gnatls): Initialize Snames, to avoid assertion error in
17261         some cases when the sources are no longer present.
17262
17263         * make.adb (Collect_Arguments): Fail if an external source, not part
17264         of any project need to be compiled, when switch -x has not been
17265         specified.
17266
17267         * makeusg.adb: Document new switch -x
17268
17269         * opt.ads (External_Unit_Compilation_Allowed): New Boolean flag,
17270         defaulted to False.
17271
17272         * switch-m.adb (Scan_Make_Switches): New switch -x
17273
17274         * vms_data.ads: Add VMS qualifier /NON_PROJECT_UNIT_COMPILATION for
17275         gnatmake switch -x.
17276
17277         * gnat_ugn.texi: Document new gnatmake switch -x
17278
17279 2004-05-10  Eric Botcazou  <ebotcazou@act-europe.fr>
17280
17281         * misc.c (gnat_init_options): Set flag_zero_initialized_in_bss to 0.
17282
17283         * utils.c (create_var_decl): Do not modify the DECL_COMMON flag.
17284         (process_attributes): Likewise.
17285
17286 2004-05-10  Joel Brobecker  <brobecker@gnat.com>
17287
17288         * s-inmaop.ads: Fix spelling mistake in one of the comments.
17289
17290 2004-05-10  Robert Dewar  <dewar@gnat.com>
17291
17292         * gnat_ugn.texi: Document that for config pragma files, the maximum
17293         line length is always 32767.
17294
17295         * gnat_rm.texi: For pragma Eliminate, note that concatenation of string
17296         literals is now allowed.
17297
17298         * gnat-style.texi: Remove statement about splitting long lines before
17299         an operator rather than after, since we do not follow this rule at all.
17300         Clarify rule (really lack of rule) for spaces around exponentiation
17301
17302         * sem_elim.adb: Allow concatenation of string literals as well as a
17303         single string literal for pragma arguments.
17304
17305         * sem_prag.ads, sem_prag.adb: (Is_Config_Static_String): New function
17306
17307         * a-textio.adb (Terminate_Line): Do not add line feed if nothing
17308         written for append case.
17309
17310         * frontend.adb: Changes to avoid checking max line length in config
17311         pragma files.
17312
17313         * g-os_lib.ads: Minor reformatting
17314
17315         * mlib-utl.adb: Do not define Max_Line_Length locally (definition was
17316         wrong in any case. Instead use standard value. Noticed during code
17317         reading.
17318
17319         * opt.ads (Max_Line_Length): New field, used to implement removal of
17320         limitation on length of lines when scanning config pragma files.
17321
17322         * osint.ads, prj-dect.adb, prj-strt.adb, prj-tree.adb,
17323         makeutl.ads, makeutl.adb: Minor reformatting
17324
17325         * scn.adb: Do not check line length while scanning config pragma files
17326         Do not check line length while scanning out license information
17327
17328         * scng.adb: Changes to avoid line length checks while parsing config
17329         pragma files.
17330
17331 2004-05-10  GNAT Script  <nobody@gnat.com>
17332
17333         * Make-lang.in: Makefile automatically updated
17334
17335 2004-05-05  Arnaud Charlet  <charlet@act-europe.fr>
17336
17337         * osint.adb (Find_Program_Name): Fix handling of VMS version
17338         number.
17339
17340 2004-05-05  Emmanuel Briot  <briot@act-europe.fr>
17341
17342         * g-os_lib.ads (Invalid_Time): New constant
17343
17344         * adaint.h, adaint.c (__gnat_file_time_name, __gnat_file_time_fd): Now
17345         return OS_Time instead of time_t to match what is imported by Ada.
17346         Now return -1 if the file doesn't exist, instead of a random value
17347
17348 2004-05-05  Robert Dewar  <dewar@gnat.com>
17349
17350         * usage.adb: Add line for -gnatR?s switch
17351
17352         * sem_ch13.adb, exp_ch2.adb: Minor reformatting
17353
17354         * g-regpat.ads, g-regpat.adb: Add documentation on handling of Size
17355         and for Match (Data_First, Data_last)
17356
17357         * lib-writ.adb (Write_With_Lines): Ensure that correct index number is
17358         written when we are dealing with multi-unit files.
17359
17360 2004-05-05  Jerome Guitton  <guitton@act-europe.fr>
17361
17362         * Makefile.in: Remove unused targets and variables.
17363
17364 2004-05-05  Vincent Celier  <celier@gnat.com>
17365
17366         * switch-m.adb: New gnatmake switch -eI
17367
17368         * vms_data.ads: Add VMS equivalents of new gnatclean swith -innn and
17369         of new gnatmake switch -eInnn.
17370
17371         * makegpr.adb: Take into account new parameters Index and Src_Index in
17372         Prj.Util.
17373
17374         * clean.adb: Implement support for multi-unit sources, including new
17375         switch -i.
17376
17377         * gnatcmd.adb (GNATCmd): Call Prj.Util.Value_Of with new parameter
17378         Src_Index.
17379
17380         * make.ads, make.adb (Insert_Q): New parameter Index, defaulted to 0
17381         (Extract_From_Q): New out parameter Index
17382         (Mark, Is_Marked): Subprograms moved to Makeutl
17383         (Switches_Of): New parameter Source_Index
17384         (Add_Switch): New parameter Index
17385         (Check): New parameter Source_Index
17386         (Collect_Arguments): New parameter Source_Index
17387         (Collect_Arguments_And_Compile): New parameter Source_Index
17388         (Compile): New parameter Source_Index
17389         Put subprograms in alphabetical order
17390         Add support for multi-source sources, including in project files.
17391
17392         * makeutl.ads, makeutl.adb (Unit_Index_Of): New function
17393         (Mark, Is_Marked, Delete_All_Marks): New subprograms, moved from
17394         Make.
17395
17396         * makeusg.adb: New gnatmake switch -eInnn
17397
17398         * mlib-prj.adb (Build_Library): Add new parameter Src_Index to call to
17399         Prj.Util.Value_Of.
17400
17401         * opt.ads (Main_Index): New variable, defaulted to 0.
17402
17403         * osint.ads, osinte.adb (Add_File): New parameter Index
17404         (Current_Source_Index): New function
17405
17406         * prj.adb: Take into account new components Index and Src_Index
17407
17408         * prj.ads (String_Element): New component Index
17409         (Variable_Value): New component Index
17410         (Array_Element): New component Src_Index
17411
17412         * prj-attr.adb: Indicate that optional index may be specified for
17413         attributes Main, Executable, Spec, Body and some of Switches.
17414
17415         * prj-attr.ads (Attribute_Kind): New values for optional indexes
17416         (Attribute_Record): New component Optional_Index
17417
17418         * prj-com.ads (File_Name_Data): New component Index
17419
17420         * prj-dect.adb (Parse_Attribute_Declaration): Process optional index
17421
17422         * prj-env.adb (Put): Output optional index
17423
17424         * prj-makr.adb: Put indexes for multi-unit sources in SFN pragmas and
17425         attributes Spec and Body.
17426
17427         * prj-nmsc.adb: Process optional indexes
17428
17429         * prj-pp.adb: Ouput "at" for optional indexes
17430
17431         * prj-proc.adb: Take into account optional indexes
17432
17433         * prj-strt.ads, prj-strt.adb (Terms): New Boolean parameter
17434         Optional_Index. For string literal,
17435         process optional index when Optional_Index is True.
17436         (Parse_Expresion): New Boolean parameter Optional_Index
17437
17438         * prj-tree.ads, prj-tree.adb (Source_Index_Of): New function
17439         (Set_Source_Index_Of): New procedure
17440
17441         * prj-util.adb (Executable_Of, Value_Of): Take into account optional
17442         index.
17443
17444         * prj-util.ads (Executable_Of): New parameter Index
17445         (Value_Of (Name_Id, Array_Element_Id) returning Variable_Value):
17446         New parameter Src_Index, defaulted to 0.
17447
17448 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17449
17450         PR ada/15257
17451         * sem_ch3.adb (Access_Definition): If this is an access parameter
17452         whose designated type is imported through a limited_with clause, do
17453         not add the enclosing subprogram to the list of private dependents of
17454         the type.
17455
17456 2004-05-05  Ed Schonberg  <schonberg@gnat.com>
17457
17458         PR ada/15258
17459         * sem_ch6.adb (Base_Types_Match): True if one type is imported through
17460         a limited_with clause, and the other is its non-limited view.
17461
17462 2004-05-05  Thomas Quinot  <quinot@act-europe.fr>
17463
17464         * cstand.adb (Create_Standard): Initialize Stand.Boolean_Literals.
17465
17466         * exp_attr.adb, exp_ch5.adb, exp_ch9.adb, exp_disp.adb,
17467         exp_fixd.adb, sem_attr.adb, sem_dist.adb, sem_util.adb: Use
17468         Stand.Boolean_Literals to produce references to entities
17469         Standard_False and Standard_True from compile-time computed boolean
17470         values.
17471
17472         * stand.ads (Boolean_Literals): New variable, provides the entity
17473         values for False and True, for use by the expander.
17474
17475 2004-05-05  Doug Rupp  <rupp@gnat.com>
17476
17477         * 5vinmaop.adb, 5[vx]system.ads: Add Short_Address subtype
17478         5vinmaop.adb: Unchecked convert Short_Address vice Address
17479
17480         * adaint.c, raise.c: Caste CRTL function return value
17481         to avoid gcc error on 32/64 bit IVMS.
17482
17483         * Makefile.in [VMS]: Use iar archiver if host = Alpha/VMS and
17484         target = IA64/VMS.
17485
17486         * init.c[VMS]: Only call Alpha specific __gnat_error_prehandler IN_RTS.
17487
17488         * 5qsystem.ads (Address): Declare as Long_Integer
17489         (Short_Address): Declare as 32 bit subtype of Address
17490         Declare  abstract address operations to avoid gratuitous ambiguities.
17491
17492 2004-05-05  Jose Ruiz  <ruiz@act-europe.fr>
17493
17494         * gnat_rm.texi: Use the new restriction Simple_Barriers (AI-249)
17495         instead of the old Boolean_Entry_Barriers.
17496         Ditto for No_Task_Attributes_Package instead of No_Task_Attributes.
17497
17498 2004-05-05  GNAT Script  <nobody@gnat.com>
17499
17500         * Make-lang.in: Makefile automatically updated
17501
17502 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17503
17504         * 50system.ads, 59system.ads, s-thread.ads: Removed, no longer used.
17505
17506 2004-05-03  Olivier Hainque  <hainque@act-europe.fr>
17507
17508         PR ada/15152
17509
17510         * exp_ch2.adb (Expand_Current_Value): Leave Machine_Code Asm arguments
17511         alone. Replacing object references by literals is inappropriate in a
17512         so low level context.
17513
17514 2004-05-03  Arnaud Charlet  <charlet@act-europe.fr>
17515
17516         * a-exexpr.adb: Add comments
17517
17518 2004-05-03  Joel Brobecker  <brobecker@gnat.com>
17519
17520         * a-tags.adb (Tag_Table): Add Index_Check pragma Suppress. Allows us to
17521         declare the Ancestor_Tags array in Type_Specific_Data with a small size
17522         without risking a bounds check error when accessing one of its
17523         components.
17524         (Type_Specific_Data): Define Ancestor_Tags as a small array.
17525         This prevents us from hitting a limitation during the debug info
17526         generation when using stabs.
17527
17528         * a-tags.adb (Dispatch_Table): Define the Prims_Ptr component as a
17529         small array.
17530         This prevents us from hitting a limitation during the debug info
17531         generation when using stabs.
17532
17533 2004-05-03  Eric Botcazou  <ebotcazou@act-europe.fr>
17534
17535         lang-specs.h: Remove -gnatz* from specs.
17536
17537 2004-05-03  Vincent Celier  <celier@gnat.com>
17538
17539         * gprmake.adb, makegpr.ads, makegpr.adb: New files.
17540
17541         * Make-lang.in, Makefile.in: Add gprmake
17542
17543 2004-05-03  Thomas Quinot  <quinot@act-europe.fr>
17544
17545         * sem_aggr.adb: Fix typo in comment.
17546
17547 2004-05-03  Robert Dewar  <dewar@gnat.com>
17548
17549         * make.adb: Minor reformatting
17550
17551         * rtsfind.ads, rtsfind.adb: (RTU_Loaded): New function
17552
17553         * sem_attr.adb (Eval_Attribute, case Type_Class): Fix check for address
17554         so that it works when address is not a private type.
17555
17556         * sem_ch13.adb (Check_Expr_Constants, case N_Integer_Literal): Deal
17557         properly with rewritten unchecked conversions. This prevents
17558         order-of-elaboration issues that can otherwise arise.
17559         (Minimum_Size): Don't check size of access types under VMS
17560
17561         * sem_ch4.adb (Remove_Address_Interpretation): New circuit to remove
17562         interpretations of integer literals as type System.Address.
17563
17564         * sem_util.ads, sem_util.adb (Is_Descendent_Of_Address): New function
17565         (Is_Descendent_Of): New function
17566
17567 2004-05-03  Jose Ruiz  <ruiz@act-europe.fr>
17568
17569         * sem_prag.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17570         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length.
17571         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment.
17572
17573         * sem_res.adb: Use the new restriction Max_Entry_Queue_Length instead
17574         of the old Max_Entry_Queue_Depth.
17575
17576         * snames.adb: Boolean_Entry_Barriers is a synonym of Simple_Barriers.
17577         Max_Entry_Queue_Depth is a synonym of Max_Entry_Queue_Length
17578         No_Dynamic_Interrupts is a synonym of No_Dynamic_Attachment
17579
17580         * snames.ads: New entry for proper handling of Boolean_Entry_Barriers.
17581         New entry for proper handling of Max_Entry_Queue_Depth.
17582         New entry for proper handling of No_Dynamic_Interrupts.
17583
17584         * s-rident.ads: Adding restriction Simple_Barriers (AI-00249) that
17585         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17586         Adding restriction Max_Entry_Queue_Length (AI-00249) that supersedes
17587         the GNAT specific restriction Max_Entry_Queue_Depth.
17588         Adding restriction No_Dynamic_Attachment (AI-00249) that supersedes
17589         the GNAT specific restriction No_Dynamic_Interrupts.
17590
17591         * restrict.ads, restrict.adb: Use the new restriction Simple_Barriers
17592         instead of the old Boolean_Entry_Barriers.
17593         Use the new restriction No_Dynamic_Attachment instead of the old
17594         No_Dynamic_Interrupts.
17595
17596         * exp_ch9.adb: Check restriction Simple_Barriers (AI-00249) that
17597         supersedes the GNAT specific restriction Boolean_Entry_Barriers.
17598
17599         * gnatbind.adb: Use the new restriction Max_Entry_Queue_Length instead
17600         of the old Max_Entry_Queue_Depth.
17601
17602 2004-05-03  GNAT Script  <nobody@gnat.com>
17603
17604         * Make-lang.in: Makefile automatically updated
17605
17606 2004-04-29  Ed Schonberg  <schonberg@gnat.com>
17607
17608         * checks.adb (Enable_Range_Check): If the prefix of an index component
17609         is an access to an unconstrained array, perform check unconditionally.
17610
17611 2004-04-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17612
17613         * decl.c (gnat_to_gnu_field): Also call make_packable_type if
17614         Component_Clause.
17615
17616 2004-04-29  Olivier Hainque  <hainque@act-europe.fr>
17617
17618         * init.c (__gnat_install_handler, __gnat_error_handler): Remove
17619         alternate stack setting. There was no support for the tasking cases
17620         and the changes eventually caused a number of side-effect failures in
17621         the non-tasking case too.
17622
17623 2004-04-29  Eric Botcazou  <ebotcazou@act-europe.fr>
17624
17625         lang-specs.h: Redirect output to /dev/null if -gnatc or -gnatz or
17626         -gnats is passed.
17627
17628 2004-04-29  Vincent Celier  <celier@gnat.com>
17629
17630         * make.adb (Gnatmake): Increase max size of argument array for
17631         gnatbind for the potential addition of -F.
17632         If there are Stand-Alone Library projects, invoke gnatbind with -F to
17633         be sure that elaboration flags will be checked.
17634
17635         * switch-c.adb: Correct call to Scan_Pos for -gnateI
17636
17637 2004-04-29  Thomas Quinot  <quinot@act-europe.fr>
17638
17639         * sem_warn.adb (Check_References): Move '<access-variable> may be
17640         null' warning out of under Warn_On_No_Value_Assigned.
17641
17642 2004-04-29  Ed Falis  <falis@gnat.com>
17643
17644         * gnat_ugn.texi: Fixed texi error
17645
17646 2004-04-29  Robert Dewar  <dewar@gnat.com>
17647
17648         * sem_ch4.adb (Remove_Abstract_Operations): Unconditionally remove
17649         abstract operations if they come from predefined files.
17650
17651         * gnat_rm.texi: Fix bad doc for pragma Elaboration_Checks (should be
17652         Dynamic, not RM).
17653
17654         * s-addope.adb: Correct obvious error in mod function
17655
17656 2004-04-28  Andrew W. Reynolds  <awreynolds@mac.com>
17657
17658         * Makefile.in: Add target pairs for powerpc darwin*
17659         tasking support.
17660
17661         * a-intnam-darwin.ads, s-osinte-darwin.adb,
17662         s-osinte-darwin.ads, system-darwin-ppc.ads: New files.
17663
17664 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17665
17666         * Makefile.in: Add target macro definitions for s390*-linux*.
17667         * system-linux-s390.ads: New file.
17668         * system-linux-s390x.ads: New file.
17669
17670 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
17671
17672         * gnat_ugn.texi: Correct argument to @setfilename.
17673
17674 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
17675
17676         * a-exexpr.adb (Unwind_Word): New data type.
17677         (Unwind_Exception): Use it as type of Private1 and Private2.
17678
17679         * raise.c (db_action_for): Fix debug printf.
17680
17681 2004-04-27  Ed Schonberg  <schonberg@gnat.com>
17682
17683         * a-wtmoio.ads: Formal type must be a modular type, not a signed
17684         integer type.
17685
17686 2004-04-27  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17687
17688         * decl.c (gnat_to_gnu_entity, case object): Call
17689         __builtin_update_setjmp_buf.
17690
17691         * gigi.h (update_setjmp_buf): Deleted.
17692         (ADT_update_setjmp_buf_decl, update_setjmp_buf_decl): New.
17693
17694         * misc.c: (update_setjmp_buf): Deleted.
17695
17696         * trans.c (gnat_to_gnu): Call do_pending_stack_adjust and emit_queue
17697         around block of RTL.
17698
17699         * utils.c (init_gigi_decls): Initialize update_setjmp_buf.
17700
17701 2004-04-26  Thomas Quinot  <quinot@act-europe.fr>
17702
17703         * sem_dist.adb, exp_dist.adb: When constructing a RAS value for a local
17704         subprogram for which no pragma All_Calls_Remote applies, store the
17705         address of the real subprogram in the underlying record type, so local
17706         dereferences do not go through the PCS.
17707
17708 2004-04-26  Robert Dewar  <dewar@gnat.com>
17709
17710         * i-c.ads: Add some type qualifications to avoid ambiguities when
17711         compiling with s-auxdec.ads and a non-private address type.
17712
17713 2004-04-26  Arnaud Charlet  <charlet@act-europe.fr>
17714
17715         * Makefile.rtl: Fix error in previous check-in:
17716         Add s-addope.o to non tasking object list (rather than tasking object
17717         list).
17718
17719 2004-04-26  Javier Miranda  <miranda@gnat.com>
17720
17721         * sem_aggr.adb: Fix typo in comments
17722         (Resolve_Aggr_Expr): Propagate the type to the nested aggregate.
17723         Required to check the null-exclusion attribute.
17724
17725         * sem_attr.adb (Resolve_Attribute): Check the accessibility level in
17726         case of anonymous access types in record and array components. For a
17727         component definition the level is the same of the enclosing composite
17728         type.
17729
17730         * sem_ch3.adb (Analyze_Component_Declaration): In case of components
17731         that are anonymous access types the level of accessibility depends on
17732         the enclosing type declaration. In order to have this information, set
17733         the scope of the anonymous access type to the enclosing record type
17734         declaration.
17735         (Array_Type_Declaration): In case of components that are anonymous
17736         access types the level of accessibility depends on the enclosing type
17737         declaration. In order to have this information, set the scope of the
17738         anonymous access type to the enclosing array type declaration.
17739
17740         * sem_ch3.adb (Array_Type_Declaration): Set the scope of the anonymous
17741         access type.
17742
17743         * sem_ch8.adb (Analyze_Object_Renaming): Add check to verify that
17744         renaming of anonymous access-to-constant types allowed if and only if
17745         the renamed object is access-to-constant.
17746
17747         * sem_util.adb (Type_Access_Level): In case of anonymous access types
17748         that are component_definition or discriminants of a nonlimited type,
17749         the level is the same as that of the enclosing component type.
17750
17751 2004-04-26  Sergey Rybin  <rybin@act-europe.fr>
17752
17753         * sem_elim.adb: Some minor code reorganization from code reading. Fix
17754         misprint in the function name (File_Name_Match).
17755
17756 2004-04-23  Laurent GUERBY <laurent@guerby.net>
17757
17758         * Makefile.in: Remove RANLIB_TEST, use -$(RANLIB) including after
17759         install.
17760
17761 2004-04-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
17762
17763         * Make-lang.in (GNATBIND_OBJS): Add s-addope.o.
17764
17765 2004-04-23  Emmanuel Briot  <briot@act-europe.fr>
17766
17767         * adaint.c (__gnat_try_lock): No longer requires that the parent
17768         directory be writable, the directory itself is enough.
17769         (gnat_is_absolute_path): Change profile, so that the call from
17770         GNAT.OS_Lib can be made more efficient.
17771
17772         * adaint.h (gnat_is_absolute_path): Change profile, so that the call
17773         from GNAT.OS_Lib can be made more efficient.
17774
17775         * g-os_lib.adb (Is_Absolute_Path): More efficient implementation, avoid
17776         one copy of the file name. Found by code reading.
17777
17778 2004-04-23  Vincent Celier  <celier@gnat.com>
17779
17780         * gnat_ugn.texi: Add documentation for gnatmake switch -eL
17781         Correct documentation on gnatmake switches transmitted to the compiler
17782
17783         * ali.ads: Minor comment fix
17784
17785 2004-04-23  Javier Miranda  <miranda@gnat.com>
17786
17787         * sem_ch6.adb: (Confirming Types): Code cleanup
17788
17789         * decl.c (gnat_to_gnu_entity): Give support to anonymous access to
17790         subprogram types: E_Anonymous_Access_Subprogram_Type and
17791         E_Anonymous_Access_Protected_Subprogram_Type.
17792
17793 2004-04-23  Thomas Quinot  <quinot@act-europe.fr>
17794
17795         * sem_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17796         whether a pragma All_Calls_Remote applies to the subprogram on which
17797         'Access is taken.
17798         No functional change is introduced by this revision; the new parameter
17799         will be used to allow calls to local RCI subprograms to be optimized
17800         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17801         as is already done in the PolyORB implementation of the DSA.
17802
17803         * exp_dist.adb: Add a new paramter to the RAS_Access TSS indicating
17804         whether a pragma All_Calls_Remote applies to the subprogram on which
17805         'Access is taken.
17806         No functional change is introduced by this revision; the new parameter
17807         will be used to allow calls to local RCI subprograms to be optimized
17808         to not use the PCS in the case where no pragma All_Calls_Remote applies,
17809         as is already done in the PolyORB implementation of the DSA.
17810
17811 2004-04-23  Robert Dewar  <dewar@gnat.com>
17812
17813         * Makefile.rtl: Add entry for s-addope.o in run time library list
17814         * Make-lang.in: Add entry for s-addope.o to GNAT1 objects
17815         * s-addope.ads, s-addope.adb: New files.
17816
17817         * s-carsi8.adb, s-carun8.adb, s-casi16.adb, s-casi32.adb,
17818         s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb,
17819         s-finimp.adb, s-geveop.adb, s-stoele.adb: Modifications to allow
17820         System.Address to be non-private and signed.
17821
17822         * sem_elim.adb: Minor reformatting (fairly extensive)
17823         Some minor code reorganization from code reading
17824         Add a couple of ??? comments
17825
17826 2004-04-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17827
17828         * trans.c (tree_transform, build_unit_elab): Don't call getdecls.
17829         (tree_transform, case N_If_Statement): Remove non-determinism.
17830
17831         * utils.c (begin_subprog_body): Just set DECL_CONTEXT in PARM_DECL.
17832
17833 2004-04-23  Sergey Rybin  <rybin@act-europe.fr>
17834
17835         * gnat_rm.texi: Small fixes in the changes made in the 'pragma
17836         Eliminate' section.
17837
17838         * snames.ads, snames.adb: Remove Name_Homonym_Number (Homonym_Number is
17839         no longer used as a parameter name for Eliminate pragma).
17840
17841 2004-04-22  Laurent GUERBY <laurent@guerby.net>
17842
17843         PR optimization/14984
17844         PR optimization/14985
17845         * trans.c (gigi): Fix non determinism leading to bootstrap
17846         comparison failures.
17847
17848 2004-04-21  Pascal Obry  <obry@gnat.com>
17849
17850         * adaint.c (__gnat_portable_spawn): Quote first argument (argv[0])
17851         passed to spawnvp() to properly handle program pathname with spaces on
17852         Win32.
17853
17854 2004-04-21  Emmanuel Briot  <briot@act-europe.fr>
17855
17856         * g-debpoo.adb (Print_Info): Avoid extra work if Display_Slots is False.
17857         (Allocate, Deallocate, Free_Physically): Make sure the tasks are
17858         unlocked in case of exceptions.
17859
17860 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17861
17862         * gigi.h (get_target_no_dollar_in_label): Remove extern declaration.
17863         This function does not exist anymore.
17864
17865 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17866
17867         * gnatbind.adb, gnatlink.adb: Update name of imported C symbol.
17868
17869         * link.c: Move variables to the __gnat name space.
17870
17871         * Makefile.in: list link.o explicitly when needed.
17872
17873         * mlib.adb: Remove pragma Linker_Option for "link.o" from mlib.
17874
17875 2004-04-21  Javier Miranda  <miranda@gnat.com>
17876
17877         * einfo.adb (Original_Access_Type): New subprogram
17878         (Set_Original_Access_Type): New subprogram
17879         (Write_Field21_Name): Write the name of the new field
17880
17881         * einfo.ads (Original_Access_Type): New field present in access to
17882         subprogram types.
17883         Addition of two new entities: E_Anonymous_Access_Subprogram_Type, and
17884         E_Anonymous_Access_Protected_Subprogram_Type.
17885
17886         * lib-xref.adb (Output_One_Ref): Give support to anonymous access to
17887         subprogram types.
17888
17889         * lib-xref.ads (Xref_Entity_Letters): Initialize values corresponding
17890         to anonymous access to subprogram types.
17891
17892         * sem_attr.adb (Resolve_Attribute): Give support to anonymous access
17893         to subprogram types.
17894
17895         * sem_ch3.adb (Access_Definition): Complete decoration of entities
17896         corresponding to anonymous access to subprogram types.
17897         (Analyze_Component_Declaration): Add new actual to the call to
17898         subprogram replace_anonymous_access_to_protected_subprogram.
17899         (Array_Type_Declaration): Add new actual to the call to subprogram
17900         replace_anonymous_access_to_protected_subprogram.
17901         (Process_Discriminants): Add new actual to the call to subprogram
17902         replace_anonymous_access_to_protected_subprogram.
17903         (Replace_Anonymous_Access_To_Protected_Subprogram): New formal.
17904
17905         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
17906         formal.
17907
17908         * sem_ch6.adb, sem_type.adb, sem_res.adb: Give support to anonymous
17909         access to subprogram types.
17910
17911         * sem_util.adb (Has_Declarations): Addition of package_specification
17912         nodes.
17913
17914 2004-04-21  Ed Schonberg  <schonberg@gnat.com>
17915
17916         * sem_prag.adb (Make_Inline): If subprogram is a renaming, propagate
17917         inlined flags to renamed entity only if in current unit.
17918
17919 2004-04-21  Thomas Quinot  <quinot@act-europe.fr>
17920
17921         * s-parint.ads: Add DSA implementation marker.
17922
17923         * rtsfind.ads, rtsfind.adb, snames.ads, snames.adb, s-rpc.adb: Use the
17924         value of System.Partition_Interface.DSA_Implementation to determine
17925         what version of the distributed systems annex is available (no
17926         implementation, GLADE, or PolyORB).
17927
17928 2004-04-21  Joel Brobecker  <brobecker@gnat.com>
17929
17930         * targtyps.c (get_target_no_dollar_in_label): Remove, no longer used.
17931
17932 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17933
17934         * utils.c (convert, case CONSTRUCTOR, COMPONENT_REF): Do not make node
17935         with new type if alias sets differ.
17936         Fixes ACATS c41103b.
17937
17938 2004-04-21  Vincent Celier  <celier@gnat.com>
17939
17940         * prj.ads: Remove FORTRAN as an accepted language: not tested yet.
17941         Add array Lang_Args for the language specific compiling argument
17942         switches.
17943
17944         * gnat_ugn.texi: Explain in more details when a library is rebuilt.
17945
17946 2004-04-21  Sergey Rybin  <rybin@act-europe.fr>
17947
17948         * gnat_rm.texi: Update the descripton of the Eliminate pragma
17949         according to the recent changes in the format of the parameters of the
17950         pragma (replacing Homonym_Number with Source_Location).
17951
17952 2004-04-19  Arnaud Charlet  <charlet@act-europe.fr>
17953
17954         * 5isystem.ads: Removed, unused.
17955
17956         * gnat_rm.texi: Redo 1.13 change.
17957
17958 2004-04-19  Robert Dewar  <dewar@gnat.com>
17959
17960         * s-stoele.ads: Clean up definition of Storage_Offset (the new
17961         definition is cleaner, avoids the kludge of explicit Standard operator
17962         references, and also is consistent with a visible System.Address with
17963         no visible operations.
17964
17965         * s-geveop.adb: Add declarations to avoid assumption of visible
17966         operations on type System.Address (since these might not be available
17967         if Address is a non-private type for which the operations
17968         are made abstract).
17969
17970         * sem_eval.adb: Minor reformatting
17971
17972         * s-carsi8.ads, s-carun8.ads, s-casi16.ads, s-casi32.ads,
17973         s-casi64.ads, s-caun16.ads, s-caun32.ads, s-caun64.ads: Minor
17974         reformatting (new function spec format).
17975
17976         * s-auxdec.adb, s-carsi8.adb, s-carun8.adb, s-casi16.adb,
17977         s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb,
17978         s-caun64.adb: Add declarations to avoid assumption of visible
17979         operations on type System.Address (since these might not be available
17980         if Address is a non-private type for which the operations are made
17981         abstract).
17982
17983         * lib.ads, lib.adb (Synchronize_Serial_Number): New procedure.
17984
17985         * exp_intr.adb: Minor comment update
17986
17987         * exp_aggr.adb, exp_attr.adb, exp_ch13.adb: Minor reformatting.
17988
17989         * 5omastop.adb: Add declarations to avoid assumption of visible
17990         operations on type System.Address (since these might not be available
17991         if Address is a non-private type for which the operations
17992         are made abstract).
17993
17994 2004-04-19  Vincent Celier  <celier@gnat.com>
17995
17996         * switch-m.adb: (Scan_Make_Switches): Process new switch -eL
17997
17998         * prj-pars.ads (Parse): New Boolean parameter Process_Languages,
17999         defaulted to Ada.
18000
18001         * prj-proc.adb (Process): New Boolean parameter Process_Languages,
18002         defaulted to Ada.
18003         Call Check with Process_Languages.
18004         (Check): New Boolean parameter Process_Languages. Call Recursive_Check
18005         with Process_Languages.
18006         (Recursive_Check): New Boolean parameter Process_Languages. Call
18007         Nmsc.Ada_Check or Nmsc.Other_Languages_Check according to
18008         Process_Languages.
18009
18010         * prj-proc.ads (Process): New Boolean parameter Process_Languages,
18011
18012         * prj-util.ads, prj-util.adb (Executable_Of): New Boolean
18013         parameter Ada_Main, defaulted to True.
18014         Check for Ada specific characteristics only when Ada_Main is True.
18015
18016         * opt.ads: (Follow_Links): New Boolean flag for gnatmake
18017
18018         * prj.adb: (Project_Empty): Add new Project_Data components.
18019
18020         * prj.ads: New types and tables for non Ada languages.
18021         (Project_Data): New components Languages, Impl_Suffixes,
18022         First_Other_Source, Last_Other_Source, Imported_Directories_Switches,
18023         Include_Path, Include_Data_Set.
18024
18025         * prj-env.ads, prj-env.adb: Minor reformatting
18026
18027         * prj-nmsc.ads, prj-nmsc.adb: (Other_Languages_Check): New procedure
18028         Put subprograms in alphabetical order
18029
18030         * prj-pars.adb (Parse): New Boolean parameter Process_Languages,
18031         defaulted to Ada; Call Prj.Proc.Process with Process_Languages and
18032         Opt.Follow_Links.
18033
18034         * mlib-prj.adb: Back out modification in last version, as they are
18035         incorrect.
18036         (Build_Library.Check_Libs): Remove useless pragma Warnings (Off)
18037
18038         * make.adb: (Mains): Moved to package Makeutl
18039         (Linker_Opts): Moved to package Makeutl
18040         (Is_External_Assignment): Moved to package Makeutl
18041         (Test_If_Relative_Path): Moved to package Makeutl
18042         (Gnatmake): Move sorting of linker options to function
18043         Makeutl.Linker_Options_Switches.
18044
18045         * makeutl.ads, makeutl.adb: New files.
18046
18047         * Makefile.in: Add makeutl.o to the object files for gnatmake
18048
18049         * makeusg.adb: Add line for new switch -eL.
18050
18051         * gnatls.adb (Image): New function.
18052         (Output_Unit): If in verbose mode, output the list of restrictions
18053         specified by pragmas Restrictions.
18054
18055         * 5bml-tgt.adb, 5vml-tgt.adb (Build_Dynamic_Library): Do not use
18056         Text_IO.
18057
18058         * a-calend.adb (Split): Shift the date by multiple of 56 years, if
18059         needed, to put it in the range 1970 (included) - 2026 (excluded).
18060         (Time_Of): Do not shift Unix_Min_Year (1970).
18061         Shift the date by multiple of 56 years, if needed, to put it in the
18062         range 1970 (included) - 2026 (excluded).
18063
18064         * adaint.h, adaint.c (__gnat_set_executable): New function.
18065
18066 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18067
18068         * trans.c (tree_transform, case N_Subprogram_Body): Temporarily push
18069         and pop GC context.
18070         (tree_transform, case N_Procedure_Call): Fix typo in setting TREE_TYPE.
18071         (tree_transform, case N_Label): Don't set LABEL_STMT_FIRST_IN_EH.
18072         (tree_transform, case N_Procedure_Call_Statement): Build a tree.
18073         (tree_transform, case N_Code_Statement): Likewise.
18074         (gnat_expand_stmt, case LABEL_STMT): Don't look at
18075         LABEL_STMT_FIRST_IN_EH.
18076         (gnat_expand_stmt, case ASM_STMT): New case.
18077
18078         * utils2.c (build_unary_op): Properly set TREE_READONLY of
18079         UNCONSTRAINED_ARRAY_REF.
18080
18081         * utils.c (poplevel): Temporarily push/pop GC context around inline
18082         function expansion.
18083
18084         * decl.c (maybe_variable): Properly set TREE_READONLY of
18085         UNCONSTRAINED_ARRAY_REF.
18086         (make_packable_type): Only reference TYPE_IS_PADDING_P for RECORD_TYPE.
18087
18088         * ada-tree.def: (ASM_STMT): New.
18089
18090         * ada-tree.h: (LABEL_STMT_FIRST_IN_EH): Deleted.
18091         (ASM_STMT_TEMPLATE, ASM_STMT_OUTPUT, ASM_STMT_ORIG_OUT,
18092         ASM_STMT_INPUT): New.
18093         (ASM_STMT_CLOBBER): Likewise.
18094
18095 2004-04-19  Thomas Quinot  <quinot@act-europe.fr>
18096
18097         * a-except.adb, s-parint.ads, s-parint.adb, types.ads, types.h: Use
18098         general rcheck mechanism to raise Program_Error for E.4(18), instead
18099         of a custom raiser in System.Partition_Interface.
18100         Part of general cleanup work before PolyORB integration.
18101
18102         * snames.ads, snames.adb: Add new runtime library entities and names
18103         for PolyORB DSA.
18104
18105         * sem_dist.ads, sem_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18106         exp_dist.
18107         (Build_Subprogram_Id): New subprogram provided by exp_dist
18108         Code reorganisation in preparation for PolyORB integration.
18109
18110         * exp_dist.ads, exp_dist.adb (Get_Subprogram_Id): Move from sem_dist to
18111         exp_dist.
18112         (Build_Subprogram_Id): New subprogram provided by exp_dist
18113
18114         * sem_ch4.adb (Analyze_One_Call): Fix error message for mismatch in
18115         actual parameter types for call to dereference of an
18116         access-to-subprogram type.
18117
18118         * rtsfind.ads: Add new runtime library entities and names for PolyORB
18119         DSA.
18120
18121         * gnatlink.adb (Value): Remove. Use Interfaces.C.Strings.Value
18122         instead, which has the same behaviour here since we never pass it a
18123         NULL pointer.
18124
18125         * link.c (run_path_option, Solaris case): Use -Wl, as for other
18126         platforms.
18127
18128         * Makefile.in: adjust object file lists for gnatlink and gnatmake
18129         to account for new dependency upon Interfaces.C.Strings + link.o
18130         For x86 FreeBSD, use 86numaux.
18131
18132         * make.adb, gnatcmd.adb: Linker_Library_Path_Option has been moved up
18133         from Mlib.Tgt to Mlib.
18134
18135         * mlib.ads, mlib.adb (Linker_Library_Path_Option): New subprogram, now
18136         target-independent.
18137
18138         * mlib-tgt.ads, mlib-tgt.adb (Linker_Library_Path_Option): Remove
18139         target-specific versions of this subprogram, now implemented as a
18140         target-independent function in Mlib.
18141
18142         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb, 5lml-tgt.adb,
18143         5sml-tgt.adb, 5vml-tgt.adb, 5zml-tgt.adb, 5wml-tgt.adb
18144         (Linker_Library_Path_Option): Remove target-specific versions of this
18145         subprogram, now implemented as a target-independent function in Mlib.
18146
18147         * atree.adb: (Allocate_Initialize_Node): New subprogram.
18148         Factors out node table slots allocation.
18149         (Fix_Parents): New subprogram.
18150         Encapsulate the pattern of fixing up parent pointers for syntactic
18151         children of a rewritten node.
18152         (New_Copy_Tree): Use New_Copy to copy non-entity nodes.
18153         (Rewrite): Use New_Copy when creating saved copy of original node.
18154         (Replace): Use Copy_Node to copy nodes.
18155
18156 2004-04-19  Javier Miranda  <miranda@gnat.com>
18157
18158         * sprint.adb (Sprint_Node_Actual): Give support to the new
18159         Access_To_Subprogram node available in Access_Definition nodes. In
18160         addition, give support to the AI-231 node fields: null-exclusion,
18161         all-present, constant-present.
18162
18163         * sem_util.ads, sem_util.adb: (Has_Declarations): New subprogram
18164
18165         * sinfo.ads, sinfo.adb:
18166         New field Access_To_Subprogram_Definition in Access_Definition nodes
18167
18168         * sem_ch6.adb (Process_Formals): Move here the code that creates and
18169         decorates internal subtype declaration corresponding to the
18170         null-excluding formal. This code was previously in Set_Actual_Subtypes.
18171         In addition, carry out some code cleanup on this code. In case of
18172         access to protected subprogram call
18173         Replace_Anonymous_Access_To_Protected_Subprogram.
18174         (Set_Actual_Subtypes): Code cleanup.
18175
18176         * sem_ch8.adb (Analyze_Object_Renaming): Remove un-necessary call to
18177         Find_Type in case of anonymous access renamings. Add warning in case of
18178         null-excluding attribute used in anonymous access renaming.
18179
18180         * sem_ch3.ads (Replace_Anonymous_Access_To_Protected_Subprogram): New
18181         subprogram
18182
18183         * sem_ch3.adb (Replace_Anonymous_Access_To_Protected_Subprogram): New
18184         subprogram.
18185         (Access_Definition): In case of anonymous access to subprograms call
18186         the corresponding semantic routine to decorate the node.
18187         (Access_Subprogram_Declaration): Addition of some comments indicating
18188         some code that probably should be added here. Detected by comparison
18189         with the access_definition subprogram.
18190         (Analyze_Component_Declaration): In case of access to protected
18191         subprogram call Replace_Anonymous_Access_To_Protected.
18192         (Array_Type_Declaration): In case of access to protected subprogram call
18193         Replace_Anonymous_Access_To_Protected_Subprogram.
18194         (Process_Discriminants): In case of access to protected subprogram call
18195         Replace_Anonymous_Access_To_Protected_Subprogram.
18196
18197         * par.adb (P_Access_Definition): New formal that indicates if the
18198         null-exclusion part was present.
18199         (P_Access_Type_Definition): New formal that indicates if the caller has
18200         already parsed the null-excluding part.
18201
18202         * par-ch3.adb (P_Subtype_Declaration): Code cleanup.
18203         (P_Identifier_Declarations): Code cleanup and give support to renamings
18204         of anonymous access to subprogram types.
18205         (P_Derived_Type_Def_Or_Private_Ext_Decl): Code cleanup.
18206         (P_Array_Type_Definition): Give support to AI-254.
18207         (P_Component_Items): Give support to AI-254.
18208         (P_Access_Definition): New formal that indicates if the header was
18209         already parsed by the caller.
18210         (P_Access_Type_Definition): New formal that indicates if the caller has
18211         already parsed the null-excluding part.
18212
18213         * par-ch6.adb (P_Formal_Part): Add the null-excluding parameter to the
18214         call to P_Access_Definition.
18215
18216 2004-04-19  Geert Bosch  <bosch@gnat.com>
18217
18218         * checks.adb (Apply_Float_Conversion_Check): New procedure to implement
18219         the delicate semantics of floating-point to integer conversion.
18220         (Apply_Type_Conversion_Checks): Use Apply_Float_Conversion_Check.
18221
18222         * eval_fat.adb (Machine_Mantissa): Moved to spec.
18223         (Machine_Radix): New function.
18224
18225         * eval_fat.ads (Machine_Mantissa): Moved from body for use in
18226         conversion checks.
18227         (Machine_Radix): New function also for use in conversion checks.
18228
18229 2004-04-19  Ed Schonberg  <schonberg@gnat.com>
18230
18231         * par-prag.adb (Source_File_Name_Project): Fix typo in error message.
18232
18233         * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Call analyze
18234         to decorate the access-to-protected subprogram and the equivalent type.
18235
18236         * checks.adb (Null_Exclusion_Static_Checks): Code cleanup. Give support
18237         to anonymous access to subprogram types.
18238
18239         * exp_ch4.adb (Expand_N_In): Preserve Static flag before
18240         constant-folding, for legality checks in contexts that require an RM
18241         static expression.
18242
18243         * exp_ch6.adb (Expand_N_Function_Call): If call may generate large
18244         temporary but stack checking is not enabled, increment serial number
18245         to so that symbol generation is consistent with and without stack
18246         checking.
18247
18248         * exp_util.ads, exp_util.adb (May_Generate_Large_Temp): Predicate is
18249         independent on whether stack checking is enabled, caller must check
18250         the corresponding flag.
18251
18252         * sem_ch3.adb (Constrain_Index): Index bounds given by attributes need
18253         range checks.
18254         (Build_Derived_Concurrent_Type): Inherit Is_Constrained flag from
18255         parent if it has discriminants.
18256         (Build_Derived_Private_Type): Constructed full view does
18257         not come from source.
18258         (Process_Discriminants): Default discriminants on a tagged type are
18259         legal if this is the internal completion of a private untagged
18260         derivation.
18261
18262         * sem_ch6.adb (Set_Actual_Subtypes): The generated declaration needs
18263         no constraint checks, because it corresponds to an existing object.
18264
18265         * sem_prag.adb (Process_Convention): Pragma applies
18266         only to subprograms in the same declarative part, i.e. the same unit,
18267         not the same scope.
18268
18269         * sem_res.adb (Valid_Conversion): In an instance or inlined body,
18270         ignore type mismatch on a numeric conversion if expression comes from
18271         expansion.
18272
18273 2004-04-19  Sergey Rybin  <rybin@act-europe.fr>
18274
18275         * sem_elim.adb (Process_Eliminate_Pragma): Remove the processing for
18276         Homonym_Number parameter, add processing for Source_Location parameter
18277         corresponding.
18278         (Check_Eliminated): Remove the check for homonym numbers, add the check
18279         for source location traces.
18280
18281         * sem_elim.ads (Process_Eliminate_Pragma): Replace Arg_Homonym_Number
18282         with Arg_Source_Location corresponding to the changes in the format of
18283         the pragma.
18284
18285         * sem_prag.adb: (Analyze_Pragma): Changes in the processing of
18286         Eliminate pragma corresponding to the changes in the format of the
18287         pragma: Homonym_Number is replaced with Source_Location, two ways of
18288         distinguishing homonyms are mutially-exclusive.
18289
18290 2004-04-19  Joel Brobecker  <brobecker@gnat.com>
18291
18292         * get_targ.ads (Get_No_Dollar_In_Label): Remove.
18293
18294         * exp_dbug.adb (Output_Homonym_Numbers_Suffix): Remove use of
18295         No_Dollar_In_Label, no longer necessary, as it is always True.
18296         (Strip_Suffixes): Likewise.
18297
18298 2004-04-19  Gary Dismukes  <dismukes@gnat.com>
18299
18300         * s-stalib.ads (type Exception_Code): Use Integer'Size for exponent of
18301         modulus for compatibility with size clause on targets with 16-bit
18302         Integer.
18303
18304         * layout.adb (Discrimify): In the case of private types, set Vtyp to
18305         full type to fix type mismatches on calls to size functions for
18306         discriminant-dependent array components.
18307
18308 2004-04-19  Jerome Guitton  <guitton@act-europe.fr>
18309
18310         * Makefile.in (gnatlib-zcx): New target, for building a ZCX run-time
18311         lib.
18312
18313 2004-04-19  Pascal Obry  <obry@gnat.com>
18314
18315         * mdll-utl.adb (Locate): New version is idempotent.
18316
18317 2004-04-17  Laurent Guerby <laurent@guerby.net>
18318
18319         PR ada/14988 (partial)
18320         * impunit.adb: Fix typo.
18321
18322 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
18323
18324         * Make-lang.in: Remove obsolete rts-none, rts-cert, install-rts-none,
18325         and install-rts-cert targets.  Remove all gnatlib and gnattools
18326         targets and all other rts-* targets (moved to libada).  Remove (now)
18327         unused Make variables CHMOD, CHMOD_AX_FLAGS, shext, THREAD_KIND,
18328         TRACE, GNATLIBFLAGS, GNATLIBCFLAGS.
18329
18330 2004-04-08  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18331
18332         * trans.c (tree_transform): Shortcut returning error_mark_node for
18333         statements in annotate_only_mode.
18334         (tree_transform, case N_Label, case N_Return_Statement,
18335         N_Goto_Statement): Make statement tree instead of generating code.
18336         (tree_transform, case N_Assignment_Statement): No longer check
18337         type_annotate_only.
18338         (gnat_expand_stmt, case GOTO_STMT, case LABEL_STMT, case
18339         RETURN_STMT): New.
18340         (first_nondeleted_insn, build_block_stmt, make_expr_stmt_from_rtl):
18341         New fcns.
18342         (gnat_to_gnu): Collect any RTL generated and deal with it.
18343         (tree_transform, case N_And_Then): Refine when have non-null RTL_EXPR.
18344         (tree_transform case N_If_Statement): Rewrite to make IF_STMT.
18345         (gnat_expand_stmt, case BLOCK_STMT, IF_STMT): New cases.
18346
18347         * ada-tree.def (GOTO_STMT, LABEL_STMT, RETURN_STMT): New tree nodes.
18348
18349         * ada-tree.def (EXPR_STMT): Fix typo in name.
18350         (BLOCK_STMT, IF_STMT): New nodes.
18351
18352         * ada-tree.h (GOTO_STMT_LABEL, LABEL_STMT_LABEL,
18353         LABEL_STMT_FIRST_IN_EH): New macros.
18354         (RETURN_STMT_EXPR): Likewise.
18355
18356         * ada-tree.h: (BLOCK_STMT_LIST, IF_STMT_COND, IF_STMT_TRUE,
18357         IF_STMT_ELSEIF, IF_STMT_ELSE): New macros.
18358
18359 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18360
18361         * atree.ads: Correct documentation on extended nodes.
18362
18363         * link.c: Set run_path_option for FreeBSD.
18364
18365 2004-04-08  Vincent Celier  <celier@gnat.com>
18366
18367         * mlib-prj.adb (Build_Library.Check_Libs): On OpenVMS, if dec.ali is
18368         one of the ALI file, do not link with DEC lib.
18369
18370         * par.adb Remove the last two characters ("%s" or "%b") when checking
18371         if a language defined unit may be recompiled.
18372
18373 2004-04-08  Ed Schonberg  <schonberg@gnat.com>
18374
18375         * sem_ch4.adb (Remove_Abstract_Operations): Improve error message when
18376         removal of abstract operation leaves no possible interpretation for
18377         expression.
18378
18379         * sem_eval.adb (Eval_Qualified_Expression): Use
18380         Set_Raises_Constraint_Error on node when needed, so that it does not
18381         get optimized away by subsequent optimizations.
18382
18383         * sem_res.adb (Resolve_Intrinsic_Operator): Save interpretations of
18384         operands even when they are not wrapped in a type conversion.
18385
18386 2004-04-08  Olivier Hainque  <hainque@act-europe.fr>
18387
18388         * sem_prag.adb (Set_Exported): Warn about making static as result of
18389         export only when the export is coming from source. This may be not
18390         be true e.g. on VMS where we expand export pragmas for exception codes
18391         together with imported or exported exceptions, and we don't want the
18392         user to be warned about something he didn't write.
18393
18394 2004-04-08  Thomas Quinot  <quinot@act-europe.fr>
18395
18396         * sem_util.adb (Note_Possible_Modification): Reorganize to remove code
18397         duplication between normal entities and those declared as renamings.
18398         No functional change.
18399
18400         * s-fileio.ads (Form): Remove pragma Inline, as we cannot currently
18401         inline functions returning an unconstrained result.
18402
18403 2004-04-08  Eric Botcazou  <ebotcazou@act-europe.fr>
18404
18405         * utils.c (type_for_mode): Handle BLKmode and VOIDmode properly, to
18406         conform to what other front-ends do.
18407
18408 2004-04-08  Doug Rupp  <rupp@gnat.com>
18409
18410         * 5vml-tgt.adb: Use Gas instead of VMS Macro to build auto init shared
18411         libraries.
18412
18413 2004-04-06  Pascal Obry  <obry@gnat.com>
18414
18415         * adaint.c (DIR_SEPARATOR): Properly set DIR_SEPARATOR on Win32.
18416
18417         * osint.adb (Program_Name): Do not look past a directory separator.
18418
18419 2004-04-06  Thomas Quinot  <quinot@act-europe.fr>
18420
18421         * atree.adb: Update comment (Rewrite_Substitute_Node no longer exists).
18422
18423         * exp_ch6.adb (Rewrite_Function_Call): Clarify documentation of
18424         requirement for preserving a copy of the original assignment node.
18425
18426         * sinfo.ads: Update comment (Original_Tree -> Original_Node).
18427
18428 2004-04-06  Olivier Hainque  <hainque@act-europe.fr>
18429
18430         (__gnat_initialize [Vxworks]): Enable references to the crtstuff bits
18431         when supported.
18432
18433 2004-04-06  Ed Schonberg  <schonberg@gnat.com>
18434
18435         * sem_ch4.adb (Remove_Abstract_Operations): Extend previous changes to
18436         operator calls in functional notation, and apply
18437         Universal_Interpretation to operands, not to their type.
18438
18439 2004-04-06  Robert Dewar  <dewar@gnat.com>
18440
18441         * 5wdirval.adb: Minor reformatting
18442
18443 2004-04-06  Ed Falis  <falis@gnat.com>
18444
18445         * gnat_rm.texi: Improve a reference to the GCC manual
18446
18447 2004-04-05  Vincent Celier  <celier@gnat.com>
18448
18449         * adaint.h, adaint.c: Add function __gnat_named_file_length
18450
18451         * impunit.adb: Add Ada.Directories to the list
18452
18453         * Makefile.in: Add VMS and Windows versions of
18454         Ada.Directories.Validity package body.
18455
18456         * Makefile.rtl: Add a-direct and a-dirval
18457
18458         * mlib-tgt.ads: Minor comment update.
18459
18460         * a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
18461         a-direct.ads, a-direct.adb: New files.
18462
18463 2004-04-05  Vincent Celier  <celier@gnat.com>
18464
18465         PR ada/13620
18466         * make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
18467         just to the compiler.
18468
18469 2004-04-05  Robert Dewar  <dewar@gnat.com>
18470
18471         * a-except.adb (Exception_Name_Simple): Make sure lower bound of
18472         returned string is 1.
18473
18474         * ali-util.adb: Use proper specific form for Warnings (Off, entity)
18475
18476         * eval_fat.ads: Minor reformatting
18477
18478         * g-curexc.ads: Document that lower bound of returned string values
18479         is always one.
18480
18481         * gnatlink.adb: Add ??? comment for previous change
18482         (need to document why this is VMS specific)
18483
18484         * s-stoele.ads: Minor reformatting
18485
18486         * tbuild.ads: Minor reformatting throughout (new function specs)
18487
18488         * par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
18489         after WITH.
18490
18491         * scng.adb: Minor reformatting
18492
18493 2004-04-05  Geert Bosch  <bosch@gnat.com>
18494
18495         * eval_fat.adb (Machine): Remove unnecessary suppression of warning.
18496         (Leading_Part): Still perform truncation to machine number if the
18497         specified radix_digits is greater or equal to machine_mantissa.
18498
18499 2004-04-05  Javier Miranda  <miranda@gnat.com>
18500
18501         * par-ch3.adb: Complete documentation of previous change
18502         Correct wrong syntax documentation of the OBJECT_DECLARATION rule
18503         (aliased must appear before constant).
18504
18505         * par-ch4.adb: Complete documentation of previous change.
18506
18507         * par-ch6.adb: Complete documentation of previous change.
18508
18509         * sinfo.ads: Fix typo in commment.
18510
18511 2004-04-05  Ed Schonberg  <schonberg@gnat.com>
18512
18513         * sem_ch3.adb (Inherit_Components): If derived type is private and has
18514         stored discriminants, use its discriminants to constrain parent type,
18515         as is done for non-private derived record types.
18516
18517         * sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
18518         Ada 2005 AI-310: an abstract non-dispatching operation is not a
18519         candidate interpretation in an overloaded call.
18520
18521         * tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
18522         expression is Null and target type is not an access type (e.g. a
18523         non-private address type).
18524
18525 2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
18526
18527         * exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
18528         statement whose right-hand side is an inlined call, save a copy of the
18529         original assignment subtree to preserve enough consistency for
18530         Analyze_Assignment to proceed.
18531
18532         * sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
18533         complete assignment subtree which is now unnecessary, as the expansion
18534         of inlined call has been improved to preserve a consistent assignment
18535         tree.  Note_Possible_Modification must be called only
18536         after checks have been applied, or else unnecessary checks will
18537         be generated.
18538
18539         * sem_util.adb (Note_Possible_Modification): Reorganise the handling
18540         of explicit dereferences that do not Come_From_Source:
18541          - be selective on cases where we must go back to the dereferenced
18542            pointer (an assignment to an implicit dereference must not be
18543            recorded as modifying the pointer);
18544          - do not rely on Original_Node being present (Analyze_Assignment
18545            calls Note_Possible_Modification on a copied tree).
18546
18547         * sem_warn.adb (Check_References): When an unset reference to a pointer
18548         that is never assigned is encountered, prefer '<pointer> may be null'
18549         warning over '<pointer> is never assigned a value'.
18550
18551 2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
18552
18553         * tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
18554         the ABI.
18555
18556 2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
18557
18558         * 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
18559         libexc. We currently don't reference anything in this library and
18560         linking it in triggers linker warnings we don't want to see.
18561
18562         * init.c: Update comments.
18563
18564 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18565
18566         * decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
18567         * utils.c (create_field_decl): Likewise.
18568         * utils2.c (build_unary_op, gnat_build_constructor): Likewise.
18569
18570 2004-04-02  Arnaud Charlet  <charlet@act-europe.fr>
18571
18572         * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Remove RCS tags.
18573         Replace ifinfo by ifnottex, to make makeinfo --html happy again.
18574         Add info directory entry and category.
18575
18576 2004-04-02  Jan Hubicka  <jh@suse.cz>
18577
18578         * utils.c: Include function.h
18579         (end_subprog_body): Clear DECL_STRUCT_FUNCTION.
18580
18581 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18582
18583         PR ada/14150
18584         * Make-lang.in: Clean up generation of documentation
18585
18586         * gnat-style.texi, gnat_rm.texi, ug_words: Resync with AdaCore version
18587
18588         * xgnatug.adb: Removed, replaced by xgnatugn.adb
18589
18590         * xgnatugn.adb: Replaces xgnatug.adb
18591
18592         * gnat_ug.texi: Removed, replaced by gnat_ugn.texi
18593
18594         * gnat_ugn.texi: Replaces gnat_ug.texi. Resync with AdaCore version
18595
18596         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
18597         gnat_ug_wnt.texi: Removed.
18598
18599 2004-04-01  Arnaud Charlet  <charlet@act-europe.fr>
18600
18601         * utils2.c: Update copyright notice.
18602
18603 2004-04-01  Robert Dewar  <dewar@gnat.com>
18604
18605         * checks.adb: Minor reformatting throughout
18606         Note that prev checkin added RM reference to alignment warning
18607
18608 2004-04-01  Ed Schonberg  <schonberg@gnat.com>
18609
18610         * exp_aggr.adb (Get_Component_Val): Treat a string literal as
18611         non-static when building aggregate for bit-packed array.
18612
18613         * exp_ch4.adb (Expand_N_Slice): If a packed slice is an actual of a
18614         function call that is itself the actual in a procedure call, build
18615         temporary for it.
18616
18617         * exp_pakd.adb (Expand_Bit_Packed_Element_Set): If right-hand side is
18618         a string literal, create a temporary for it, constant folding only
18619         handles scalars here.
18620
18621 2004-04-01  Vincent Celier  <celier@gnat.com>
18622
18623         * ali-util.adb (Post_Scan, Error_Msg, Error_Msg_S, Error_Msg_SC,
18624         Error_Msg_SP): New empty procedures to instantiate the Scanner.
18625         (Style, Scanner): Instantiations of Styleg and Scng to be able to scan
18626         tokens.
18627         (Accumulate_Checksum, Initialize_Checksum): Remove procedures.
18628         (Get_File_Checksum): Use the instantiated scanner to scan all the tokens
18629         and get the checksum.
18630
18631         * make.adb (Gnatmake): Do not insert into Q the Main_Source if it is
18632         already in the Q.
18633         Increase the Marking_Label at the end of the Multiple_Main_Loop,
18634         instead of at the beginning.
18635
18636         * osint.adb (Lib_File_Name): Use Multi_Unit_Index_Character, not '~'
18637         directly.
18638         (Osint package elaboration): Change Multi_Unit_Index_Character to '$' if
18639         on VMS.
18640
18641         * osint.ads (Multi_Unit_Index_Character): New Character global variable
18642
18643         * osint-c.adb (Set_Library_Info_Name): Use Multi_Unit_Index_Character,
18644         not '~' directly.
18645
18646         * par.adb: Remove test on file name to detect language defined units.
18647         Add test on unit name, after parsing, to detect language defined units
18648         that are not compiled with -gnatg (except System.RPC and its children)
18649
18650         * par-ch10.adb (P_Compilation_Unit): In multi-unit sources, scan the
18651         following units without style checking.
18652
18653         * switch-c.adb: Change -gnatC to -gnateI
18654
18655         * usage.adb: Document new switch -gnateInnn
18656
18657         * scng.adb (Accumulate_Token_Checksum): New procedure
18658         (Scan): Call Accumulate_Token_Checksum after each identifier, reserved
18659         word or literal number.
18660         (Scan.Nlit.Scan_Integer): Do not accumulate internal '_' in litteral
18661         numbers.
18662
18663 2004-04-01  Thomas Quinot  <quinot@act-europe.fr>
18664
18665         * a-tasatt.adb,
18666         g-comlin.adb, sinput-c.adb, s-secsta.adb, s-tpobop.adb,
18667         switch-m.adb, 56taprop.adb, 5ginterr.adb, 5gmastop.adb,
18668         5staprop.adb, 5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb,
18669         5vtpopde.adb: Add missing 'constant' keywords.
18670
18671 2004-04-01  Javier Miranda  <miranda@gnat.com>
18672
18673         * par-ch4.adb: (P_Allocator): Code cleanup
18674
18675         * sem_ch3.adb (Access_Definition): Properly set the null-excluding
18676         attribute.
18677
18678         * sinfo.ads: Complete documentation of previous change
18679
18680 2004-04-01  Pascal Obry  <obry@gnat.com>
18681
18682         * gnatlink.adb (Process_Binder_File): Remove duplicate linker options
18683         only on VMS.  This special handling was done because an old GNU/ld bug
18684         on Windows which has been fixed.
18685
18686 2004-04-01  GNAT Script  <nobody@gnat.com>
18687
18688         * Make-lang.in: Makefile automatically updated
18689
18690 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18691
18692         * decl.c (gnat_to_gnu_entity, make_type_from_size):
18693         Use TYPE_UNSIGNED, not TREE_UNSIGNED.
18694         * trans.c (tree_transform, convert_with_check): Likewise.
18695         * utils.c (gnat_signed_or_unsigned_type): Likewise.
18696         (build_vms_descriptor, unchecked_convert): Likewise.
18697         * utils2.c (nonbinary_modular_operation): Likewise.
18698
18699 2004-03-29  Javier Miranda  <miranda@gnat.com>
18700
18701         * checks.adb (Null_Exclusion_Static_Checks): New subprogram
18702         (Install_Null_Excluding_Check): Local subprogram that determines whether
18703         an access node requires a runtime access check and if so inserts the
18704         appropriate run-time check.
18705         (Apply_Access_Check): Call Install_Null_Excluding check if required
18706         (Apply_Constraint_Check): Call Install_Null_Excluding check if required
18707
18708         * checks.ads: (Null_Exclusion_Static_Checks): New subprogram
18709
18710         * einfo.ads: Fix typo in comment
18711
18712         * exp_ch3.adb (Build_Assignment): Generate conversion to the
18713         null-excluding type to force the corresponding run-time check.
18714         (Expand_N_Object_Declaration): Generate conversion to the null-excluding
18715         type to force the corresponding run-time check.
18716
18717         * exp_ch5.adb (Expand_N_Assignment_Statement): Generate conversion to
18718         the null-excluding type to force the corresponding run-time check.
18719
18720         * exp_ch6.adb (Expand_Call): Do not generate the run-time check in
18721         case of access types unless they have the null-excluding attribute.
18722
18723         * sprint.adb (Sprint_Node_Actual): Give support to the null-exclusing
18724         part.
18725
18726         * exp_util.ads: Fix typo in comment
18727
18728         * par.adb (P_Null_Exclusion): New subprogram
18729         (P_Subtype_Indication): New formal that indicates if the null-excluding
18730         part has been scanned-out and it was present
18731
18732         * par-ch3.adb, par-ch4.adb, par-ch6.adb: Give support to AI-231
18733
18734         * sem_aggr.adb: (Check_Can_Never_Be_Null): New subprogram
18735         (Aggregate_Constraint_Checks): Generate conversion to the null-excluding
18736         type to force the corresponding run-time check
18737         (Resolve_Aggregate): Propagate the null-excluding attribute to the array
18738         components
18739         (Resolve_Array_Aggregate): Carry out some static checks
18740         (Resolve_Record_Aggregate.Get_Value): Carry out some static check
18741
18742         * sem_ch3.adb (Access_Definition): In Ada 0Y the Can_Never_Be_Null
18743         attribute must be set only if specified by means of the null-excluding
18744         part. In addition, we must also propagate the access-constant attribute
18745         if present.
18746         (Access_Subprogram_Declaration, Access_Type_Declaration,
18747         Analyze_Component_Declaration, Analyze_Object_Declaration,
18748         Array_Type_Declaration, Process_Discriminants,
18749         Analyze_Subtype_Declaration): Propagate the null-excluding attribute
18750         and carry out some static checks.
18751         (Build_Derived_Access_Type): Set the null-excluding attribute
18752         (Derived_Type_Declaration, Process_Subtype): Carry out some static
18753         checks.
18754
18755         * sem_ch4.adb (Analyze_Allocator): Carry out some static checks
18756
18757         * sem_ch5.adb (Analyze_Assignment): Carry out some static checks
18758
18759         * sem_ch6.adb (Process_Formals): Carry out some static checks.
18760         (Set_Actual_Subtypes): Generate null-excluding subtype if the
18761         null-excluding part was present; it is not required to be done here in
18762         case of anonymous access types.
18763         (Set_Formal_Mode): Ada 0Y allows anonymous access to have the null
18764         value.
18765
18766         * sem_res.adb (Resolve_Actuals): Carry out some static check
18767         (Resolve_Null): Allow null in anonymous access
18768
18769         * sinfo.adb: New subprogram Null_Exclusion_Present
18770         All_Present and Constant_Present available on access_definition nodes
18771
18772         * sinfo.ads: New flag Null_Exclusion_Present on subtype_declaration,
18773         object_declaration, derived_type_definition, component_definition,
18774         discriminant_specification, access_to_object_definition,
18775         access_function_definition, allocator, access_procedure_definition,
18776         access_definition, parameter_specification, All_Present and
18777         Constant_Present flags available on access_definition nodes.
18778
18779 2004-03-29  Robert Dewar  <dewar@gnat.com>
18780
18781         * fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads,
18782         gnat1drv.adb, lib.adb, lib.ads, lib-load.adb, lib-writ.adb,
18783         opt.ads, osint.adb, osint.ads, osint-c.adb, par.adb,
18784         par-ch10.adb, par-load.adb, par-prag.adb, sfn_scan.adb,
18785         sfn_scan.ads, sinput-l.adb, sinput-l.ads, switch-c.adb,
18786         sem_prag.adb: Updates to handle multiple units/file
18787
18788         * par.adb: Change test for s-rpc to s-rp for detecting rpc and children
18789
18790         * par.adb, memtrack.adb, prj-makr.adb, prj-part.adb,
18791         sem_util.adb: Minor reformatting
18792
18793         * sem_ch12.adb: Add comment for previous change
18794
18795 2004-03-29  Laurent Pautet  <pautet@act-europe.fr>
18796
18797         * osint.adb (Executable_Prefix): Set Exec_Name to the current
18798         executable name when not initialized. Otherwise, use its current value.
18799
18800         * osint.ads (Exec_Name): Move Exec_Name from body to spec in order to
18801         initialize it to another executable name than the current one. This
18802         allows to configure paths for an executable name (gnatmake) different
18803         from the current one (gnatdist).
18804
18805 2004-03-29  Ed Schonberg  <schonberg@gnat.com>
18806
18807         * exp_ch6.adb (Expand_Call): A call to a function declared in the
18808         current unit cannot be inlined if it appears in the body of a withed
18809         unit, to avoid order of elaboration problems in gigi.
18810
18811         * exp_ch9.adb (Build_Protected_Sub_Specification): Generate debugging
18812         information for protected (wrapper) operation as well, to simplify gdb
18813         use.
18814
18815         * sem_ch6.adb (Analyze_Subprogram_Body): For a private operation in a
18816         protected body, indicate that the entity for the generated spec comes
18817         from source, to ensure that references are properly generated for it.
18818         (Build_Body_To_Inline): Do not inline a function that returns a
18819         controlled type.
18820
18821         * sem_prag.adb (Process_Convention): If subprogram is overloaded, only
18822         apply convention to homonyms that are declared explicitly.
18823
18824         * sem_res.adb (Make_Call_Into_Operator): If the operation is a function
18825         that renames an equality operator and the operands are overloaded,
18826         resolve them with the declared formal types, before rewriting as an
18827         operator.
18828
18829 2004-03-29  GNAT Script  <nobody@gnat.com>
18830
18831         * Make-lang.in: Makefile automatically updated
18832
18833 2004-03-25  Vasiliy Fofanov  <fofanov@act-europe.fr>
18834
18835         * memtrack.adb: Log realloc calls, which are treated as free followed
18836         by alloc.
18837
18838 2004-03-25  Vincent Celier  <celier@gnat.com>
18839
18840         * prj-makr.adb (Process_Directories): Detect when a file contains
18841         several units. Do not include such files in the config pragmas or
18842         in the naming scheme.
18843
18844         * prj-nmsc.adb (Record_Source): New parameter Trusted_Mode.
18845         Resolve links only when not in Trusted_Mode.
18846         (Find_Sources, Recursive_Find_Dirs, Find_Source_Dirs, Locate_Directory):
18847         Do not resolve links for the display names.
18848
18849         * prj-part.adb (Parse_Single_Project, Project_Path_Name_Of): Do not
18850         resolve links when computing the display names.
18851
18852 2004-03-25  Thomas Quinot  <quinot@act-europe.fr>
18853
18854         * sem_attr.adb (Check_Dereference): When the prefix of a 'Tag
18855         attribute reference does not denote a subtype, it can be any
18856         expression that has a classwide type, potentially after an implicit
18857         dereference.  In particular, the prefix can be a view conversion for
18858         a classwide type (for which Is_Object_Reference holds), but it can
18859         also be a value conversion for an access-to-classwide type. In the
18860         latter case, there is an implicit dereference, and the original node
18861         for the prefix does not verify Is_Object_Reference.
18862
18863         * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): A view
18864         conversion of a discriminant-dependent component of a mutable object
18865         is one itself.
18866
18867 2004-03-25  Ed Schonberg  <schonberg@gnat.com>
18868
18869         * freeze.adb (Freeze_Entity): When an inherited subprogram is
18870         inherited, has convention C, and has unconstrained array parameters,
18871         place the corresponding warning on the derived type declaration rather
18872         than the original subprogram.
18873
18874         * sem_ch12.adb (Instantiate_Formal_Subprogram): Set From_Default
18875         indication on renaming declaration, if formal has a box and actual
18876         is absent.
18877
18878         * sem_ch8.adb (Analyze_Subprogram_Renaming): Use From_Default flag to
18879         determine whether to generate an implicit or explicit reference to
18880         the renamed entity.
18881
18882         * sinfo.ads, sinfo.adb: New flag From_Default, to indicate that a
18883         subprogram renaming comes from a defaulted formal subprogram in an
18884         instance.
18885
18886 2004-03-25  Gary Dismukes  <dismukes@gnat.com>
18887
18888         * sem_elab.adb (Check_Elab_Call): Refine loop that checks for default
18889         value expressions to ensure that calls within a component definition
18890         will be checked (since those are evaluated during the record type's
18891         elaboration).
18892
18893 2004-03-25  Arnaud Charlet  <charlet@act-europe.fr>
18894
18895         * s-tpobop.adb: Code clean up:
18896         (Requeue_Call): Extract from PO_Service_Entries to remove duplicated
18897         code.
18898         (PO_Do_Or_Queue): Remove duplicated code and use Requeue_Call.
18899
18900 2004-03-25  Jose Ruiz  <ruiz@act-europe.fr>
18901
18902         * Makefile.in: Clean up in the ravenscar run time.
18903
18904 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18905
18906         * decl.c (gnat_to_gnu_entity, case E_Access_Type): Pass value
18907         of No_Strict_Aliasing to build_pointer_type_for_mode.
18908         * utils.c (update_pointer_to): Walk pointer and ref chains.
18909
18910 2004-03-22  Cyrille Comar  <comar@act-europe.fr>
18911
18912         * ali.ads: Fix Comment about Dynamic_Elab.
18913
18914         * gnatls.adb (Output_Unit): Add output of many flags (Dynamic_Elab,
18915         Has_RACW, Is_Generic, etc.)
18916         (Output_Object, Gnatls): Take into account ALI files not attached to
18917         an object.
18918
18919 2004-03-22  Vincent Celier  <celier@gnat.com>
18920
18921         * gprep.adb: Change all String_Access to Name_Id
18922         (Is_ASCII_Letter): new function
18923         (Double_File_Name_Buffer): New procedure
18924         (Preprocess_Infile_Name): New procedure
18925         (Process_Files): New procedure
18926         (Gnatprep): Check if output and input are existing directories.
18927         Call Process_Files to do the real job.
18928
18929 2004-03-22  Robert Dewar  <dewar@gnat.com>
18930
18931         * prj-env.adb, prj-nmsc.ads, prj-proc.ads,
18932         s-stache.ads, s-stache.adb: Comment updates. Minor reformatting.
18933
18934 2004-03-22  Sergey Rybin  <rybin@act-europe.fr>
18935
18936         * scn.adb (Contains): Add check for EOF, is needed for a degenerated
18937         case when the source contains only comments.
18938
18939 2004-03-22  Ed Schonberg  <schonberg@gnat.com>
18940
18941         * sem_ch10.adb (Analyze_Compilation_Unit): When generating a
18942         declaration for a child subprogram body that acts as a spec, indicate
18943         that the entity in the declaration needs debugging information.
18944
18945         * sem_ch3.adb (Complete_Private_Subtype): Do not build an underlying
18946         full view if the subtype is created for a constrained record component;
18947         gigi has enough information to construct the record, and there is no
18948         place in the tree for the declaration.
18949
18950         * sem_ch6.adb (Build_Body_To_Inline): Use an internal name without
18951         serial number for the dummy body that is built for analysis, to avoid
18952         inconsistencies in the generation of internal names when compiling
18953         with -gnatN.
18954
18955 2004-03-22  Thomas Quinot  <quinot@act-europe.fr>
18956
18957         * sem_util.adb (Is_Object_Reference): A view conversion denotes an
18958         object.
18959
18960 2004-03-22  GNAT Script  <nobody@gnat.com>
18961
18962         * Make-lang.in: Makefile automatically updated
18963
18964 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
18965
18966         * decl.c (gnat_to_gnu_entity): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
18967         * trans.c (tree_transform, emit_index_check): Likewise.
18968         * utils.c (build_template): Likewise.
18969         (max_size, convert): Remove handling of WITH_RECORD_EXPR.
18970         (maybe_unconstrained_array, unchecked_convert): Likewise.
18971         * utils2.c (gnat_truthvalue_conversion, build_binary_op): Likewise.
18972         (build_unary_op): Likewise.
18973         (compare_arrays, build_allocator): Use SUBSTITUTE_PLACEHOLDER_IN_EXPR.
18974         (fill_vms_descriptor): Likewise.
18975         (build_call_alloc_dealloc): Likewise.
18976         ALIGN is unsigned.
18977         * gigi.h (build_call_alloc_dealloc): Alignment is unsigned.
18978
18979 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
18980
18981         PR other/14630
18982         * gnat_ug.texi: Add info directory category and entry.
18983         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
18984         gnat_ug_wnt.texi: Regenerate.
18985
18986 2004-03-19  Arnaud Charlet  <charlet@act-europe.fr>
18987
18988         * ada-tree.h: Update copyright notice.
18989         Minor reformatting.
18990
18991 2004-03-19  Olivier Hainque  <hainque@act-europe.fr>
18992
18993         * decl.c (gnat_to_gnu_entity, case E_Exception): Handle VMS exceptions
18994         as regular exception objects and not as mere integers representing the
18995         condition code.  The latter approach required some dynamics to mask off
18996         severity bits, which did not fit well into the GCC table based model.
18997         (gnat_to_gnu_entity, objects): Don't supply an external name for VMS
18998         exception data objects. We don't it and it would conflict with the other
18999         external symbol we have to generate for such exceptions.
19000
19001         * trans.c (tree_transform, case N_Exception_Handler): Remove part of
19002         the special code for VMS exceptions, since these are now represented
19003         as regular exceptions objects.
19004
19005 2004-03-19 Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19006
19007         * decl.c (debug_no_type_hash): Remove.
19008         (gnat_to_gnu_entity, case E_Array_Type): Don't set and clear it.
19009         * misc.c (LANG_HOOK_HASH_TYPE): Redefine.
19010
19011 2004-03-19  Laurent Guerby <laurent@guerby.net>
19012
19013         * sem_prag.adb (Suppress_Unsuppress_Echeck): use loop instead of
19014         aggregate, allows bootstrap from 3.3 on powerpc-darwin.
19015
19016 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19017
19018         * ada-tree.h (TYPE_LEFT_JUSTIFIED_MODULAR_P): Add checking.
19019         (TYPE_CONTAINS_TEMPLATE_P, TYPE_OBJECT_RECORD_TYPE): Likewise.
19020         (TYPE_RM_SIZE_INT): Directly use type.values.
19021         (TREE_LOOP_ID): Clean up check.
19022         * decl.c (gnat_to_gnu_entity, case E_Enumeration_Type): Use
19023         TYPE_VALUES, not TYPE_FIELDS.
19024         * trans.c (convert_with_check): Delay access of bounds of basetype
19025         until sure is numeric.
19026
19027 2004-03-18  Arnaud Charlet  <charlet@act-europe.fr>
19028
19029         * 5atpopsp.adb: Remove RTEMS from list of platforms using this file.
19030
19031         Code clean up:
19032         * 5ataprop.adb, 5ftaprop.adb, 5htaprop.adb, 5itaprop.adb, 5staprop.adb,
19033         5vtaprop.adb, 5wtaprop.adb, 7staprop.adb (Finalize_TCB): Use
19034         Specific.Set instead of direct call to e.g pthread_setspecific.
19035
19036 2004-03-18  Thomas Quinot  <quinot@act-europe.fr>
19037
19038         * adaint.c: Update comments.
19039
19040         * Makefile.in: set PREFIX_OBJS, SYMLIB, THREADSLIB, and
19041         GNATLIB_SHARED for FreeBSD.
19042
19043 2004-03-18  Jose Ruiz  <ruiz@act-europe.fr>
19044
19045         * init.c [VxWorks]: Do not fix the stack size for the environment task.
19046         When needed (stack checking) the stack size is retrieved
19047         from the VxWorks kernel.
19048
19049         * Makefile.in: Flag -nostdinc is required when building the run time
19050         for avoiding looking for files in the base compiler.
19051         Add the VxWorks specific version of the package body for
19052         System.Stack_checking.Operations (5zstchop.adb).
19053
19054         * Make-lang.in: Add the object file for
19055         System.Stack_Checking.Operations.
19056
19057         * Makefile.rtl: Add object file for the package
19058         System.Stack_Checking.Operations.
19059
19060         * s-stchop.ads, s-stchop.adb, 5zstchop.adb: New files.
19061
19062         * s-stache.ads, s-stache.adb: Move the operations related to stack
19063         checking from this package to package System.Stack_Checking.Operations.
19064         This way, stack checking operations are only linked in the final
19065         executable when using the -fstack-check flag.
19066
19067 2004-03-18  Doug Rupp  <rupp@gnat.com>
19068
19069         * Makefile.in [VMS]: Handle 64 bit specs (5qsystem.ads, 5xcrtl.ads).
19070         Reorganize ifeq's.
19071
19072         * 5qsystem.ads, 5xcrtl.ads: New files.
19073
19074 2004-03-18  Vincent Celier  <celier@gnat.com>
19075
19076         * prj.adb (Reset): Reset hash table Files_Htable
19077
19078         * prj-env.adb (Source_Paths, Object_Paths): New tables.
19079         (Add_To_Source_Path, Add_To_Object_Path): New procedures, to replace
19080         the procedures Add_To_Path_File.
19081         (Set_Ada_Paths): Accumulate source and object dirs in the tables,
19082         making sure that each directory is present only once and, for object
19083         dirs, when a directory already present is added, the duplicate is
19084         removed and the directory is always put as the last in the table.
19085         Write the path files at the end of these accumulations.
19086
19087         * prj-nmsc.adb (Record_Source): Add source file name in hash table
19088         Files_Htable for all sources.
19089
19090         * prj-proc.adb (Process): Remove restrictions between not directly
19091         related extending projects.
19092
19093 2004-03-18  Emmanuel Briot  <briot@act-europe.fr>
19094
19095         * prj-nmsc.ads, prj-nmsc.adb (Ada_Check): New parameter Trusted_Mode.
19096         (Find_Sources): Minor speed optimization.
19097
19098         * prj-proc.ads, prj-proc.adb (Check, Recursive_Check, Process): New
19099         parameter Trusted_Mode.
19100
19101 2004-03-18  Sergey Rybin  <rybin@act-europe.fr>
19102
19103         * scn.adb (Determine_License): Take into account a degenerated case
19104         when the source contains only comments.
19105
19106 2004-03-18  Ed Schonberg  <schonberg@gnat.com>
19107
19108         * sem_warn.adb (Check_References): For a warning on a selected
19109         component that does not come from source, locate an uninitialized
19110         component of the record type to produce a more precise error message.
19111
19112 2004-03-15  Jerome Guitton  <guitton@act-europe.fr>
19113
19114         * 3zsoccon.ads: Fix multicast options.
19115
19116         * s-thread.ads: Move unchecked conversion from ATSD_Access to Address
19117         in the spec.
19118
19119 2004-03-15  Robert Dewar  <dewar@gnat.com>
19120
19121         * sem_prag.adb: Make sure No_Strict_Aliasing flag is set right when
19122         pragma used for a private type.
19123
19124         * lib-xref.adb (Generate_Reference): Do not generate warning if
19125         reference is in a different unit from the pragma Unreferenced.
19126
19127         * 5vtpopde.adb: Minor reformatting
19128         Fix casing of To_Task_ID
19129
19130         * sem_ch13.adb (Validate_Unchecked_Conversion): Set No_Strict_Aliasing
19131         flag if we have an unchecked conversion to an access type in the same
19132         unit.
19133
19134 2004-03-15  Geert Bosch  <bosch@gnat.com>
19135
19136         * a-ngcoty.adb (Modulus): In alternate formula for large real or
19137         imaginary parts, use Double precision throughout.
19138
19139         * a-tifiio.adb (Put_Scaled): Remove remaining pragma Debug. Not only
19140         we want to be able to compile run-time with -gnata for testing, but
19141         this may also be instantiated in user code that is compiled with -gnata.
19142
19143 2004-03-15  Olivier Hainque  <hainque@act-europe.fr>
19144
19145         * s-stalib.ads (Exception_Code): New type, to represent Import/Export
19146         codes. Having a separate type for this is useful to enforce consistency
19147         throughout the various run-time units.
19148         (Exception_Data): Use Exception_Code for Import_Code.
19149
19150         * s-vmextra.ads, s-vmexta.adb: Use Exception_Code instead of a mix of
19151         Natural and Integer in various places.
19152         (Register_VMS_Exception): Use Base_Code_In to compute the exception code
19153         with the severity bits masked off.
19154         (Register_VMS_Exception): Handle the additional exception data pointer
19155         argument.
19156
19157         * raise.c (_GNAT_Exception structure): Remove the handled_by_others
19158         component, now reflected by an exported accessor.
19159         (is_handled_by): New routine to compute whether the propagated
19160         occurrence matches some handler choice specification. Extracted out of
19161         get_action_description_for, and expanded to take care of the VMS
19162         specifities.
19163         (get_action_description_for): Use is_handled_by instead of an explicit
19164         complex condition to decide if the current choice at hand catches the
19165         propagated occurrence.
19166
19167         * raise.h (Exception_Code): New type for C.
19168
19169         * rtsfind.ads (RE_Id, RE_Unit_Table): Add
19170         System.Standard_Library.Exception_Code, to allow references from the
19171         pragma import/export expander.
19172
19173         * a-exexpr.adb (Is_Handled_By_Others, Language_For, Import_Code_For):
19174         New accessors to allow easy access to GNAT exception data
19175         characteristics.
19176         (GNAT_GCC_Exception record, Propagate_Exception): Get rid of the
19177         redundant Handled_By_Others component, helper for the personality
19178         routine which will now be able to call the appropriate exception data
19179         accessor instead.
19180
19181         * cstand.adb (Create_Standard): Adjust the type of the Import_Code
19182         component of Standard_Exception_Type to be the closest possible to
19183         Exception_Code in System.Standard_Library, that we cannot get at this
19184         point. Expand a ??? comment to notify that this type node should
19185         probably be rewritten later on.
19186
19187         * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust the
19188         registration call to include a pointer to the exception object in the
19189         arguments.
19190
19191         * init.c (__gnat_error_handler): Use Exception_Code and Base_Code_In
19192         instead of int and explicit bitmasks.
19193
19194 2004-03-15  Vincent Celier  <celier@gnat.com>
19195
19196         * vms_data.ads: Add new GNAT BIND qualifier /STATIC. Makes /NOSHARED
19197         equivalent to /STATIC and /NOSTATIC equivalent to /SHARED.
19198
19199         * a-tasatt.adb (To_Access_Code): Remove this UC instantiation, no
19200         longer needed now that it is in the spec of
19201         System.Tasking.Task_Attributes.
19202
19203         * adaint.h, adaint.c: (__gnat_create_output_file): New function
19204
19205         * gnatcmd.adb: Fix bug introduced in previous rev: /= instead of =
19206
19207         * g-os_lib.ads, g-os_lib.adb (Create_Output_Text_File): New function.
19208
19209         * make.adb (Gnatmake): Do not check the executable suffix; it is being
19210         taken care of in Scan_Make_Arg.
19211         (Scan_Make_Arg): Add the executable suffix only if the argument
19212         following -o, in canonical case, does not end with the executable
19213         suffix.  When in verbose mode and executable file name does not end
19214         with executable suffix, output the executable name, in canonical case.
19215
19216         * s-tataat.ads (Access_Dummy_Wrapper): Add pragma No_Strict_Aliasing
19217         to avoid warnings when instantiating Ada.Task_Attributes.
19218         Minor reformating.
19219
19220         * mlib-prj.adb (Process_Imported_Libraries): Get the imported libraries
19221         in the correct order.
19222
19223         * prj-makr.adb (Process_Directory): No longer use GNAT.Expect, but
19224         redirect standard output and error to a file for the invocation of the
19225         compiler, then read the file.
19226
19227         * prj-nmsc.adb (Find_Sources): Use the Display_Value for each
19228         directory, instead of the Value.
19229         (Find_Source_Dirs): Remove useless code & comments.
19230
19231 2004-03-15  Ed Schonberg  <schonberg@gnat.com>
19232
19233         * exp_ch3.adb (Freeze_Record_Type): If a primitive operation of a
19234         tagged type is inherited, and the parent operation is not frozen yet,
19235         force generation of a freeze node for the inherited operation, so the
19236         corresponding dispatch entry is properly initialized.
19237         (Make_Predefined_Primitive_Specs): Check that return type is Boolean
19238         when looking for user-defined equality operation.
19239
19240         * exp_ch4.adb (Expand_Composite_Equality): Check that return type is
19241         boolean when locating primitive equality of tagged component.
19242
19243         * exp_ch5.adb (Expand_Assign_Array): If the left-hand side is a
19244         bit-aligned field and the right-hand side a string literal, introduce
19245         a temporary before expanding assignment into a loop.
19246
19247         * exp_ch9.adb (Expand_N_Task_Type_Declaration): Copy expression for
19248         priority in full, to ensure that any expanded subepxressions of it are
19249         elaborated in the scope of the init_proc.
19250
19251         * exp_prag.adb (Expand_Pragma_Import): Search for initialization call
19252         after object declaration, skipping over code that may have been
19253         generated for validity checks.
19254
19255         * sem_ch12.adb (Validate_Private_Type_Instance): If type has unknown
19256         discriminants, ignore the known discriminants of its full view, if
19257         any, to check legality.
19258
19259         * sem_ch3.adb (Complete_Private_Subtype): Do not create constrained
19260         component if type has unknown discriminants.
19261         (Analyze_Private_Extension_Declaration): Discriminant constraint is
19262         null if type has unknown discriminants.
19263
19264         * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Generate reference
19265         for end label when present.
19266
19267         * s-fileio.adb (Open): When called with a C_Stream, use given name for
19268         temporary file, rather than an empty string.
19269
19270 2004-03-15  Ed Falis  <falis@gnat.com>
19271
19272         * s-thread.adb: Removed, no longer used.
19273
19274 2004-03-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19275
19276         * decl.c (target.h): Now include.
19277         (gnat_to_gnu_entity, case E_Access_Type): Use mode derived from ESIZE
19278         in new build_pointer_from_mode calls for non-fat/non-thin pointer.
19279         (validate_size): For POINTER_TYPE, get smallest size permitted on
19280         machine.
19281
19282         * fe.h: Sort Einfo decls and add Set_Mechanism.
19283
19284         * Makefile.in: (LIBGNAT_SRCS): Remove types.h.
19285         (ada/decl.o): Depends on target.h.
19286
19287         * trans.c (tree_transform, N_Unchecked_Type_Conversion): Do not use
19288         FUNCTION_BOUNDARY; always use TYPE_ALIGN.
19289
19290 2004-03-15  Thomas Quinot  <quinot@act-europe.fr>
19291
19292         * 5ztpopsp.adb, 56tpopsp.adb: Fix spelling of Task_ID.
19293
19294         * exp_ch4.adb (Expand_N_Indexed_Component): Do not call
19295         Insert_Dereference_Action when rewriting an implicit dereference into
19296         an explicit one, this will be taken care of during expansion of the
19297         explicit dereference.
19298         (Expand_N_Slice): Same. Always do the rewriting, even for the case
19299         of non-packed slices, since the dereference action generated by
19300         expansion of the explicit dereference is needed in any case.
19301         (Expand_N_Selected_Component): When rewriting an implicit dereference,
19302         analyze and resolve the rewritten explicit dereference so it is seen
19303         by the expander.
19304         (Insert_Dereference_Action): This procedure is now called only for the
19305         expansion of an N_Explcit_Dereference_Node. Do insert a check even for
19306         dereferences that do not come from source (including explicit
19307         dereferences resulting from rewriting implicit ones), but do not
19308         recursively insert a check for the dereference nodes contained within
19309         the check.
19310         (Insert_Dereference_Action): Clarify and correct comment.
19311
19312 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
19313
19314         PR ada/14131
19315         Move language detection to the top level.
19316         * config-lang.in: Build by default.
19317
19318 2004-03-05  Robert Dewar  <dewar@gnat.com>
19319
19320         * 56taprop.adb, 5ataprop.adb: Remove unneeded unchecked conversions
19321
19322         * a-tags.adb, a-tags.ads, s-finimp.adb, s-finroo.ads,
19323         i-cpoint.ads, i-cpoint.adb, i-cstrin.adb, i-cstrin.ads,
19324         5iosinte.ads, 5sosinte.ads, 5staspri.ads, 5itaprop.adb,
19325         5staprop.adb, 5wtaprop.adb, s-tataat.ads, s-tataat.adb: Move
19326         unchecked conversion to spec to avoid warnings.
19327
19328         * s-tasini.adb, s-taskin.ads, 5atpopsp.adb: Correct spelling Task_Id
19329         to Task_ID
19330
19331         * 7stpopsp.adb: Correct casing in To_Task_ID call
19332
19333         * a-strsea.ads, a-strsea.adb: Minor reformatting
19334
19335         * einfo.ads, einfo.adb: Define new flag No_Strict_Aliasing
19336
19337         * errout.ads: Switch for VMS is now NO_STRICT_ALIASING.
19338         Adjust Max_Msg_Length to be clearly large enough.
19339
19340         * fe.h: Define In_Same_Source_Unit
19341
19342         * osint.adb: Add pragma Warnings Off to suppress warnings
19343         * g-dyntab.adb, g-table.adb, g-thread.adb: Add Warnings (Off) to kill
19344         aliasing warnings.
19345
19346         * opt.ads: Put entries in alpha order. Add entry for No_Strict_Aliasing
19347
19348         * par-prag.adb: Add dummy entry for No_Strict_Aliasing pragma
19349
19350         * sem_ch13.adb: Generate validate unchecked conversion nodes for gcc.
19351
19352         * sem_ch3.adb: Set No_Strict_Aliasing flag if config pragma set.
19353
19354         * sem_prag.adb: Implement pragma No_Strict_Aliasing.
19355
19356         * sinfo.ads: Remove obsolete comment on validate unchecked conversion
19357         node. We now do generate them for gcc back end.
19358
19359         * table.adb, sinput.adb: Add pragma Warnings Off to suppress aliasing
19360         warning.
19361
19362         * sinput-c.adb: Fix bad name in header.
19363         Add pragma Warnings Off to suppress aliasing warning.
19364
19365         * sinput-l.adb: Add pragma Warnings Off to suppress aliasing warning.
19366
19367         * snames.h, snames.ads, snames.adb: Add entry for pragma
19368         No_Strict_Aliasing.
19369
19370 2004-03-05  Vincent Celier  <celier@gnat.com>
19371
19372         * prj-com.ads: Add hash table Files_Htable to check when a file name
19373         is already a source of another project.
19374
19375         * prj-nmsc.adb (Record_Source): Before recording a new source, check
19376         if its file name is not already a source of another project. Report an
19377         error if it is.
19378
19379         * gnatcmd.adb: When GNAT PRETTY is invoked with a project file and no
19380         source file name, call gnatpp with all the sources of the main project.
19381
19382         * vms_conv.adb (Initialize): GNAT PRETTY may be called with any number
19383         of file names.
19384
19385         * vms_data.ads: Correct documentation of new /OPTIMIZE keyword
19386         NO_STRICT_ALIASING. Add new qualifier for GNAT PRETTY:
19387         /RUNTIME_SYSTEM=, converted to --RTS=
19388         /NOTABS, converted to -notabs
19389
19390 2004-03-05  Pascal Obry  <obry@gnat.com>
19391
19392         * make.adb: Minor reformatting.
19393
19394 2004-03-05  Ed Schonberg  <schonberg@gnat.com>
19395
19396         Part of implemention of AI-262.
19397         * par-ch10.adb (P_Context_Clause): Recognize private with_clauses.
19398
19399         * sem_ch10.ads, sem_ch10.adb: (Install_Private_With_Clauses): New
19400         procedure.
19401
19402         * sem_ch3.adb (Analyze_Component_Declaration): Improve error message
19403         when component type is a partially constrained class-wide subtype.
19404         (Constrain_Discriminated_Type): If parent type has unknown
19405         discriminants, a constraint is illegal, even if full view has
19406         discriminants.
19407         (Build_Derived_Record_Type): Inherit discriminants when deriving a type
19408         with unknown discriminants whose full view is a discriminated record.
19409
19410         * sem_ch7.adb (Preserve_Full_Attributes): Preserve Has_Discriminants
19411         flag, to handle properly derivations of tagged types with unknown
19412         discriminants.
19413         (Analyze_Package_Spec, Analyze_Package_Body): Install
19414         Private_With_Clauses before analyzing private part or body.
19415
19416         * einfo.ads: Indicate that both Has_Unknown_Discriminants and
19417         Has_Discriminants can be true for a given type (documentation).
19418
19419 2004-03-05  Arnaud Charlet  <charlet@act-europe.fr>
19420
19421         * s-restri.ads: Fix license (GPL->GMGPL).
19422
19423         * s-tassta.adb: Minor reformatting.
19424
19425         * s-tasren.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19426         by calls to Exit_One_ATC_Level, since additional clean up is performed
19427         by this function.
19428
19429         * s-tpobop.adb: Replace manual handling of Self_Id.ATC_Nesting_Level
19430         by calls to Exit_One_ATC_Level, since additional clean up is performed
19431         by this function.
19432
19433 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19434
19435         * trans.c: Reflect GCC changes to fix bootstrap problem.
19436         Add warning for suspicious aliasing unchecked conversion.
19437
19438 2004-03-05  GNAT Script  <nobody@gnat.com>
19439
19440         * Make-lang.in: Makefile automatically updated
19441
19442 2004-03-02  Emmanuel Briot  <briot@act-europe.fr>
19443
19444         * ali.adb (Read_Instantiation_Instance): Do not modify the
19445         current_file_num when reading information about instantiations, since
19446         this corrupts files in later references.
19447
19448 2004-03-02  Vincent Celier  <celier@gnat.com>
19449
19450         * bcheck.adb (Check_Consistency): Get the full path of an ALI file
19451         before checking if it is read-only.
19452
19453         * bld.adb (Recursive_Process): Concatenate <PROJECT>.src_dirs in front
19454         of SRC_DIRS and eliminate duplicates.
19455
19456         * gprcmd.adb: Replace command "path" with command "path_sep" to return
19457         the path separator.
19458         (Usage): Document path_sep
19459
19460         * Makefile.generic: For Ada and GNU C++ cases, link directly with the
19461         C++ compiler. No need for a script.
19462         Replace use of C*_INCLUDE_PATH env var for GCC compilers with CPATH.
19463         Do not call gprcmd to build the C*_INCLUDE_PATHs, do it with function
19464         subst.
19465
19466         * prj-env.adb (For_All_Source_Dirs): Only add source dirs in project
19467         where there are Ada sources.
19468         (Set_Ada_Paths): Only add to the include path the source dirs of project
19469         with Ada sources.
19470         (Add_To_Path): Add the Display_Values of the directories, not their
19471         Values.
19472
19473         * prj-nmsc.adb (Find_Sources): Set flag Sources_Present in the project
19474         data.
19475
19476         * prj-nmsc.adb (Add_ALI_For): Make sure that the element Display_Value
19477         is not No_Name.
19478         (Find_Source_Dirs): Set Display_Value to a non canonicalized value, only
19479         Value is canonicalized.
19480         (Language_Independent_Check): Do not copy Value to Display_Value when
19481         canonicalizing Value.
19482
19483         * prj-part.adb (Post_Parse_Context_Clause): Compare canonical cased
19484         path to find limited with cycles.
19485         (Parse_Single_Project): Use canonical cased path to find the end of a
19486         with cycle.
19487
19488 2004-03-02  Ed Schonberg  <schonberg@gnat.com>
19489
19490         * sem_ch10.adb (Optional_Subunit): Verify that unit contains a subunit
19491         and not a child unit.
19492
19493         * sinfo.ads, sinfo.adb: Rearrange flags so that Private_Present can
19494         appear in a with_clause.
19495
19496         * decl.c (gnat_to_gnu_type): If entity is a generic type, which can
19497         only happen in type_annotate mode, do not try to elaborate it.
19498
19499         * exp_util.adb (Force_Evaluation): If expression is a selected
19500         component on the left of an assignment, use a renaming rather than a
19501         temporary to remove side effects.
19502
19503         * freeze.adb (Freeze_Entity): Do not freeze a global entity within an
19504         inlined instance body, which is analyzed before the end of the
19505         enclosing scope.
19506
19507 2004-03-02  Robert Dewar  <dewar@gnat.com>
19508
19509         * par-ch10.adb, par-ch3.adb, par-ch4.adb, scng.adb,
19510         sem_ch4.adb: Use new feature for substitution of keywords in VMS
19511
19512         * errout.ads, errout.adb: Implement new circuit for substitution of
19513         keywords in VMS.
19514
19515         * sem_case.adb (Analyze_Choices): Place message properly when case is
19516         a subtype reference rather than an explicit range.
19517
19518         * sem_elim.adb, s-tpobop.ads, exp_ch2.adb: Minor reformatting
19519
19520 2004-03-02  Doug Rupp  <rupp@gnat.com>
19521
19522         * init.c (__gnat_initialize)[VMS]: Resignal RDB-E-STREAM_EOF.
19523
19524 2004-03-02  Thomas Quinot  <quinot@act-europe.fr>
19525
19526         * s-tporft.adb: Add missing locking around call to Initialize_ATCB.
19527
19528 2004-03-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19529
19530         * utils.c (finish_record_type): Do not set DECL_NONADDRESSABLE for a
19531         BLKmode bitfield.
19532
19533 2004-02-25  Robert Dewar  <dewar@gnat.com>
19534
19535         * 51osinte.ads, 52osinte.ads, 53osinte.ads, 54osinte.ads,
19536         55osinte.ads, 56osinte.ads, 5aosinte.ads, 5bosinte.ads,
19537         5cosinte.ads, 5fosinte.ads, 5gosinte.ads, 5hosinte.ads,
19538         5iosinte.ads, 5losinte.ads, 5nosinte.ads, 5oosinte.ads,
19539         5posinte.ads, 5sosinte.ads, 5tosinte.ads, 5vosinte.ads,
19540         5wosinte.ads, 5zosinte.ads: Move instances of Unchecked_Conversion to
19541         the defining instance of the type to avoid aliasing problems.
19542         Fix copyright header.  Fix bad comments in package header.
19543
19544         * exp_util.adb, prj-part.adb, prj-part.adb: Minor reformatting
19545
19546 2004-02-25  Ed Schonberg  <schonberg@gnat.com>
19547
19548         * exp_ch2.adb (Param_Entity): Handle properly formals that have been
19549         rewritten as references when aliased through an address clause.
19550
19551         * sem_ch4.adb (Try_Indirect_Call): Normalize actuals before checking
19552         whether call can be interpreted as an indirect call to the result of a
19553         parameterless function call returning an access subprogram.
19554
19555 2004-02-25  Arnaud Charlet  <charlet@act-europe.fr>
19556
19557         Code clean up:
19558         * exp_ch7.adb (Make_Clean): Remove generation of calls to
19559         Unlock[_Entries], since this is now done by Service_Entries directly.
19560
19561         * exp_ch9.adb (Build_Protected_Subprogram_Body): ditto.
19562
19563         * s-tpobop.ads, s-tpobop.adb (PO_Service_Entries): New nested procedure
19564         Requeue_Call for better code readability. Change spec and update calls:
19565         PO_Service_Entries now unlock the PO on exit.
19566         (Protected_Entry_Call, Timed_Protected_Entry_Call): Update calls to
19567         PO_Service_Entries.
19568
19569         * s-tposen.ads, s-tposen.adb (Service_Entry): Now unlock the PO on exit.
19570
19571         * s-taenca.adb, s-tasren.adb: Update calls to PO_Service_Entries.
19572
19573 2004-02-25  Sergey Rybin  <rybin@act-europe.fr>
19574
19575         * exp_ch9.adb (Build_Simple_Entry_Call): Prevent expanding the
19576         protected subprogram call and analyzing the result of such expanding
19577         in case when the called protected subprogram is eliminated.
19578
19579         * sem_elim.adb (Check_Eliminated): Skip blocks when comparing scope
19580         names.
19581
19582 2004-02-25  Jerome Guitton  <guitton@act-europe.fr>
19583
19584         * Makefile.in: Clean ups.
19585
19586 2004-02-23  Ed Schonberg  <schonberg@gnat.com>
19587
19588         * exp_ch6.adb (Expand_N_Subprogram_Declaration): Do not create
19589         protected operations if original subprogram is flagged as eliminated.
19590         (Expand_N_Subprogram_Body): For a protected operation, create
19591         discriminals for next operation before checking whether the operation
19592         is eliminated.
19593
19594         * exp_ch9.adb (Expand_N_Protected_Body,
19595         Expand_N_Protected_Type_Declaration): Do not generate specs and bodies
19596         for internal protected operations if the original subprogram is
19597         eliminated.
19598
19599         * sem_elim.adb (Check_Eliminated): Handle properly protected operations
19600         declared in a single protected object.
19601
19602 2004-02-23  Vincent Celier  <celier@gnat.com>
19603
19604         * prj-attr.adb: Make attribute Builder'Executable an associative array,
19605         case insensitive if file names are case insensitive, instead of a
19606         standard associative array.
19607
19608         * prj-attr.adb (Initialize): For 'b' associative arrays, do not set
19609         them as case insensitive on platforms where the file names are case
19610         sensitive.
19611
19612         * prj-part.adb (Parse_Single_Project): Make sure, when checking if
19613         project file has already been parsed that canonical path are compared.
19614
19615 2004-02-23  Robert Dewar  <dewar@gnat.com>
19616
19617         * sinput-c.ads: Correct bad unit title in header
19618
19619         * freeze.adb: Minor reformatting
19620
19621 2004-02-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19622
19623         * trans.c (tree_transform, case N_Procedure_Call_Statement): For
19624         nonaddressable COMPONENT_REF that is removing padding that we are
19625         taking the address of, take the address of the padded record instead
19626         if item is variable size.
19627
19628 2004-02-20  Robert Dewar  <dewar@gnat.com>
19629
19630         * bld.adb, exp_util.adb, gprcmd.adb: Minor reformatting
19631
19632 2004-02-20  Ed Schonberg  <schonberg@gnat.com>
19633
19634         * freeze.adb (Freeze_Record_Type): Generalize mechanism that generates
19635         itype references for the constrained designated type of a component
19636         whose base type is already frozen.
19637
19638 2004-02-20  Arnaud Charlet  <charlet@act-europe.fr>
19639
19640         * init.c (__gnat_error_handler [tru64]): Rewrite previous change to
19641         avoid GCC warnings.
19642
19643 2004-02-20  Sergey Rybin  <rybin@act-europe.fr>
19644
19645         * sem_ch12.adb (Analyze_Formal_Package): Create a new defining
19646         identifier for a phantom package that rewrites the formal package
19647         declaration with a box. The Add semantic decorations for the defining
19648         identifier from the original node (that represents the formal package).
19649
19650 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
19651
19652         * Make-lang.in (ada/stamp-sdefault): Use the top level
19653         move-if-change.
19654
19655 2004-02-19  Richard Henderson  <rth@redhat.com>
19656
19657         * misc.c (record_code_position): Add third build arg for RTL_EXPR.
19658
19659 2004-02-18  Emmanuel Briot  <briot@act-europe.fr>
19660
19661         * ali.ads, ali.adb (First_Sdep_Entry): No longer a constant, so that
19662         Scan_ALI can be used for multiple ALI files without reinitializing
19663         between calls.
19664
19665 2004-02-18  Robert Dewar  <dewar@gnat.com>
19666
19667         * debug.adb: Minor reformatting.
19668
19669 2004-02-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
19670
19671         * decl.c (gnat_to_gnu_entity, case object): Set DECL_POINTER_ALIAS_SET
19672         to zero if there is an address clause.
19673
19674 2004-02-18  Thomas Quinot  <quinot@act-europe.fr>
19675
19676         * exp_util.adb (Side_Effect_Free): Any literal is side effects free.
19677
19678 2004-02-18  Gary Dismukes  <dismukes@gnat.com>
19679
19680         * layout.adb (Layout_Component_List): Revise generation of call to
19681         discriminant-checking function to pass selections of all of the type's
19682         discriminants rather than just the variant-controlling discriminant.
19683
19684 2004-02-18  Olivier Hainque  <hainque@act-europe.fr>
19685
19686         * 5gmastop.adb (Pop_Frame): Do not call exc_unwind, which is bound to
19687         fail in the current setup and triggers spurious system error messages.
19688         Pretend it occurred and failed instead.
19689
19690 2004-02-18  Vincent Celier  <celier@gnat.com>
19691
19692         * bld.adb: Mark FLDFLAGS as saved
19693         (Process_Declarative_Items): Add Linker'Linker_Options to FLDFLAGS when
19694         it is not the root project.  Put each directory to be
19695         extended between double quotes to prevent it to be expanded on Windows.
19696         (Recursive_Process): Reset CFLAGS/CXXFLAGS to nothing before processing
19697         the project file. Set them back to their initial values if they have not
19698         been set in the project file.
19699
19700         * gprcmd.adb: (Gprdebug, Debug): New global variables
19701         (Display_Command): New procedure
19702         (Usage): Document new command "linkopts"
19703         Call Display_Command when env var GPRDEBUG has the value "TRUE"
19704         Implement new command "linkopts"
19705         Remove quotes that may be around arguments for "extend"
19706         Always call Normalize_Pathname with arguments formatted for the platform
19707
19708         * Makefile.generic: Link C/C++ mains with $(FLDFLAGS)
19709         Change @echo to @$(display) in target clean to be able to clean silently
19710
19711         * Makefile.prolog: Save FLDFLAGS and give it an initial empty value
19712
19713         * prj-part.adb (Project_Path_Name_Of): Do not put final result in
19714         canonical case.
19715
19716         * prj-part.adb (Parse_Single_Project): Always call with From_Extended
19717         = Extending_All when current project is an extending all project.
19718
19719         * vms_conv.adb (Output_File_Expected): New Boolean global variable,
19720         set to True only for LINK command, after Unix switch -o.
19721         (Process_Arguments): Set Output_File_Expected to True for LINK command
19722         after Unix switch -o. When Output_File_Expected is True, never add an
19723         extension to a file name.
19724
19725         * 5vml-tgt.adb (Build_Dynamic_Library): Do not append "/OPTIONS" to the
19726         option file name, only to the --for-linker= switch.
19727         (Option_File_Name): If option file name do not end with ".opt", append
19728         "/OPTIONS".
19729
19730 2004-02-18  GNAT Script  <nobody@gnat.com>
19731
19732         * Make-lang.in: Makefile automatically updated
19733
19734 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
19735
19736         * Make-lang.in (stamp-sdefault): Do not depend on
19737         move-if-change.
19738
19739 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
19740
19741         * config-lang.in: Disable Ada by default until probe logic for
19742         a bootstrap Ada compiler can be moved to the top level configure
19743         script.
19744
19745 2004-02-12  Olivier Hainque  <hainque@act-europe.fr>
19746
19747         * decl.c (components_to_record): Don't claim that the internal fields
19748         we make to hold the variant parts are semantically addressable, because
19749         they are not.
19750
19751         * exp_pakd.adb (Create_Packed_Array_Type): Rename Esiz into PASize and
19752         adjust the comment describing the modular type form when we can use it.
19753         (Install_PAT): Account for the Esiz renaming.
19754
19755         * init.c (__gnat_error_handler for alpha-tru64): Arrange to clear the
19756         sc_onstack context indication before raising the exception to which
19757         the signal is mapped. Allows better handling of later signals possibly
19758         triggered by the resumed user code if the exception is handled.
19759
19760 2004-02-12  Arnaud Charlet  <charlet@act-europe.fr>
19761
19762         * 5zinit.adb: Removed, no longer used.
19763
19764 2004-02-12  Robert Dewar  <dewar@gnat.com>
19765
19766         * ali.adb: Remove separating space between parameters on R line. Makes
19767         format consistent with format used by the binder for Set_Globals call.
19768
19769         * atree.ads, atree.adb: Minor reformatting (new function header format)
19770
19771         * bindgen.adb: Add Run-Time Globals documentation section containing
19772         detailed documentation of the globals passed from the binder file to
19773         the run time.
19774
19775         * gnatls.adb: Minor reformatting
19776
19777         * init.c (__gnat_set_globals): Add note pointing to documentation in
19778         bindgen.
19779
19780         * lib-writ.ads, lib-writ.adb: Remove separating space between
19781         parameters on R line.
19782         Makes format consistent with format used by the binder for Set_Globals
19783         call.
19784
19785         * osint.ads: Add 2004 to copyright notice
19786         Minor reformatting
19787
19788         * snames.ads: Correct capitalization of FIFO_Within_Priorities
19789         Noticed during code reading, documentation issue only
19790
19791         * usage.adb: Remove junk line for obsolete C switch
19792         Noticed during code reading
19793
19794 2004-02-12  Vincent Celier  <celier@gnat.com>
19795
19796         * bld.adb (Process_Declarative_Items): For Source_Dirs call gprcmd
19797         extend for each directory, so that multiple /** directories are
19798         extended individually.
19799         (Recursive_Process): Set the default for LANGUAGES to ada
19800
19801         * gprcmd.adb: Define new command "ignore", to do nothing.
19802         Implement new comment "path".
19803
19804         * Makefile.generic: Suppress output when SILENT is set
19805         Make sure that when compiler for C/C++ is gcc, the correct -x switch is
19806         used, so that the correct compiler is invoked.
19807         When compiler is gcc/g++, put search path in env vars C_INCLUDE_PATH/
19808         CXX_INCLUDE_PATH, to avoid failure with too long command lines.
19809
19810 2004-02-12  Jerome Guitton  <guitton@act-europe.fr>
19811
19812         * Makefile.in: Clean ups and remove obsolete targets.
19813
19814 2004-02-12  Ed Schonberg  <schonberg@gnat.com>
19815
19816         * exp_ch5.adb: Remove Possible_Unligned_Slice, in favor of the similar
19817         predicate declared in exp_util.
19818
19819         * exp_util.adb: Add comments.
19820
19821         * sem_ch10.adb (Analyze_Subunit): Remove ultimate parent unit from
19822         visibility before compiling context of the subunit.
19823
19824         * sem_res.adb (Check_Parameterless_Call): If the context expects a
19825         value but the name is a procedure, do not attempt to analyze as a call,
19826         in order to obtain more telling diagnostics.
19827
19828         * sem_util.adb (Wrong_Type): Further enhancement to diagnose missing
19829         'Access on parameterless function calls.
19830         (Normalize_Actuals): For a parameterless function call with missing
19831         actuals, defer diagnostic until resolution of enclosing call.
19832
19833         * sem_util.adb (Wrong_Type): If the context type is an access to
19834         subprogram and the expression is a procedure name, suggest a missing
19835         'attribute.
19836
19837 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
19838             Nathanael Nerode  <neroden@gcc.gnu.org>
19839
19840         PR ada/6637, PR ada/5911
19841         Merge with libada-branch:
19842         * config-lang.in: Build libada only when ada is built.
19843
19844 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19845
19846         * exp_ch4.adb (Expand_N_Op_Eq): When looking for the primitive equality
19847         for a tagged type, verify that both formals have the same type.
19848
19849         * exp_ch6.adb (Add_Call_By_Copy_Code): Initialize properly the
19850         temporary when the formal is an in-parameter and the actual a possibly
19851         unaligned slice.
19852
19853         * exp_ch9.adb (Expand_Entry_Barrier): Resolve barrier expression even
19854         when expansion is disabled, to ensure proper name capture with
19855         overloaded literals.  Condition can be of any boolean type, resolve
19856         accordingly.
19857
19858         * sem_ch8.adb (Analyze_Subprogram_Renaming): Emit warning if the
19859         renaming is for a formal subprogram with a default operator name, and
19860         there is a usable operator that is visible at the point of
19861         instantiation.
19862
19863 2004-02-09  Robert Dewar  <dewar@gnat.com>
19864
19865         * ali.adb (Scan_Ali) Add Ignore_Errors argument. This is a major
19866         rewrite to ignore errors in ali files, intended to allow tools downward
19867         compatibility with new versions of ali files.
19868
19869         * ali.ads: Add new parameter Ignore_Errors
19870
19871         * bcheck.adb (Check_Consistent_Restrictions): Fix error of sometimes
19872         duplicating the error message giving the file with restrictions.
19873
19874         * debug.adb: Add debug flag I for gnatbind
19875
19876         * errout.adb (Set_Msg_Insertion_Node): Suppress extra quotes around
19877         operators for the case where the operator is a defining operator.
19878
19879         * exp_ch3.adb: Minor reformatting (new function spec format).
19880
19881         * exp_ch4.adb: Add comment for previous change, and make minor
19882         adjustment to loop to always check for improper loop termination.
19883         Minor reformatting throughout (new function spec format).
19884
19885         * gnatbind.adb: Implement -di debug flag for gnatbind
19886
19887         * gnatlink.adb: Call Scan_ALI with Ignore_Errors set to True
19888
19889         * gnatls.adb: Call Scan_ALI with Ignore_Errors set to True
19890
19891         * lib-load.adb: Fix bad assertion.
19892         Found by testing and code reading.
19893         Minor reformatting.
19894
19895         * lib-load.ads: Minor reformatting.
19896
19897         * lib-writ.adb: There is only one R line now.
19898
19899         * lib-writ.ads: Add documentation on making downward compatible changes
19900         to ali files so old tools work with new ali files.
19901         There is only one R line now.
19902         Add documentation on format incompatibilities (with special GPS note)
19903
19904         * namet.ads, namet.adb: (Is_Operator_Name): New procedure
19905
19906         * par-load.adb: Minor reformatting
19907
19908         * sem_ch8.adb: Fix to error message from last update
19909         Minor reformatting and restructuring of code from last update
19910
19911         * par-prag.adb, snames.adb, snames.ads, snames.h,
19912         sem_prag.adb: Implement pragma Profile.
19913
19914         * stylesw.adb: Implement -gnatyN switch to turn off all style check
19915         options.
19916
19917         * usage.adb: Add line for -gnatyN switch
19918
19919         * vms_data.ads: Add entry STYLE_CHECKS=NONE for -gnatyN
19920
19921 2004-02-09  Albert Lee  <lee@gnat.com>
19922
19923         * errno.c: define _SGI_MP_SOURCE for task-safe errno on IRIX
19924
19925 2004-02-09  Ed Schonberg  <schonberg@gnat.com>
19926
19927         * exp_ch3.adb (Build_Slice_Assignment): Handle properly case of null
19928         slices.
19929
19930         * exp_ch6.adb (Expand_Call): Do not inline a call when the subprogram
19931         is nested in an instance that is not frozen yet, to avoid
19932         order-of-elaboration problems in gigi.
19933
19934         * sem_attr.adb (Analyze_Attribute, case 'Access): Within an inlined
19935         body the attribute is legal.
19936
19937 2004-02-09  Robert Dewar  <dewar@gnat.com>
19938
19939         * s-rident.ads: Minor comment correction
19940
19941         * targparm.adb: Remove dependence on uintp completely. There was
19942         always a bug in Make in that it called Targparm before initializing
19943         the Uint package. The old code appeared to get away with this, but
19944         the new code did not! This caused an assertion error in gnatmake.
19945
19946         * targparm.ads: Fix bad comment, restriction pragmas with parameters
19947         are indeed fully supported.
19948
19949 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
19950
19951         * misc.c (default_pass_by_ref): Update INIT_CUMULATIVE_ARGS call.
19952
19953 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
19954
19955         * ada/utils.c (create_param_decl): Replace PROMOTE_PROTOTYPES
19956         with targetm.calls.promote_prototypes.
19957
19958 2004-02-04  Robert Dewar  <dewar@gnat.com>
19959
19960         * 5gtasinf.adb, 5gtasinf.ads, 5gtaprop.adb, ali.adb,
19961         ali.ads, gprcmd.adb: Minor reformatting
19962
19963         * bindgen.adb: Output restrictions string for new style restrictions
19964         handling
19965
19966         * impunit.adb: Add s-rident.ads (System.Rident) and
19967         s-restri (System.Restrictions)
19968
19969         * lib-writ.adb: Fix bug in writing restrictions string (last few
19970         entries wrong)
19971
19972         * s-restri.ads, s-restri.adb: Change name Restrictions to
19973         Run_Time_Restrictions to avoid conflict with package name.
19974         Add circuit to read and acquire run time restrictions.
19975
19976 2004-02-04  Jose Ruiz  <ruiz@act-europe.fr>
19977
19978         * restrict.ads, restrict.adb: Use the new restriction
19979         No_Task_Attributes_Package instead of the old No_Task_Attributes.
19980
19981         * sem_prag.adb: No_Task_Attributes is a synonym of
19982         No_Task_Attributes_Package.
19983
19984         * snames.ads, snames.adb: New entry for proper handling of
19985         No_Task_Attributes.
19986
19987         * s-rident.ads: Adding restriction No_Task_Attributes_Package
19988         (AI-00249) that supersedes the GNAT specific restriction
19989         No_Task_Attributes.
19990
19991 2004-02-04  Ed Schonberg  <schonberg@gnat.com>
19992
19993         * sem_prag.adb:
19994         (Analyze_Pragma, case Warnings): In an inlined body, as in an instance
19995          body, an identifier may be wrapped in an unchecked conversion.
19996
19997 2004-02-04  Vincent Celier  <celier@gnat.com>
19998
19999         * lib-writ.ads: Comment update for the W lines
20000
20001         * bld.adb: (Expression): An empty string list is static
20002
20003         * fname-uf.adb: Minor comment update
20004
20005         * fname-uf.ads: (Get_File_Name): Document new parameter May_Fail
20006
20007         * gnatbind.adb: Initialize Cumulative_Restrictions with the
20008         restrictions on the target.
20009
20010 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
20011
20012         * ada/trans.c (gigi): Use gen_rtx_SYMBOL_REF instead of
20013         gen_rtx.
20014
20015 2004-02-02  Arnaud Charlet  <charlet@gnat.com>
20016
20017         * Makefile.in: Remove setting of THREADSLIB on mips o32, unneeded.
20018
20019 2004-02-02  Vincent Celier  <celier@gnat.com>
20020
20021         * gprcmd.adb (Check_Args): If condition is false, print the invoked
20022         comment before the usage.
20023         Gprcmd: Fail when command is not recognized.
20024         (Usage): Document command "prefix"
20025
20026         * g-md5.adb (Digest): Process last block.
20027         (Update): Do not process last block. Store remaining characters and
20028         length in Context.
20029
20030         * g-md5.ads (Update): Document that several call to update are
20031         equivalent to one call with the concatenated string.
20032         (Context): Add fields to allow new Update behaviour.
20033
20034         * fname-uf.ads/adb (Get_File_Name): New Boolean parameter May_Fail,
20035         defaulted to False.
20036         When May_Fail is True and no existing file can be found, return No_File.
20037
20038         * 6vcstrea.adb: Inlined functions are now wrappers to implementation
20039         functions.
20040
20041         * lib-writ.adb (Write_With_Lines): When body file does not exist, use
20042         spec file name instead on the W line.
20043
20044 2004-02-02  Robert Dewar  <dewar@gnat.com>
20045
20046         * ali.adb: Read and acquire info from new format restrictions lines
20047
20048         * bcheck.adb: Add circuits for checking restrictions with parameters
20049
20050         * bindgen.adb: Output dummy restrictions data
20051         To be changed later
20052
20053         * ali.ads, checks.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
20054         exp_ch3.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_util.adb,
20055         freeze.adb, gnat1drv.adb, sem_attr.adb, sem_ch10.adb, sem_ch11.adb,
20056         sem_ch12.adb, targparm.adb, targparm.ads, tbuild.adb, sem_ch2.adb,
20057         sem_elab.adb, sem_res.adb: Minor changes for new restrictions handling.
20058
20059         * exp_ch9.adb (Build_Master_Entity): Cleanup the code (also suppresses
20060         the warning message on access to possibly uninitialized variable S)
20061         Minor changes for new restrictions handling.
20062
20063         * gnatbind.adb: Minor reformatting
20064         Minor changes for new restrictions handling
20065         Move circuit for -r processing here from bcheck (cleaner)
20066
20067         * gnatcmd.adb, gnatlink.adb: Minor reformatting
20068
20069         * lib-writ.adb: Output new format restrictions lines
20070
20071         * lib-writ.ads: Document new R format lines for new restrictions
20072         handling.
20073
20074         * s-restri.ads/adb: New files
20075
20076         * Makefile.rtl: Add entry for s-restri.ads/adb
20077
20078         * par-ch3.adb: Fix bad error messages starting with upper case letter
20079         Minor reformatting
20080
20081         * restrict.adb: Major rewrite throughout for new restrictions handling
20082         Major point is to handle restrictions with parameters
20083
20084         * restrict.ads: Major changes in interface to handle restrictions with
20085         parameters. Also generally simplifies setting of restrictions.
20086
20087         * snames.ads/adb: New entry for proper handling of No_Requeue
20088
20089         * sem_ch3.adb (Count_Tasks): New circuitry for implementing Max_Tasks
20090         restriction counting.
20091         Other minor changes for new restrictions handling
20092
20093         * sem_prag.adb: No_Requeue is a synonym for No_Requeue_Statements.
20094         Restriction_Warnings now allows full parameter notation
20095         Major rewrite of Restrictions for new restrictions handling
20096
20097 2004-02-02  Javier Miranda  <miranda@gnat.com>
20098
20099         * par-ch3.adb (P_Identifier_Declarations): Give support to the Ada 0Y
20100         syntax rule for object renaming declarations.
20101         (P_Array_Type_Definition): Give support for the Ada 0Y syntax rule for
20102         component definitions.
20103
20104         * sem_ch3.adb (Analyze_Component_Declaration): Give support to access
20105         components.
20106         (Array_Type_Declaration): Give support to access components. In addition
20107         it was also modified to reflect the name of the object in anonymous
20108         array types. The old code did not take into account that it is possible
20109         to have an unconstrained anonymous array with an initial value.
20110         (Check_Or_Process_Discriminants): Allow access discriminant in
20111         non-limited types.
20112         (Process_Discriminants): Allow access discriminant in non-limited types
20113         Initialize the new Access_Definition field in N_Object_Renaming_Decl
20114         node.  Change Ada0Y to Ada 0Y in comments
20115
20116         * sem_ch4.adb (Find_Equality_Types): Allow anonymous access types in
20117         equality operators.
20118         Change Ada0Y to Ada 0Y in comments
20119
20120         * sem_ch8.adb (Analyze_Object_Renaming): Give support to access
20121         renamings Change Ada0Y to Ada 0Y in comments
20122
20123         * sem_type.adb (Find_Unique_Type): Give support to the equality
20124         operators for universal access types
20125         Change Ada0Y to Ada 0Y in comments
20126
20127         * sinfo.adb (Access_Definition, Set_Access_Definition): New subprograms
20128
20129         * sinfo.ads (N_Component_Definition): Addition of Access_Definition
20130         field.
20131         (N_Object_Renaming_Declaration): Addition of Access_Definition field
20132         Change Ada0Y to Ada 0Y in comments
20133
20134         * sprint.adb (Sprint_Node_Actual): Give support to the new syntax for
20135         component definition and object renaming nodes
20136         Change Ada0Y to Ada 0Y in comments
20137
20138 2004-02-02  Jose Ruiz  <ruiz@act-europe.fr>
20139
20140         * restrict.adb: Use the new restriction identifier
20141         No_Requeue_Statements instead of the old No_Requeue for defining the
20142         restricted profile.
20143
20144         * sem_ch9.adb (Analyze_Requeue): Check the new restriction
20145         No_Requeue_Statements.
20146
20147         * s-rident.ads: Adding restriction No_Requeue_Statements (AI-00249)
20148         that supersedes the GNAT specific restriction No_Requeue. The later is
20149         kept for backward compatibility.
20150
20151 2004-02-02  Ed Schonberg  <schonberg@gnat.com>
20152
20153         * lib.ads, i-cobol.ads, * s-stoele.ads, s-thread.ads, style.ads,
20154         5staprop.adb, atree.adb, atree.ads, g-crc32.ads: Remove redundant
20155         pragma and fix incorrect ones.
20156
20157         * sem_prag.adb For pragma Inline and pragma Pure_Function, emit a
20158         warning if the pragma is redundant.
20159
20160 2004-02-02  Thomas Quinot  <quinot@act-europe.fr>
20161
20162         * 5staprop.adb: Add missing 'constant' keywords.
20163
20164         * Makefile.in: use consistent value for SYMLIB on
20165         platforms where libaddr2line is supported.
20166
20167 2004-02-02  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20168
20169         * utils.c (end_subprog_body): Do not call rest_of_compilation if just
20170         annotating types.
20171
20172 2004-02-02  Olivier Hainque  <hainque@act-europe.fr>
20173
20174         * init.c (__gnat_install_handler): Setup an alternate stack for signal
20175         handlers in the environment thread. This allows proper propagation of
20176         an exception on stack overflows in this thread even when the builtin
20177         ABI stack-checking scheme is used without support for a stack reserve
20178         region.
20179
20180         * utils.c (create_field_decl): Augment the head comment about bitfield
20181         creation, and don't account for DECL_BIT_FIELD in DECL_NONADDRESSABLE_P
20182         here, because the former is not accurate enough at this point.
20183         Let finish_record_type decide instead.
20184         Don't make a bitfield if the field is to be addressable.
20185         Always set a size for the field if the record is packed, to ensure the
20186         checks for bitfield creation are triggered.
20187         (finish_record_type): During last pass over the fields, clear
20188         DECL_BIT_FIELD when possible in the !STRICT_ALIGNMENT case, as this is
20189         not covered by the calls to layout_decl.  Adjust DECL_NONADDRESSABLE_P
20190         from DECL_BIT_FIELD.
20191
20192 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
20193
20194         * Make-lang.in (doc/gnat_ug_unx.dvi): Use $(abs_docdir).
20195         (doc/gnat_ug_vms.dvi, doc/gnat_ug_unx.dvi): Likewise.
20196         (doc/gnat_ug_unx.dvi, doc/gnat-style.dvi): Likewise.
20197
20198 2004-01-26  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20199
20200         * Makefile.in (mips-sgi-irix5): Remove -lathread from THREADSLIB.
20201
20202         * 5fsystem.ads (Functions_Return_By_DSP): Set to False.
20203         (ZCX_By_Default): Likewise.
20204         (Front_End_ZCX_Support): Likewise.
20205
20206         * 5gtaprop.adb (Stack_Guard): Mark T, On unreferenced.
20207         (Initialize_Lock): Mark Level unreferenced.
20208         (Sleep): Mark Reason unreferenced.
20209         (Timed_Sleep): Likewise.
20210         (Wakeup): Likewise.
20211         (Exit_Task): Use Result.
20212         (Check_No_Locks): Mark Self_ID unreferenced.
20213
20214         * 5gtasinf.adb (New_Sproc): Make Attr constant.
20215         (Bound_Thread_Attributes): Make Sproc constant.
20216         (New_Bound_Thread_Attributes): Likewise.
20217
20218 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20219
20220         * exp_ch3.adb (Build_Slice_Assignment): New TSS procedure for
20221         one-dimensional array an slice assignments, when component type is
20222         controlled.
20223
20224         * exp_ch5.adb (Expand_Assign_Array): If array is one-dimensional,
20225         component type is controlled, and control_actions are in effect, use
20226         TSS procedure rather than generating inline code.
20227
20228         * exp_tss.ads (TSS_Slice_Assign): New TSS procedure for one-dimensional
20229         arrays with controlled components.
20230
20231 2004-01-26  Vincent Celier  <celier@gnat.com>
20232
20233         * gnatcmd.adb (GNATCmd): Add specification of argument file on the
20234         command line for the non VMS case.
20235
20236         * gnatlink.adb (Process_Binder_File): When building object file, if
20237         GNU linker is used, put all object paths between quotes, to prevent ld
20238         error when there are unusual characters (such as '!') in the paths.
20239
20240         * Makefile.generic: When there are sources in Ada and the main is in
20241         C/C++, invoke gnatmake with -B, instead of -z.
20242
20243         * vms_conv.adb (Preprocess_Command_Data): New procedure, extracted
20244         from VMS_Conversion.
20245         (Process_Argument): New procedure, extracted from VMS_Conversion. Add
20246         specification of argument file on the command line.
20247
20248 2004-01-26  Bernard Banner  <banner@gnat.com>
20249
20250         * Makefile.in: Enable GMEM_LIB and SYMLIB for x86_64
20251
20252 2004-01-26  Ed Schonberg  <schonberg@gnat.com>
20253
20254         * snames.adb: Update copyright notice.
20255         Add info on slice assignment for controlled arrays.
20256
20257 2004-01-23  Robert Dewar  <dewar@gnat.com>
20258
20259         * exp_aggr.adb: Minor reformatting
20260
20261         * exp_ch9.adb: Minor code clean up
20262         Minor reformatting
20263         Fix bad character in comment
20264
20265         PR ada/13471
20266         * targparm.adb (Get_Target_Parameters): Give clean abort error on
20267         unexpected end of file, along with more detailed message.
20268
20269 2004-01-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20270
20271         * exp_pakd.adb (Install_PAT): Clear Freeze_Node for PAT and Etype of
20272         PAT.
20273
20274         * decl.c (copy_alias_set): New function.
20275         (gnat_to_gnu_entity, make_aligning_type, make_packable_type): Use it.
20276
20277 2004-01-23  Doug Rupp  <rupp@gnat.com>
20278
20279         * Makefile.in (install-gnatlib): Change occurrences of lib$$file to
20280         lib$${file} in case subsequent character is not a separator.
20281
20282 2004-01-23  Vincent Celier  <celier@gnat.com>
20283
20284         * 5vml-tgt.adb (Build_Dynamic_Library): Invoke gcc with -shared-libgcc
20285         when the GCC version is at least 3.
20286
20287         * make.adb: (Scan_Make_Arg): Pass -B to Scan_Make_Switches
20288         Remove all "Opt.", to prepare for opt split
20289
20290         * prj-part.adb (Parse_Single_Project): New Boolean out parameter
20291         Extends_All. Set to True when the project parsed is an extending all
20292         project. Fails for importing an extending all project only when the
20293         imported project is an extending all project.
20294         (Post_Parse_Context_Clause): Set Is_Extending_All to the with clause,
20295         depending on the value of Extends_All returned.
20296
20297         * prj-proc.adb (Process): Check that no project shares its object
20298         directory with a project that extends it, directly or indirectly,
20299         including a virtual project.
20300         Check that no project extended by another project shares its object
20301         directory with another also extended project.
20302
20303         * prj-tree.adb (Is_Extending_All, Set_Is_Extending_All): Allow for
20304         Kind = N_With_Clause
20305
20306         * prj-tree.ads: Minor reformatting
20307         Indicate that Flag2 also applies to N_With_Clause (Is_Extending_All).
20308
20309 2004-01-23  Ed Schonberg  <schonberg@gnat.com>
20310
20311         * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the attribute
20312         applies to a type with an incomplete view, use full view in Name of
20313         clause, for consistency with uses of Get_Attribute_Definition_Clause.
20314
20315 2004-01-23  Arnaud Charlet  <charlet@act-europe.fr>
20316
20317         * 5itaprop.adb (Set_Priority): Reset the priority to 0 when using
20318         SCHED_RR, since other values are not supported by this policy.
20319         (Initialize): Move initialization of mutex attribute to package
20320         elaboration, to prevent early access to this variable.
20321
20322         * Makefile.in: Remove mention of Makefile.adalib, unused.
20323
20324         * Makefile.adalib, 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
20325         1ssecsta.ads: Removed, unused.
20326
20327 2004-01-21  Javier Miranda  <miranda@gnat.com>
20328
20329         * exp_aggr.adb (Build_Record_Aggr_Code): Do not build the master
20330         entity if already built in the current scope.
20331
20332         * exp_ch9.adb (Build_Master_Entity): Do not set the has_master_entity
20333         reminder in internal scopes. Required for nested limited aggregates.
20334
20335 2004-01-21  Doug Rupp  <rupp@gnat.com>
20336
20337         * Makefile.in (hyphen): New variable, default value '-'. Set to '_' on
20338         VMS. Replace all occurences of libgnat- and libgnarl- with
20339         libgnat$(hyphen) and libgnarl$(hyphen).
20340         Fixed shared library build problem on VMS.
20341
20342 2004-01-21  Robert Dewar  <dewar@gnat.com>
20343
20344         * mlib-prj.adb: Minor reformatting
20345
20346 2004-01-21  Thomas Quinot  <quinot@act-europe.fr>
20347
20348         * prj-tree.adb, 7staprop.adb, vms_conv.adb, xr_tabls.adb: Add missing
20349         'constant' keywords for declaration of pointers that are not modified.
20350
20351         * exp_pakd.adb: Fix English in comment.
20352
20353 2004-01-21  Ed Schonberg  <schonberg@gnat.com>
20354
20355         PR ada/10889
20356         * sem_ch3.adb (Analyze_Subtype_Declaration): For an array subtype,
20357         copy all attributes of the parent, including the foreign language
20358         convention.
20359
20360 2004-01-21  Sergey Rybin  <rybin@act-europe.fr>
20361
20362         PR ada/10565
20363         * sem_ch9.adb (Analyze_Delay_Alternative): Add expression type check
20364         for 'delay until' statement.
20365
20366 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
20367
20368         * Make-lang.in: Replace $(docdir) with doc.
20369         (doc/gnat_ug_unx.info, doc/gnat_ug_vwx.info, doc/gnat_ug_vms.info
20370         doc/gnat_ug_wnt.info, doc/gnat_rm.info, doc/gnat-style.info): Update
20371         to use consistent MAKEINFO rule.
20372         (ada.man, ada.srcman): Dummy entry.
20373         (ADA_INFOFILES): Define.
20374         (ada.info, ada.srcinfo): New rules.
20375
20376 2004-01-19  Arnaud Charlet  <charlet@act-europe.fr>
20377
20378         * utils.c: Update copyright notice, missed in previous change.
20379
20380 2004-01-19  Vincent Celier  <celier@gnat.com>
20381
20382         * mlib-prj.adb (Build_Library.Add_ALI_For): Only add the ALI to the
20383         args if Bind is True. Set First_ALI, if not already done.
20384         (Build_Library): For Stand Alone Libraries, extract from one ALI file
20385         an eventual --RTS switch, for gnatbind, and all backend switches +
20386         --RTS, for linking.
20387
20388 2004-01-19  Robert Dewar  <dewar@gnat.com>
20389
20390         * sem_attr.adb, memtrack.adb: Minor reformatting
20391
20392 2004-01-19  Ed Schonberg  <schonberg@gnat.com>
20393
20394         * exp_ch6.adb (Expand_Call): Remove code to fold calls to functions
20395         that rename enumeration literals. This is properly done in sem_eval.
20396
20397         * sem_eval.ads, sem_eval.adb (Eval_Call): New procedure to fold calls
20398         to functions that rename enumeration literals.
20399
20400         * sem_res.adb (Resolve_Call): Use Eval_Call to fold static calls to
20401         functions that rename enumeration literals.
20402
20403 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
20404
20405         * Make-lang.in (utils.o): Depend on target.h.
20406         * utils.c: Include target.h.
20407         (process_attributes): Use targetm.have_named_sections instead
20408         of ASM_OUTPUT_SECTION_NAME.
20409
20410 2004-01-16  Andreas Jaeger  <aj@suse.de>
20411
20412         * Makefile.in: Add $(DESTDIR).
20413
20414 2004-01-15  Olivier Hainque  <hainque@act-europe.fr>
20415
20416         * decl.c (gnat_to_gnu_entity, E_Variable): Retrieve the object size
20417         also when not defining if a Size clause applies. That information is
20418         not to be ignored.
20419
20420 2004-01-15  Arnaud Charlet  <charlet@act-europe.fr>
20421
20422         * Makefile.in (install-gnatlib, gnatlib-shared-default): Set up
20423         symbolic links for the shared gnat run time when needed.
20424
20425 2004-01-15  Vasiliy Fofanov  <fofanov@act-europe.fr>
20426
20427         * memtrack.adb (Gmem_Initialize): check that gmem.out could be opened
20428         for writing, and terminate with an error message if not.
20429
20430 2004-01-15  Ed Schonberg  <schonberg@gnat.com>
20431
20432         * sem_attr.adb (Resolve_Attribute, case 'Access): Remove spurious
20433         warning on an access to subprogram in an instance, when the target
20434         type is declared in the same generic unit.
20435         (Eval_Attribute): If 'access is known to fail accessibility check,
20436         rewrite as a raise statement.
20437
20438 2004-01-15  GNAT Script  <nobody@gnat.com>
20439
20440         * Make-lang.in: Makefile automatically updated
20441
20442 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
20443
20444         * Make-lang.in (ada.srcextra): Dummy entry.
20445
20446 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
20447
20448         * Make-lang.in: Only regenerate texi files if --enable-maintainer-mode.
20449
20450 2004-01-13  Ed Schonberg  <schonberg@gnat.com>
20451
20452         * exp_ch3.adb (Build_Assignment): Fix bug in handling of controlled
20453         components that are initialized with aggregates.
20454
20455 2004-01-13  Vincent Celier  <celier@gnat.com>
20456
20457         * gnatlink.adb (Process_Binder_File): To find directory of shared
20458         libgcc, if "gcc-lib" is not a subdirectory, look for the last
20459         subdirectory "lib" in the path of the shared libgnat or libgnarl.
20460
20461         * make.adb (Gnatmake): If GCC version is at least 3, link with
20462         -shared-libgcc, when there is at least one shared library project.
20463
20464         * opt.ads (GCC_Version): New integer constant.
20465
20466         * adaint.c (get_gcc_version): New function.
20467
20468 2004-01-13  Robert Dewar  <dewar@gnat.com>
20469
20470         * sem_dist.adb, sem_res.adb, sem_util.adb,
20471         sprint.adb, 3zsocthi.adb, einfo.adb, cstand.adb,
20472         exp_ch4.adb, exp_ch9.adb, exp_dist.adb: Minor reformatting
20473
20474 2004-01-13  Thomas Quinot  <quinot@act-europe.fr>
20475
20476         * s-interr.adb, s-stache.adb, s-taenca.adb, g-regpat.adb,
20477         g-spitbo.adb, 5itaprop.adb: Add missing 'constant' keywords in object
20478         declarations.
20479
20480 2004-01-12  Arnaud Charlet  <charlet@act-europe.fr>
20481
20482         * misc.c: Remove trailing spaces.
20483         Update copyright notice missed in previous change.
20484
20485         PR ada/13572
20486         * bld.adb (Recursive_Process): Reference prefix/share/gnat instead of
20487         prefix/share/make
20488
20489         * Makefile.generic: Update copyright.
20490         Add license notice.
20491
20492         * Makefile.in (ADA_SHARE_MAKE_DIR): Set to prefix/share/gnat instead
20493         of prefix/share/make.
20494
20495         * Makefile.prolog: Update copyright.
20496         Add license notice.
20497
20498 2004-01-12  Laurent Pautet  <pautet@act-europe.fr>
20499
20500         * 3vsocthi.adb, 3vsocthi.ads, 3wsocthi.adb,
20501         3wsocthi.ads, 3zsocthi.adb, 3zsocthi.ads, g-socthi.adb,
20502         g-socthi.ads (Socket_Error_Message): Return C.Strings.chars_ptr
20503         instead of String.
20504
20505         * g-socket.adb (Raise_Socket_Error): Use new Socket_Error_Message
20506         signature.
20507
20508 2004-01-12  Javier Miranda  <miranda@gnat.com>
20509
20510         * cstand.adb, exp_aggr.adb, exp_ch3.adb, exp_ch9.adb, exp_dist.adb,
20511         exp_imgv.adb, exp_pakd.adb, exp_util.adb, par-ch3.adb, sem.adb,
20512         sem_ch12.adb, sem_ch3.adb, sem_dist.adb, sem_prag.adb, sem_res.adb,
20513         sem_util.adb, sinfo.adb, sinfo.ads, sprint.adb: Addition of
20514         Component_Definition node.
20515
20516 2004-01-12  Ed Falis  <falis@gnat.com>
20517
20518         * impunit.adb: Add GNAT.Secondary_Stack_Info as user-visible unit
20519
20520 2004-01-12  Thomas Quinot  <quinot@act-europe.fr>
20521
20522         * link.c: Change default libgnat kind to STATIC for FreeBSD.
20523
20524 2004-01-12  Bernard Banner  <banner@gnat.com>
20525
20526         * Makefile.in: map 86numaux to a-numaux for x86_64
20527
20528 2004-01-12  Ed Schonberg  <schonberg@gnat.com>
20529
20530         * lib-xref.adb (Get_Type_Reference): If the type is the subtype entity
20531         generated to rename a generic actual, go to the actual itself, the
20532         subtype is not a user-visible entity.
20533
20534         * sem_ch7.adb (Uninstall_Declarations): If an entity in the visible
20535         part is a private subtype, reset the visibility of its full view, if
20536         any, to be consistent.
20537
20538         PR ada/13417
20539         * sem_ch12.adb (Analyze_Formal_Package): Diagnose properly an attempt
20540         to use a generic package G as a formal package for another generic
20541         declared within G.
20542
20543 2004-01-12  Robert Dewar  <dewar@gnat.com>
20544
20545         * trans.c (Eliminate_Error_Msg): New procedure called to generate msg
20546
20547         * usage.adb: Remove mention of obsolete -gnatwb switch
20548         Noticed during code reading
20549
20550 2004-01-12  Jerome Guitton  <guitton@act-europe.fr>
20551
20552         * 1ssecsta.adb: Minor changes for -gnatwa warnings
20553
20554 2004-01-12  GNAT Script  <nobody@gnat.com>
20555
20556         * Make-lang.in: Makefile automatically updated
20557
20558 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
20559
20560         * misc.c (gnat_expand_expr): Add alt_rtl parameter.
20561
20562 2004-01-07  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
20563
20564         * link.c [sgi] (shared_libgnat_default): Change to STATIC.
20565
20566 2004-01-05  Kelley Cook  <kcook@gcc.gnu.org>
20567
20568         * Make-lang.in: Revert stamp-xgnatug change from 2003-12-18.
20569         Update comment and copyright date.
20570         * stamp-xgnatug: Delete.
20571
20572 2004-01-05  Robert Dewar  <dewar@gnat.com>
20573
20574         * 1ssecsta.ads: Default_Secondary_Stack is not a constant since it may
20575         be modified by the binder generated main program if the -D switch is
20576         used.
20577
20578         * 4onumaux.ads, 4znumaux.ads: Add Pure_Function pragmas for all
20579         imported functions (since now we expect this to be done for imported
20580         functions)
20581
20582         * 5vtaprop.adb: Add several ??? for sections requiring more comments
20583         Minor reformatting throughout
20584
20585         * 5zinit.adb: Minor reformatting
20586         Add 2004 to copyright date
20587         Minor changes to avoid -gnatwa warnings
20588         Correct some instances of using OR instead of OR ELSE (noted while
20589         doing reformatting)
20590
20591         * sprint.adb: Minor updates to avoid -gnatwa warnings
20592
20593         * s-secsta.ads, s-secsta.adb:
20594         (SS_Get_Max): New function to obtain high water mark for ss stack
20595         Default_Secondary_Stack is not a constant since it may be modified by
20596         the binder generated main program if the -D switch is used.
20597
20598         * switch-b.adb: New -Dnnn switch for binder
20599
20600         * switch-c.adb:
20601         Make -gnatg imply all warnings currently in -gnatwa
20602
20603         * vms_conv.adb: Minor reformatting
20604         Add 2004 to copyright notice
20605         Add 2004 to printed copyright notice
20606
20607         * 3vexpect.adb, 4zsytaco.adb, 3wsocthi.adb, 3zsocthi.adb,
20608         3zsocthi.adb, 56taprop.adb, 56tpopsp.adb, 5amastop.adb,
20609         5aml-tgt.adb, 5ataprop.adb, 5ataprop.adb, 5atpopsp.adb,
20610         5ftaprop.adb, 5ginterr.adb, 5gmastop.adb, 5gml-tgt.adb,
20611         5gtaprop.adb, 5hml-tgt.adb, 5hml-tgt.adb, 5hml-tgt.adb,
20612         5htaprop.adb, 5htraceb.adb, 5itaprop.adb, 5lml-tgt.adb,
20613         5sml-tgt.adb, 5staprop.adb, 5staprop.adb, 5stpopsp.adb,
20614         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vtaprop.adb,
20615         5vml-tgt.adb, 5vtaprop.adb, 5wosprim.adb, 5wtaprop.adb,
20616         5zinterr.adb, 5zintman.adb, 5zml-tgt.adb, 5ztaprop.adb,
20617         6vcpp.adb, 6vcstrea.adb, 7staprop.adb, 7stpopsp.adb,
20618         vxaddr2line.adb, vxaddr2line.adb, xref_lib.adb, xr_tabls.adb,
20619         xr_tabls.ads, s-tasdeb.adb, s-tasdeb.adb, sem_res.ads,
20620         sem_util.adb, sem_util.adb, sem_util.ads, s-interr.adb,
20621         checks.adb, clean.adb, cstand.adb, einfo.ads,
20622         einfo.adb, exp_aggr.adb, exp_ch11.adb, exp_ch3.adb,
20623         exp_ch4.adb, exp_ch5.adb, exp_ch7.adb, exp_ch9.adb,
20624         prj-nmsc.adb, prj-pp.adb, prj-util.adb, sem_attr.adb,
20625         sem_ch10.adb, sem_ch12.adb, sem_ch4.adb, g-dirope.adb,
20626         g-dirope.ads, gnatlbr.adb, i-cstrea.adb, inline.adb,
20627         lib-xref.adb, sem_ch5.adb, sem_ch7.adb, sem_ch8.adb:
20628         Minor reformatting and code clean ups.
20629         Minor changes to prevent -gnatwa warnings
20630
20631         * ali.adb: Minor reformatting and cleanup of code
20632         Acquire new SS indication of secondary stack use from ali files
20633
20634         * a-numaux.ads: Add Pure_Function pragmas for all imported functions
20635         (since now we expect this to be done for imported functions)
20636
20637         * bindgen.adb: Generate call to modify default secondary stack size if
20638         -Dnnn switch given
20639
20640         * bindusg.adb: Add line for new -D switch
20641
20642         * exp_aggr.adb (Type_May_Have_Bit_Aligned_Components): More appropriate
20643         replacement name for Type_May_Have_Non_Bit_Aligned_Components!
20644         Add circuitry for both records and arrays to avoid gigi
20645         processing if the type involved has non-bit-aligned components
20646
20647         * exp_ch5.adb (Expand_Assign_Array): Avoid assumption that
20648         N_String_Literal node always references an E_String_Literal_Subtype
20649         entity. This may not be true in the future.
20650         (Possible_Bit_Aligned_Component): Move processing of
20651         Component_May_Be_Bit_Aligned from exp_ch5 to exp_util
20652
20653         * exp_ch6.adb (Expand_Thread_Body): Pick up
20654         Default_Secondary_Stack_Size as variable so that we get value modified
20655         by possible -Dnnn binder parameter.
20656
20657         * exp_util.adb (Component_May_Be_Bit_Aligned): New function.
20658         (Type_May_Have_Bit_Aligned_Components): New function.
20659
20660         * exp_util.ads (Component_May_Be_Bit_Aligned): New function.
20661         (Type_May_Have_Bit_Aligned_Components): New function.
20662
20663         * fe.h: (Set_Identifier_Casing): Fix prototype.
20664         Add declaration for Sem_Elim.Eliminate_Error_Msg.
20665         Minor reformatting.
20666
20667         * freeze.adb (Freeze_Entity): Add RM reference to error message about
20668         importing constant atomic/volatile objects.
20669         (Freeze_Subprogram): Reset Is_Pure indication for imported subprogram
20670         unless explicit Pure_Function pragma given, to avoid insidious bug of
20671         call to non-pure imported function getting eliminated.
20672
20673         * gnat1drv.adb, gnatbind.adb, gnatchop.adb, gnatfind.adb,
20674         gnatls.adb, gnatlink.adb, gnatmem.adb, gnatname.adb, gnatsym.adb,
20675         gnatxref.adb, gprcmd.adb, gprep.adb, make.adb: Minor reformatting
20676         Add 2004 to printed copyright notice
20677
20678         * lib-writ.ads, lib-writ.adb: Put new SS flag in ali file if secondary
20679         stack used.
20680
20681         * Makefile.rtl: Add entry for g-sestin.o
20682         g-sestin.ads: New file.
20683
20684         * mdll.adb: Minor changes to avoid -gnatwa warnings
20685
20686         * mlib-tgt.adb: Minor reformatting
20687
20688         * opt.ads: New parameter Default_Secondary_Stack_Size (GNATBIND)
20689         New switch Sec_Stack_Used (GNAT, GNATBIND)
20690         Make Default_Secondary_Stack_Size a variable instead of a constant,
20691         so that it can be modified by the new -Dnnn bind switch.
20692
20693         * rtsfind.adb (Load_Fail): Give full error message in configurable
20694         run-time mode if all_errors mode is set. This was not done in the case
20695         of a file not found, which was an oversight.
20696         Note if secondary stack unit is used by compiler.
20697
20698         * sem_elab.adb (Check_A_Call): Rewrite to avoid trying to put
20699         ineffective elaborate all pragmas on non-visible packages (this
20700         happened when a renamed subprogram was called). Now the elaborate all
20701         always goes on the package containing the renaming rather than the one
20702         containing the renamed subprogram.
20703
20704         * sem_elim.ads, sem_elim.adb (Eliminate_Error_Msg): New procedure
20705         (Process_Eliminate_Pragma): Add parameter to capture pragma location.
20706
20707         * sem_eval.adb (Eval_String_Literal): Do not assume that string literal
20708         has an Etype that references an E_String_Literal.
20709         (Eval_String_Literal): Avoid assumption that N_String_Literal node
20710         always references an E_String_Literal_Subtype entity. This may not
20711         be true in the future.
20712
20713         * sem_prag.adb (Process_Eliminate_Pragma): Add parameter to capture
20714         pragma location.
20715
20716         * sem_res.adb (Resolve): Specialize msg for function name used in proc
20717         call.
20718
20719 2004-01-05  Ed Falis  <falis@gnat.com>
20720
20721         * g-debuti.adb: Replaced direct boolean operator with short-circuit
20722         form.
20723
20724 2004-01-05  Vincent Celier  <celier@gnat.com>
20725
20726         * bld.adb: Minor comment updates
20727         (Process_Declarative_Items): Correct incorrect name (Index_Name instead
20728         of Item_Name).
20729
20730         * make.adb (Gnatmake): Special process for files to compile/check when
20731         -B is specified. Fail when there are only foreign mains in attribute
20732         Main of the project file and -B is not specified. Do not skip bind/link
20733         steps when -B is specified.
20734
20735         * makeusg.adb: Document new switch -B
20736
20737         * opt.ads (Build_Bind_And_Link_Full_Project): New Boolean flag
20738
20739         * switch-m.adb: (Scan_Make_Switches): Process -B switch
20740
20741         * vms_data.ads: Add new GNAT PRETTY qualifier
20742         /FORM_FEED_AFTER_PRAGMA_PAGE for switch -ff
20743
20744 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
20745
20746         * trans.c (tree_transform, case N_Free_Statement): Handle thin pointer
20747         case.
20748
20749         * misc.c (gnat_printable_name): If VERBOSITY is 2, call
20750         Set_Identifier_Casing.
20751
20752         * decl.c (gnat_to_gnu_entity, E_Function): Give error if return type
20753         has size that overflows.
20754
20755 2004-01-05  Gary Dismukes  <dismukes@gnat.com>
20756
20757         * exp_ch4.adb (Expand_Array_Comparison): Add Boolean constant to avoid
20758         -gnatwa warning on static condition.
20759
20760 2004-01-05  Doug Rupp  <rupp@gnat.com>
20761
20762         * link.c: (shared_libgnat_default) [VMS]: Change to STATIC.
20763
20764 2004-01-05  Arnaud Charlet  <charlet@act-europe.fr>
20765
20766         * Makefile.in: Install ali files using INSTALL_DATA_DATE to preserve
20767         all attributes, including read-only attribute.
20768
20769 2004-01-05  Pascal Obry  <obry@gnat.com>
20770
20771         * bindgen.adb (Gen_Object_Files_Options): Generate the new shared
20772         library naming scheme.
20773
20774         * mlib-prj.adb (Build_Library): Generate different names for the static
20775         or dynamic version of the GNAT runtime. This is needed to support the
20776         new shared library naming scheme.
20777         (Process_Binder_File): Add detection of shared library in binder file
20778         based on the new naming scheme.
20779
20780         * gnatlink.adb (Process_Binder_File): Properly detect the new naming
20781         scheme for the shared runtime libraries.
20782
20783         * Makefile.in:
20784         (LIBRARY_VERSION) [VMS]: Convert all . to _ to conform to new naming
20785         scheme.
20786         (install-gnatlib): Do not create symlinks for shared libraries.
20787         (gnatlib-shared-default): Idem.
20788         (gnatlib-shared-dual-win32): New target. Not used for now as the
20789         auto-import feature does not support arrays/records.
20790         (gnatlib-shared-win32): Do not create copy for the shared libraries.
20791         (gnatlib-shared-vms): Fix shared runtime libraries names.
20792
20793         * osint.ads, osint.adb (Shared_Lib): New routine, returns the target
20794         dependent runtime shared library name.
20795
20796 2004-01-05  Vasiliy Fofanov  <fofanov@act-europe.fr>
20797
20798         * osint.adb (Read_Library_Info): Remove bogus check if ALI is older
20799         than the object.
20800
20801 2004-01-05  Ed Schonberg  <schonberg@gnat.com>
20802
20803         * sem_ch4.adb (Analyze_Allocator): Check restriction on dynamic
20804         protected objects when allocator has a subtype indication, not a
20805         qualified expression. Note that qualified expressions may have to be
20806         checked when limited aggregates are implemented.
20807
20808         * sem_prag.adb (Analyze_Pragma, case Import): If enclosing package is
20809         pure, emit warning.
20810         (Analyze_Pragma, case Pure_Function): If enclosing package is pure and
20811         subprogram is imported, remove warning.
20812
20813 2004-01-05  Geert Bosch  <bosch@gnat.com>
20814
20815         * s-poosiz.adb: Update copyright notice.
20816         (Allocate): Use Task_Lock to protect against concurrent access.
20817         (Deallocate): Likewise.
20818
20819 2004-01-05  Joel Brobecker  <brobecker@gnat.com>
20820
20821         * s-stalib.adb (Elab_Final_Code): Add missing year in date inside ???
20822         comment.
20823
20824 2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
20825
20826         * gnat_ug.texi: Force a CVS commit by updating copyright.
20827         * gnat_ug_vxw.texi: Regenerate.
20828         * gnat_ug_wnt.texi: Regenerate.
20829         * gnat_ug_vms.texi: Regenerate.
20830         * gnat_ug_unx.texi: Regenerate.
20831
20832 2003-12-20  Kazu Hirata  <kazu@cs.umass.edu>
20833
20834         * trans.c: Remove uses of "register" specifier in
20835         declarations of local variables.
20836
20837 2003-12-18  Kelley Cook  <kcook@gcc.gnu.org>
20838
20839         * stamp-xgnatug: New stamp file.
20840         * Make-lang.in (stamp-xgnatug):  New stamp file and comment.
20841         (ada/doctools/xgnatug): Add $(build_exeext).
20842         (ada/gnat_ug_unx.texi, ada/gnat_ug_vwx.texi, ada/gnat_ug_vms.texi
20843         ada/gnat_ug_wnt.texi): Update to depend on stamp-xgnatug.
20844
20845 2003-12-17  Ed Falis  <falis@gnat.com>
20846
20847         * a-elchha.adb (Tailored_Exception_Information): made Info constant to
20848         eliminate warning.
20849
20850         * a-exextr.adb: Add context clause for
20851         Ada.Exceptions.Last_Chance_Handler.
20852
20853 2003-12-17  Sergey Rybin  <rybin@act-europe.fr>
20854
20855         * cstand.adb (Create_Standard): Change the way how the declaration of
20856         the Duration type is created (making it the same way as it is for all
20857         the other standard types).
20858
20859 2003-12-17  Robert Dewar  <dewar@gnat.com>
20860
20861         * s-crtl.ads: Fix header format
20862         Change Pure to Preelaborate
20863
20864 2003-12-17  Ed Schonberg  <schonberg@gnat.com>
20865
20866         * checks.adb (Selected_Length_Checks): Generate an Itype reference for
20867         the expression type only if it is declared in the current unit.
20868
20869         * sem_ch3.adb (Constrain_Index): Handle properly a range whose bounds
20870         are universal and already analyzed, as can occur in constrained
20871         subcomponents that depend on discriminants, when one constraint is a
20872         subtype mark.
20873
20874         * sem_res.adb (Resolve_Type_Conversion): Any arithmetic expression of
20875         type Any_Fixed is legal as the argument of a conversion, if only one
20876         fixed-point type is in context.
20877
20878 2003-12-17  GNAT Script  <nobody@gnat.com>
20879
20880         * Make-lang.in: Makefile automatically updated
20881
20882 2003-12-15  Robert Dewar  <dewar@gnat.com>
20883
20884         * exp_ch6.adb (Expand_Thread_Body): Fix error in picking up default
20885         sec stack size.
20886
20887 2003-12-15  Vincent Celier  <celier@gnat.com>
20888
20889         * gnatchop.adb: (Error_Msg): Do not exit on error for a warning
20890         (Gnatchop): Do not set failure status when reporting the number of
20891         warnings.
20892
20893 2003-12-15  Doug Rupp  <rupp@gnat.com>
20894
20895         * s-ctrl.ads: New file.
20896
20897         * Makefile.rtl (GNAT_RTL_NONTASKING_OBJS): Add s-crtl$(objext).
20898
20899         * Make-lang.in: (GNAT_ADA_OBJS): Add ada/s-crtl.o.
20900         (GNATBIND_OBJS): Add ada/s-crtl.o.
20901
20902         * Makefile.in [VMS]: Clean up ifeq rules.
20903
20904         * gnatlink.adb, 6vcstrea.adb, a-direio.adb, a-sequio.adb,
20905         a-ststio.adb, a-textio.adb, g-os_lib.adb, a-witeio.adb,
20906         g-os_lib.ads, i-cstrea.adb, i-cstrea.ads, s-direio.adb,
20907         s-fileio.adb, s-memcop.ads, s-memory.adb, s-stache.adb,
20908         s-tasdeb.adb: Update copyright.
20909         Import System.CRTL.
20910         Make minor modifications to use System.CRTL declared functions instead
20911         of importing locally.
20912
20913 2003-12-15  GNAT Script  <nobody@gnat.com>
20914
20915         * Make-lang.in: Makefile automatically updated
20916
20917 2003-12-11  Ed Falis  <falis@gnat.com>
20918
20919         * 5zinit.adb: Clean up.
20920
20921         * 5zintman.adb (Notify_Exception): replaced case statement with a call
20922         to __gnat_map_signal, imported from init.c to support
20923         signal -> exception mappings that depend on the vxWorks version.
20924
20925         * init.c:
20926         Created and exported __gnat_map_signal to support signal -> exception
20927         mapping that is dependent on the VxWorks version.
20928         Change mapping of SIGBUS from Program_Error to Storage_Error on VxWorks
20929
20930 2003-12-11  Vasiliy Fofanv  <fofanov@act-europe.fr>
20931
20932         * 5wosinte.ads: Link with -mthreads switch.
20933
20934 2003-12-11  Arnaud Charlet  <charlet@act-europe.fr>
20935
20936         * init.c (__gnat_install_handler [NetBSD]): Set
20937         __gnat_handler_installed, as done on all other platforms.
20938         Remove duplicated code.
20939
20940 2003-12-11  Jerome Guitton  <guitton@act-europe.fr>
20941
20942         * Makefile.in (rts-zfp, rts-ravenscar): Create libgnat.a.
20943
20944 2003-12-11  Thomas Quinot  <quinot@act-europe.fr>
20945
20946         * sinfo.ads: Fix inconsistent example code in comment.
20947
20948 2003-12-11  Robert Dewar  <dewar@gnat.com>
20949
20950         * a-tiinau.adb: Add a couple of comments
20951
20952         * sem_ch3.adb: Minor reformatting
20953
20954         * sem_prag.adb:
20955         Fix bad prototype of Same_Base_Type in body (code reading cleanup)
20956         Minor reformatting throughout
20957
20958 2003-12-11  Ed Schonberg  <schonberg@gnat.com>
20959
20960         * exp_ch7.adb (Establish_Transient_Scope): If the call is within the
20961         bounds of a loop, create a separate block in order to generate proper
20962         cleanup actions to prevent memory leaks.
20963
20964         * sem_res.adb (Resolve_Call): After a call to
20965         Establish_Transient_Scope, the call may be rewritten and relocated, in
20966         which case no further processing is needed.
20967
20968         * sem_util.adb: (Wrong_Type): Refine previous fix.
20969          Fixes ACATS regressions.
20970
20971         PR ada/13353
20972
20973         * sem_prag.adb (Back_End_Cannot_Inline): A renaming_as_body can always
20974         be inlined.
20975
20976 2003-12-08  Jerome Guitton  <guitton@act-europe.fr>
20977
20978         * 5ytiitho.adb, 5zthrini.adb, 5ztiitho.adb, i-vthrea.adb,
20979         i-vthrea.ads, s-tpae65.adb, s-tpae65.ads: Cleanup: Remove a bunch of
20980         obsolete files.
20981
20982         * Makefile.in: (rts-ravenscar): Generate an empty libgnat.a.
20983         (rts-zfp): Ditto.
20984
20985 2003-12-08  Robert Dewar  <dewar@gnat.com>
20986
20987         * 7sintman.adb: Minor reformatting
20988
20989         * bindgen.adb: Configurable_Run_Time mode no longer suppresses the
20990         standard linker options to get standard libraries linked. We now plan
20991         to provide dummy versions of these libraries to match the appropriate
20992         configurable run-time (e.g. if a library is not needed at all, provide
20993         a dummy empty library).
20994
20995         * targparm.ads: Configurable_Run_Time mode no longer affects linker
20996         options (-L parameters and standard libraries). What we plan to do is
20997         to provide dummy libraries where the libraries are not required.
20998
20999         * gnatbind.adb: Minor comment improvement
21000
21001 2003-12-08  Javier Miranda  <miranda@gnat.com>
21002
21003         * exp_aggr.adb (Build_Record_Aggr_Code): Do not remove the expanded
21004         aggregate in the parent. Otherwise constants with limited aggregates
21005         are not supported. Add new formal to pass the component type (Ctype).
21006         It is required to call the corresponding IP subprogram in case of
21007         default initialized components.
21008         (Gen_Assign): In case of default-initialized component, generate a
21009         call to the IP subprogram associated with the component.
21010         (Build_Record_Aggr_Code): Remove the aggregate from the parent in case
21011         of aggregate with default initialized components.
21012         (Has_Default_Init_Comps): Improve implementation to recursively check
21013         all the present expressions.
21014
21015         * exp_ch3.ads, exp_ch3.adb (Build_Initialization_Call): Add new formal
21016         to indicate that the initialization call corresponds to a
21017         default-initialized component of an aggregate.
21018         In case of default initialized aggregate with tasks this parameter is
21019         used to generate a null string (this is just a workaround that must be
21020         improved later). In case of discriminants, this parameter is used to
21021         generate a selected component node that gives access to the discriminant
21022         value.
21023
21024         * exp_ch9.ads, exp_ch9.adb (Build_Task_Allocate_Block_With_Stmts): New
21025         subprogram, based on Build_Task_Allocate_Block, but adapted to expand
21026         allocated aggregates with default-initialized components.
21027
21028         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve error message if
21029         the box notation is used in positional aggregates.
21030
21031 2003-12-08  Samuel Tardieu  <tardieu@act-europe.fr>
21032
21033         * lib.ads: Fix typo in comment
21034
21035 2003-12-08  Vincent Celier  <celier@gnat.com>
21036
21037         * prj.adb (Project_Empty): New component Unkept_Comments
21038         (Scan): Remove procedure; moved to Prj.Err.
21039
21040         * prj.ads (Project_Data): New Boolean component Unkept_Comments
21041         (Scan): Remove procedure; moved to Prj.Err.
21042
21043         * prj-dect.adb: Manage comments for the different declarations.
21044
21045         * prj-part.adb (With_Record): New component Node
21046         (Parse): New Boolean parameter Store_Comments, defaulted to False.
21047         Set the scanner to return ends of line and comments as tokens, if
21048         Store_Comments is True.
21049         (Pre_Parse_Context_Clause): Create the N_With_Clause nodes so that
21050         comments are associated with these nodes. Store the node IDs in the
21051         With_Records.
21052         (Post_Parse_Context_Clause): Use the N_With_Clause nodes stored in the
21053         With_Records.
21054         (Parse_Single_Project): Call Pre_Parse_Context_Clause before creating
21055         the N_Project node. Call Tree.Save and Tree.Reset before scanning the
21056         current project. Call Tree.Restore afterwards. Set the various nodes
21057         for comment storage (Next_End, End_Of_Line, Previous_Line,
21058         Previous_End).
21059
21060         * prj-part.ads (Parse): New Boolean parameter Store_Comments,
21061         defaulted to False.
21062
21063         * prj-pp.adb (Write_String): New Boolean parameter Truncated, defaulted
21064         to False. When Truncated is True, truncate the string, never go to the
21065         next line.
21066         (Write_End_Of_Line_Comment): New procedure
21067         (Print): Process comments for nodes N_With_Clause,
21068         N_Package_Declaration, N_String_Type_Declaration,
21069         N_Attribute_Declaration, N_Typed_Variable_Declaration,
21070         N_Variable_Declaration, N_Case_Construction, N_Case_Item.
21071         Process nodes N_Comment.
21072
21073         * prj-tree.ads, prj-tree.adb (Default_Project_Node): If it is a node
21074         without comments and there are some comments, set the flag
21075         Unkept_Comments to True.
21076         (Scan): If there are comments, set the flag Unkept_Comments to True and
21077         clear the comments.
21078         (Project_Node_Kind): Add enum values N_Comment_Zones, N_Comment
21079         (Next_End_Nodes: New table
21080         (Comment_Zones_Of): New function
21081         (Scan): New procedure; moved from Prj. Accumulate comments in the
21082         Comments table and set end of line comments, comments after, after end
21083         and before end.
21084         (Add_Comments): New procedure
21085         (Save, Restore, Seset_State): New procedures
21086         (There_Are_Unkept_Comments): New function
21087         (Set_Previous_Line_Node, Set_Previous_End_Node): New procedures
21088         (Set_End_Of_Line, Set_Next_End_Node, Remove_Next_End_Node): New
21089         procedures.
21090         (First_Comment_After, First_Comment_After_End): New functions
21091         (First_Comment_Before, First_Comment_Before_End): New functions
21092         (Next_Comment): New function
21093         (End_Of_Line_Comment, Follows_Empty_Line,
21094         Is_Followed_By_Empty_Line): New functions
21095         (Set_First_Comment_After, Set_First_Comment_After_End): New procedures
21096         (Set_First_Comment_Before, Set_First_Comment_Before_End): New procedures
21097         (Set_Next_Comment): New procedure
21098         (Default_Project_Node): Associate comment before if the node can store
21099         comments.
21100
21101         * scans.ads (Token_Type): New enumeration value Tok_Comment
21102         (Comment_Id): New global variable
21103
21104         * scng.ads, scng.adb (Comment_Is_Token): New Boolean global variable,
21105         defaulted to False.
21106         (Scan): Store position of start of comment. If comments are tokens, set
21107         Comment_Id and set Token to Tok_Comment when scanning a comment.
21108         (Set_Comment_As_Token): New procedure
21109
21110         * sinput-p.adb: Update Copyright notice
21111         (Source_File_Is_Subunit): Call Prj.Err.Scanner.Scan instead of Prj.Scan
21112         that no longer exists.
21113
21114 2003-12-08  Javier Miranda  <miranda@gnat.com>
21115
21116         * sem_aggr.adb: Add dependence on Exp_Tss package
21117         Correct typo in comment
21118         (Resolve_Aggregate): In case of array aggregates set the estimated
21119         type of the aggregate before calling resolve. This is needed to know
21120         the name of the corresponding IP in case of limited array aggregates.
21121         (Resolve_Array_Aggregate): Delay the resolution to the expansion phase
21122         in case of default initialized array components.
21123
21124         * sem_ch12.adb (Analyze_Formal_Object_Declaration): Allow limited
21125         types. Required to give support to limited aggregates in generic
21126         formals.
21127
21128 2003-12-08  Ed Schonberg  <schonberg@gnat.com>
21129
21130         * sem_ch3.adb (Check_Initialization): For legality purposes, an
21131         inlined body functions like an instantiation.
21132         (Decimal_Fixed_Point_Declaration): Do not set kind of first subtype
21133         until bounds are analyzed, to diagnose premature use of type.
21134
21135         * sem_util.adb (Wrong_Type): Improve error message when the type of
21136         the expression is used prematurely.
21137
21138 2003-12-08  GNAT Script  <nobody@gnat.com>
21139
21140         * Make-lang.in: Makefile automatically updated
21141
21142 2003-12-08  Arnaud Charlet  <charlet@act-europe.fr>
21143
21144         * sinfo.h, einfo.h, nmake.ads, nmake.adb, treeprs.ads: Removed, since
21145         they are automatically generated by Make-lang.in and cause nothing but
21146         maintenance troubles.
21147
21148 2003-12-05  Thomas Quinot  <quinot@act-europe.fr>
21149
21150         * 3ssoliop.ads: Fix comment (this is the Solaris, not the UnixWare,
21151         version of this unit).
21152
21153 2003-12-05  Olivier Hainque  <hainque@act-europe.fr>
21154
21155         * 53osinte.ads, 54osinte.ads, 55osinte.ads, 56osinte.ads, 5bosinte.ads,
21156         5cosinte.ads, 5hosinte.ads, 5iosinte.ads, 5losinte.ads,
21157         5tosinte.ads: Define the SA_SIGINFO constant, to allow references from
21158         the body of System.Interrupt_Management common to several targets.
21159         Update copyright notice when appropriate.
21160
21161         * 52osinte.ads, 5posinte.ads: Define a dummy value for the SA_SIGINFO
21162         constant.
21163
21164         * 7sintman.adb (elaboration): Set SA_SIGINFO in the sigaction flags,
21165         to ensure that the kernel fills in the interrupted context structure
21166         before calling a signal handler, which is necessary to be able to
21167         unwind past it. Update the copyright notice.
21168
21169 2003-12-05  Jerome Guitton  <guitton@act-europe.fr>
21170
21171         * a-elchha.ads: New file.
21172
21173         * a-elchha.adb: New default last chance handler. Contents taken from
21174         Ada.Exceptions.Exception_Traces.Unhandled_Exception_Terminate.
21175
21176         * a-exextr.adb (Unhandled_Exception_Terminate): Most of this routine
21177         is moved to a-elchha.adb to provide a target-independent default last
21178         chance handler.
21179
21180         * Makefile.rtl: Add a-elchha.o
21181
21182         * Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add a-elchha.o.
21183
21184 2003-12-05  Ed Schonberg  <schonberg@gnat.com>
21185
21186         * exp_ch6.adb (Expand_Call): If the subprogram is inlined and is
21187         declared in an instance, do not inline the call if the instance is not
21188         frozen yet, to prevent order of elaboration problems.
21189
21190         * sem_prag.adb: Add comments for previous fix.
21191
21192 2003-12-05  Samuel Tardieu  <tardieu@act-europe.fr>
21193
21194         * g-table.adb: Use the right variable in Set_Item.
21195         Update copyright notice.
21196
21197 2003-12-05  Arnaud Charlet  <charlet@act-europe.fr>
21198
21199         * Makefile.in: Remove unused rules.
21200
21201 2003-12-05  Vincent Celier  <celier@gnat.com>
21202
21203         * switch-c.adb (Scan_Front_End_Switches): Remove processing of
21204         -nostdlib. Not needed here after all.
21205
21206 2003-12-03  Thomas Quinot  <quinot@act-europe.fr>
21207
21208         PR ada/11724
21209
21210         * adaint.h, adaint.c, g-os_lib.ads:
21211         Do not assume that the offset argument to lseek(2) is a 32 bit integer,
21212         on some platforms (including FreeBSD), it is a 64 bit value.
21213         Introduce a __gnat_lseek wrapper in adaint.c to allow for portability.
21214
21215 2003-12-03  Arnaud Charlet  <charlet@act-europe.fr>
21216
21217         * gnatvsn.ads (Library_Version): Now contain only the relevant
21218         version info.
21219         (Verbose_Library_Version): New constant.
21220
21221         * g-spipat.adb, g-awk.adb, g-debpoo.adb,
21222         g-memdum.adb, g-thread.adb, s-geveop.adb, s-interr.adb,
21223         s-taskin.adb, s-tassta.adb: Make code compile with -gnatwa.
21224
21225         * gnatlbr.adb: Clean up: replace Library_Version by
21226         Verbose_Library_Version.
21227
21228         * make.adb, lib-writ.adb, exp_attr.adb:
21229         Clean up: replace Library_Version by Verbose_Library_Version.
21230
21231         * 5lintman.adb: Removed.
21232
21233         * Makefile.in:
21234         Update and simplify computation of LIBRARY_VERSION.
21235         Fix computation of GSMATCH_VERSION.
21236         5lintman.adb is no longer used: replaced by 7sintman.adb.
21237
21238 2003-12-03  Robert Dewar  <dewar@gnat.com>
21239
21240         * exp_ch5.adb:
21241         (Possible_Bit_Aligned_Component): Maybe_Bit_Aligned_Large_Component new
21242         name. Modified to consider small non-bit-packed arrays as troublesome
21243         and in need of component-by-component assigment expansion.
21244
21245 2003-12-03  Vincent Celier  <celier@gnat.com>
21246
21247         * lang-specs.h: Process nostdlib as nostdinc
21248
21249         * back_end.adb: Update Copyright notice
21250         (Scan_Compiler_Arguments): Process -nostdlib directly.
21251
21252 2003-12-03  Jose Ruiz  <ruiz@act-europe.fr>
21253
21254         * Makefile.in:
21255         When defining LIBGNAT_TARGET_PAIRS for bare board targets, remove the
21256         redundant inclusion of EXTRA_HIE_NONE_TARGET_PAIRS, which is always
21257         included in HIE_NONE_TARGET_PAIRS.
21258
21259 2003-12-03  Ed Schonberg  <schonberg@gnat.com>
21260
21261         * sem_attr.adb:
21262         (Legal_Formal_Attribute): Attribute is legal in an inlined body, as it
21263         is legal in an instance, because legality is cheched in the template.
21264
21265         * sem_prag.adb:
21266         (Analyze_Pragma, case Warnings): In an inlined body, the pragma may be
21267         appplied to an unchecked conversion of a formal parameter.
21268
21269         * sem_warn.adb:
21270         (Output_Unreferenced_Messages): Suppress "not read" warnings on imported
21271         variables.
21272
21273 2003-12-03  Olivier Hainque  <hainque@act-europe.fr>
21274
21275         * tb-alvms.c (unwind_regular_code, unwind_kernel_handler): New
21276         routines. The second one is new functionality to deal with backtracing
21277         through signal handlers.
21278         (unwind): Split into the two separate subroutines above.
21279         Update the documentation, and deal properly with sizeof (REG) different
21280         from sizeof (void*).
21281
21282 2003-12-01  Nicolas Setton  <setton@act-europe.fr>
21283
21284         * a-except.adb (Raise_Current_Excep): Add a pragma Inspection_Point,
21285         so that the debugger can reliably access the value of the parameter,
21286         and therefore is able to display the exception name when an exception
21287         breakpoint is reached.
21288
21289 2003-12-01  Thomas Quinot  <quinot@act-europe.fr>
21290
21291         * fmap.adb: Fix typo in warning message.
21292
21293         * g-socket.ads, g-socket.adb: Make Free a visible instance of
21294         Ada.Unchecked_Deallocation (no need to wrap it in a subprogram).
21295
21296 2003-12-01  Vincent Celier  <celier@gnat.com>
21297
21298         * mlib-prj.adb (Build_Library.Process): Do not check a withed unit if
21299         ther is no Afile.
21300         (Build_Library): Get the switches only if Default_Switches is declared
21301         in package Binder.
21302
21303 2003-12-01  Ed Schonberg  <schonberg@gnat.com>
21304
21305         * exp_ch6.adb (Expand_Actuals): When applying validity checks to
21306         actuals that are indexed components, reanalyze actual to ensure that
21307         packed array references are properly expanded.
21308
21309         * sem_ch5.adb (Diagnose_Non_Variable_Lhs): Add special case for
21310         attempted assignment to a discriminant.
21311
21312 2003-12-01  Robert Dewar  <dewar@gnat.com>
21313
21314         * rtsfind.adb, exp_ch4.adb, s-exnint.ads, s-exnint.adb: Minor
21315         reformatting.
21316
21317         * switch-c.adb: Minor reformatting of comments
21318
21319 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21320
21321         * Makefile.in: Clean ups.
21322
21323 2003-12-01  GNAT Script  <nobody@gnat.com>
21324
21325         * Make-lang.in: Makefile automatically updated
21326
21327 2003-12-01  Arnaud Charlet  <charlet@act-europe.fr>
21328
21329         * 5wsystem.ads: Disable zero cost exception, not ready yet.
21330
21331 2003-11-29  Ulrich Weigand  <uweigand@de.ibm.com>
21332
21333         * Make-lang.in (nmake.ads): Add dependency on ada/nmake.adb
21334         to force serialization.
21335
21336 2003-11-26  Thomas Quinot  <quinot@act-europe.fr>
21337
21338         * g-socket.ads, g-socket.adb:
21339         Clarify documentation of function Stream. Introduce a Free procedure
21340         to release the returned Stream once it becomes unused.
21341
21342         * 5asystem.ads: For Alpha Tru64, enable ZCX by default.
21343
21344 2003-11-26  Arnaud Charlet  <charlet@act-europe.fr>
21345
21346         (Cond_Timed_Wait): Introduce new constant Time_Out_Max,
21347         since NT 4 cannot handle timeout values that are too large,
21348         e.g. DWORD'Last - 1.
21349
21350 2003-11-26  Ed Schonberg  <schonberg@gnat.com>
21351
21352         * exp_ch4.adb:
21353         (Expand_N_Slice): Recognize all cases of slices that appear as actuals
21354         in procedure calls and whose expansion must be deferred.
21355
21356         * exp_ch6.adb (Add_Call_By_Copy_Node): Remove previous fix. Proper fix
21357         is in exp_ch4.
21358
21359         * sem_ch3.adb:
21360         (Build_Derived_Array_Type): Create operator for unconstrained type
21361         if ancestor is unconstrained.
21362
21363 2003-11-26  Vincent Celier  <celier@gnat.com>
21364
21365         * make.adb (Project_Object_Directory): New global variable
21366         (Change_To_Object_Directory): New procedure
21367         (Collect_Arguments_And_Compile): Call Change_To_Object_Directory instead
21368         of Change_Dir directly. Do not change working directory to object
21369         directory of main project after each compilation.
21370         (Gnatmake): Use Change_To_Object_Directory instead of Change_Dir
21371         directly.
21372         Change to object directory of main project before binding step.
21373         (Initialize): Initialize Project_Object_Directory to No_Project
21374
21375         * mlib-prj.adb:
21376         (Build_Library): Take into account Builder'Default_Switches ("Ada") when
21377         binding a Stand-Alone Library.
21378
21379         * output.adb: Update Copyright notice
21380         (Write_Char): Output buffer when full
21381
21382 2003-11-26  Robert Dewar  <dewar@gnat.com>
21383
21384         * sem_ch13.adb: (Check_Size): Reset size if size is too small
21385
21386         * sem_ch13.ads:
21387         (Check_Size): Fix documentation to include bit-packed array case
21388
21389         * sem_res.adb: Implement restriction No_Direct_Boolean_Operators
21390
21391         * s-rident.ads: Put No_Direct_Boolean_Operators in proper order
21392
21393         * s-rident.ads: Add new restriction No_Direct_Boolean_Operators
21394
21395 2003-11-24  Arnaud Charlet <charlet@act-europe.fr>
21396
21397         PR ada/13142
21398         * utils.c (init_gigi_decls): Change name of built-in setjmp to
21399         __builtin_setjmp, since this is apparently needed by recent
21400         non Ada changes.
21401
21402 2003-11-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
21403
21404         * adadecode.c: Only include ctype.h if not IN_GCC.
21405         (__gnat_decode): Use ISDIGIT from safe-ctype.h.
21406
21407 2003-11-24  Jose Ruiz  <ruiz@act-europe.fr>
21408
21409         * Makefile.in:
21410         Use 5zintman.ads for VxWorks targets. This file avoid confusion between
21411         signals and interrupts.
21412
21413         * 5zintman.ads: New File.
21414
21415         * 5zintman.adb: Replace Exception_Interrupts by Exception_Signals, and
21416         add exception signals to the set of unmasked signals.
21417
21418         * 5ztaprop.adb:
21419         Use Abort_Task_Signal instead of Abort_Task_Interrupt to avoid confusion
21420         between signals and interrupts.
21421         Add to Unblocked_Signal_Mask the set of signals that are in
21422         Keep_Unmasked.
21423
21424         * 7sinmaop.adb:
21425         Adding a check to see whether the Interrupt_ID we want to unmask is in
21426         the range of Keep_Unmasked (in procedure Interrupt_Self_Process). The
21427         reason is that the index type of the Keep_Unmasked array is not always
21428         Interrupt_ID; it may be a subtype of Interrupt_ID.
21429
21430 2003-11-24  Gary Dismukes  <dismukes@gnat.com>
21431
21432         * exp_util.adb:
21433         (Remove_Side_Effects): Condition constantness of object created for a
21434          an unchecked type conversion on the constantness of the expression
21435          to ensure the correct value for 'Constrained when passing components
21436          of view-converted class-wide objects.
21437
21438 2003-11-24  Robert Dewar  <dewar@gnat.com>
21439
21440         * par-load.adb (Load): Improve handling of misspelled and missing units
21441         Removes several cases of compilation abandoned messages
21442
21443         * lib.adb: (Remove_Unit): New procedure
21444
21445         * lib.ads: (Remove_Unit): New procedure
21446
21447         * lib-load.adb: Minor reformatting
21448
21449 2003-11-24  Vincent Celier  <celier@gnat.com>
21450
21451         * make.adb:
21452         (Gnatmake, Initialize): Call Usage instead of Makeusg directly
21453         (Marking_Label): Label to mark processed source files. Incremented for
21454         each executable.
21455         (Gnatmake): Increase Marking_Labet for each executable
21456         (Is_Marked): Compare against marking label
21457         (Mark): Mark with marking label
21458
21459 2003-11-24  Jerome Guitton  <guitton@act-europe.fr>
21460
21461         * s-thread.ads:
21462         Move the declaration of the TSD for System.Threads to System.Soft_Links.
21463         Add some comments.
21464
21465         * Makefile.in: Added target pair for s-thread.adb for cert runtime.
21466         (rts-cert): build a single relocatable object for the run-time lib.
21467         Fix perms.
21468
21469 2003-11-24  Vasiliy Fofanov  <fofanov@act-europe.fr>
21470
21471         * Make-lang.in:
21472         Use gnatls rather than gcc to obtain the location of GNAT RTL for
21473         crosstools build.
21474
21475 2003-11-24  Sergey Rybin  <rybin@act-europe.fr>
21476
21477         * opt.adb (Tree_Write): Gnat_Version_String is now a function, so we
21478         can not use it as before (that is, as a variable) when dumping it into
21479         the tree file. Add a local variable to store the result of this
21480         function and to be used as the string to be written into the tree.
21481
21482         * scn.adb (Initialize_Scanner): Add comments explaining the recent
21483         changes.
21484
21485         * sinput.adb (Source_First, Source_Last): In case of
21486         Internal_Source_File, replace returning attributes of
21487         Internal_Source_Ptr (which is wrong) with returning attributes of
21488         Internal_Source.
21489
21490 2003-11-24  Ed Schonberg  <schonberg@gnat.com>
21491
21492         * sem_ch3.adb:
21493         (New_Concatenation_Op): Proper name for New_Binary_Operator, only
21494         used for implicit concatenation operators.
21495         Code cleanup.
21496
21497         * sem_elab.adb:
21498         (Check_Elab_Call): Set No_Elaboration_Check appropriately on calls in
21499         task bodies that are in the scope of a Suppress pragma.
21500         (Check_A Call): Use the flag to prevent spurious elaboration checks.
21501
21502         * sinfo.ads, sinfo.adb:
21503         New flag No_Elaboration_Check on function/procedure calls, to properly
21504         suppress checks on calls in task bodies that are within a local suppress
21505         pragma.
21506
21507         * exp_ch4.adb:
21508         (Expand_Concatenate_Other): Use the proper integer type for the
21509         expression for the upper bound, to avoid universal_integer computations
21510         when possible.
21511
21512 2003-11-21  Kelley Cook  <kcook@gcc.gnu.org>
21513
21514         * .cvsignore: Delete.
21515
21516 2003-11-21  Andreas Schwab  <schwab@suse.de>
21517
21518         * 55system.ads: Set ZCX_By_Default and GCC_ZCX_Support to True.
21519
21520 2003-11-21  Vasiliy Fofanov  <fofanov@act-europe.fr>
21521
21522         * 5wsystem.ads: Enable zero cost exception.
21523
21524 2003-11-21  Jerome Guitton  <guitton@act-europe.fr>
21525
21526         * 5ztiitho.adb: Remove an unreferenced variable.
21527
21528 2003-11-21  Thomas Quinot  <quinot@act-europe.fr>
21529
21530         * adaint.c: For FreeBSD, use mkstemp.
21531
21532 2003-11-21  Arnaud Charlet  <charlet@act-europe.fr>
21533
21534         * gnatlbr.adb: Now reference Gnat_Static_Version_String.
21535
21536 2003-11-21  Robert Dewar  <dewar@gnat.com>
21537
21538         * bld.adb: Remove useless USE of gnatvsn
21539
21540         * gnatchop.adb: Minor reformatting
21541         Clean up version handling to be more consistent
21542
21543         * gnatxref.adb: Minor reformatting
21544
21545         * gprcmd.adb: Minor reformatting
21546         Fix output of copyright to be more consistent with other tools
21547
21548 2003-11-21  Vincent Celier  <celier@gnat.com>
21549
21550         * make.adb (Scan_Make_Args): Do not transmit --RTS= to gnatlink
21551
21552 2003-11-21  Sergey Rybin  <rybin@act-europe.fr>
21553
21554         * atree.adb (Initialize): Add initializations for global variables
21555         used in New_Copy_Tree.
21556
21557         * cstand.adb (Create_Standard): Add call to Initialize_Scanner (with
21558         Internal_Source_File as the actual).
21559         Put the set of statements creating Any_Character before the set of
21560         statements creating Any_Array to have Any_Character fully initialized
21561         when it is used in creating Any_Array.
21562
21563         * scn.adb (Initialize_Scanner): Do not set Comes_From_Source ON and do
21564         not call Scan in case if the actual is Internal_Source_File
21565         Add 2003 to copyright note.
21566
21567         * sinput.adb (Source_First, Source_Last, Source_Text): Add code for
21568         processing Internal_Source_File.
21569
21570         * types.ads: Add the constant Internal_Source_File representing the
21571         source buffer for artificial source-code-like strings created within
21572         the compiler (the definition of Source_File_Index is changed).
21573
21574 2003-11-20  Arnaud Charlet  <charlet@act-europe.fr>
21575
21576         * 35soccon.ads, 45intnam.ads, 55osinte.adb, 55osinte.ads,
21577         56system.ads: New file, FreeBSD version.
21578
21579 2003-11-20  Joseph S. Myers  <jsm@polyomino.org.uk>
21580
21581         * Make-lang.in (ada.extraclean): Delete.
21582
21583 2003-11-19  Arnaud Charlet  <charlet@act-europe.fr>
21584
21585         * gnatmem.adb: Clean up verbose output.
21586
21587         * gprcmd.adb: Change copyright to FSF.
21588
21589 2003-11-19  Vincent Celier  <celier@gnat.com>
21590
21591         * symbols.adb: (Initialize): New parameters Reference, Symbol_Policy
21592         and Version (ignored).
21593
21594         * symbols.ads: (Policy): New type
21595         (Initialize): New parameter Reference, Symbol_Policy and
21596         Library_Version.
21597         Remove parameter Force.
21598         Minor reformatting.
21599
21600         * snames.ads, snames.adbadb: New standard names
21601         Library_Reference_Symbol_File and Library_Symbol_Policy
21602
21603         * mlib-prj.adb:
21604         (Build_Library): Call Build_Dinamic_Library with the Symbol_Data of the
21605         project.
21606
21607         * mlib-tgt.adb:
21608         (Build_Dynamic_Library): New parameter Symbol_Data (ignored)
21609
21610         * mlib-tgt.ads: (Build_Dynamic_Library): New parameter Symbol_Data
21611
21612         * prj.adb: (Project_Empty): New component Symbol_Data
21613
21614         * prj.ads: (Policy, Symbol_Record): New types
21615         (Project_Data): New component Symbol_Data
21616
21617         * prj-attr.adb:
21618         New attributes Library_Symbol_File, Library_Symbol_Policy and
21619         Library_Reference_Symbol_File.
21620
21621         * prj-nmsc.adb:
21622         (Ada_Check): When project is a Stand-Alone library project, process
21623         attribute Library_Symbol_File, Library_Symbol_Policy and
21624         Library_Reference_Symbol_File.
21625
21626         * 5aml-tgt.adb, 5bml-tgt.adb, 5gml-tgt.adb, 5hml-tgt.adb,
21627         5wml-tgt.adb, 5zml-tgt.adb, 5lml-tgt.adb,
21628         5sml-tgt.adb (Build_Dynamic_Library): New parameter
21629         Symbol_Data (ignored).
21630
21631         * 5vml-tgt.adb (VMS_Options): Remove --for-linker=gsmatch=equal,1,0
21632         (Build_Dynamic_Library): New parameter Symbol_Data. New internal
21633         functions Option_File_Name and Version_String. Set new options of
21634         gnatsym related to symbol file, symbol policy and reference symbol
21635         file.
21636
21637         * 5vsymbol.adb:
21638         Extensive modifications to take into account the reference symbol file,
21639         the symbol policy, the library version and to put in the symbol file the
21640         minor and major IDs.
21641
21642         * bld.adb (Process_Declarative_Items): Put second argument of
21643         gprcmd to_absolute between single quotes, to avoid problems with
21644         Windows.
21645
21646         * bld-io.adb: Update Copyright notice.
21647         (Flush): Remove last character of a line, if it is a back slash, to
21648         avoid make problems.
21649
21650         * gnatsym.adb:
21651         Implement new scheme with reference symbol file and symbol policy.
21652
21653         * g-os_lib.ads: (Is_Directory): Clarify comment
21654
21655 2003-11-19  Robert Dewar  <dewar@gnat.com>
21656
21657         * atree.adb: Move New_Copy_Tree global variables to head of package
21658
21659         * errout.adb: Minor reformatting
21660
21661 2003-11-19  Javier Miranda  <miranda@gnat.com>
21662
21663         * sem_ch4.adb: (Diagnose_Call): Improve error message.
21664         Add reference to Ada0Y (AI-50217)
21665
21666         * sem_ch6.adb, sem_ch8.adb, sem_type.adb,
21667         sem_util.adb: Add reference to AI-50217
21668
21669         * sinfo.ads: (N_With_Clause): Document fields referred to AI-50217
21670
21671         * sprint.adb: Add reference to Ada0Y (AI-50217, AI-287)
21672
21673         * sem_aggr.adb: Complete documentation of AI-287 changes
21674
21675         * par-ch4.adb: Document previous changes.
21676
21677         * lib-load.adb, lib-writ.adb, einfo.ads, par-ch10.adb,
21678         sem_cat.adb, sem_ch3.adb, sem_ch10.adb, sem_ch12.adb: Add references to
21679         Ada0Y (AI-50217)
21680
21681         * exp_aggr.adb: Add references to AI-287 in previous changes
21682
21683 2003-11-19  Ed Schonberg  <schonberg@gnat.com>
21684
21685         * exp_ch6.adb:
21686         (Add_Call_By_Copy_Node): Do not original node of rewritten expression
21687         in the rewriting is the result of an inlined call.
21688
21689         * exp_ch6.adb (Add_Call_By_Copy_Node): If actual for (in-)out
21690         parameter is a type conversion, use original node to construct the
21691         post-call assignment, because expression may have been rewritten, e.g.
21692         if it is a packed array.
21693
21694         * sem_attr.adb:
21695         (Resolve_Attribute, case 'Constrained): Attribute is legal in an inlined
21696         body, just as it is in an instance.
21697         Categorization routines
21698
21699         * sem_ch12.adb (Analyze_Association, Instantiate_Formal_Subprogram,
21700         Instantiate_Object): Set proper sloc reference for message on missing
21701         actual.
21702
21703 2003-11-19  Thomas Quinot  <quinot@act-europe.fr>
21704
21705         * Makefile.in: Add FreeBSD libgnat pairs.
21706
21707         * usage.adb: Fix typo in usage message.
21708
21709 2003-11-19  Jerome Guitton  <guitton@act-europe.fr>
21710
21711         * Makefile.in: On powerpc-wrs-vxworksae: Add s-thread.ad?,
21712         s-thrini.ad? and s-tiitho.adb to the full runtime, to support the
21713         pragma Thread_Body.
21714         Remove i-vthrea.ad? and s-tpae65.ad?, not needed anymore.
21715
21716         * s-thread.adb: This file is now a dummy implementation of
21717         System.Thread.
21718
21719 2003-11-19  Sergey Rybin  <rybin@act-europe.fr>
21720
21721         * rtsfind.adb (Initialize): Add initialization for RTE_Is_Available
21722
21723 2003-11-19  Emmanuel Briot  <briot@act-europe.fr>
21724
21725         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21726         instanciation references in the parent type description.
21727
21728 2003-11-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21729
21730         * ada-tree.def: (ALLOCATE_EXPR): Class is "2", not "s".
21731
21732         * decl.c (gnat_to_gnu_entity, case E_Floating_Point_Subtype): Set
21733         TYPE_PRECISION directly from esize.
21734
21735 2003-11-18  Thomas Quinot  <quinot@act-europe.fr>
21736
21737         * cstreams.c:
21738         Use realpath(3) on FreeBSD. Fix typo in comment while we are at it.
21739
21740         * init.c: Initialization routines for FreeBSD
21741
21742         * link.c: Link info for FreeBSD
21743
21744         * sysdep.c: Add the case of FreeBSD
21745
21746 2003-11-17  Jerome Guitton  <guitton@act-europe.fr>
21747
21748         * 5zthrini.adb: Remove the call to Init_RTS at elaboration, as it is
21749         already called in System.Threads.
21750
21751         * 5ztiitho.adb (Initialize_Task_Hooks): Remove the registration of the
21752         environment task, as it has been moved to System.Threads.Initialization.
21753
21754 2003-11-17  Arnaud Charlet  <charlet@act-europe.fr>
21755
21756         * adaint.c (__gnatlib_install_locks): Only reference
21757         __gnat_install_locks on VMS, since other platforms can avoid using
21758         --enable-threads=gnat
21759
21760 2003-11-17  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
21761
21762         * ada-tree.h: (TYPE_IS_PACKED_ARRAY_TYPE_P): New macro.
21763
21764         * decl.c (gnat_to_gnu_entity, case E_Array_Subtype): Set
21765         TYPE_PACKED_ARRAY_TYPE_P.
21766         (validate_size): Do not verify size if TYPE_IS_PACKED_ARRAY_TYPE_P.
21767
21768         Part of PR ada/12806
21769         * utils.c (float_type_for_precision): Renamed from float_type_for_size.
21770         Use GET_MODE_PRECISION instead of GET_MODE_BITSIZE.
21771
21772 2003-11-17  Vincent Celier  <celier@gnat.com>
21773
21774         * gnatchop.adb (Error_Msg): New Boolean parameter Warning, defaulted
21775         to False.
21776         Do not set exit status to Failure when Warning is True.
21777         (Gnatchop): Make errors "no compilation units found" and
21778         "no source files written" warnings only.
21779
21780         * make.adb (Gnatmake): When using a project file, set
21781         Look_In_Primary_Dir to False.
21782         (Configuration_Pragmas_Switch): Check for Global_Configuration_Pragmas
21783         and Local_Configuration_Pragmas in the project where they are declared
21784         not an extending project which might have inherited them.
21785
21786         * osint.adb (Locate_File): If Name is already an absolute path, do not
21787         look for a directory.
21788
21789         * par-ch10.adb (P_Compilation_Unit): If source contains no token, and
21790         -gnats (Check_Syntax) is used, issue only a warning, not an error.
21791
21792         * prj.adb (Register_Default_Naming_Scheme): Add new component Project
21793         in objects of type Variable_Value.
21794
21795         * prj.ads: (Variable_Value): New component Project
21796
21797         * prj-nmsc.adb (Ada_Check.Warn_If_Not_Sources): No warning if source
21798         is in a project extended by Project.
21799
21800         * prj-proc.adb (Add_Attributes): New parameter Project. Set component
21801         Project of Variable_Values to this new parameter value.
21802         (Expression): Set component Project of Variable_Values.
21803         (Process_Declarative_Items): Call Add_Attributes with parameter Project.
21804         Set the component Project in array elements.
21805
21806 2003-11-17  Sergey Rybin  <rybin@act-europe.fr>
21807
21808         * errout.adb: (Initialize): Add initialization for error nodes.
21809
21810         * sem_ch12.adb (Initialize): Add missing initializations for
21811         Exchanged_Views and Hidden_Entities.
21812
21813 2003-11-17  Ed Schonberg  <schonberg@gnat.com>
21814
21815         * sem_ch12.adb (Copy_Generic_Node): Preserve entity when copying an
21816         already instantiated tree for use in subsequent inlining.
21817         (Analyze_Associations, Instantiate_Formal_Subprogram,
21818         Instantiate_Object): improve error message for mismatch in
21819         instantiations.
21820
21821         * sem_ch6.adb (Build_Body_To_Inline): Major cleanup to handle
21822         instantiations of subprograms declared in instances.
21823
21824 2003-11-17  Javier Miranda  <miranda@gnat.com>
21825
21826         * sem_ch4.adb (Analyze_Allocator): Previous modification must be
21827         executed only under the Extensions_Allowed flag.
21828
21829 2003-11-17  Robert Dewar  <dewar@gnat.com>
21830
21831         * a-exexda.adb (Address_Image): Fix documentation to indicate leading
21832         zeroes suppressed.
21833         (Address_Image): Fix bug of returning 0x instead of 0x0
21834         Minor reformatting (function specs).
21835
21836         * einfo.ads: Minor fix for documentation of Is_Bit_Packed_Array
21837         (missed case of 33-63)
21838
21839         * freeze.adb, sem_ch13.adb: Properly check size of packed bit array
21840
21841         * s-thread.adb: Add comments for pragma Restriction
21842
21843         * exp_aggr.adb, g-debuti.adb, par-ch4.adb, sem_aggr.adb,
21844         sem_ch6.adb, sprint.adb, xref_lib.adb: Minor reformatting
21845
21846 2003-11-17  Ed Falis  <falis@gnat.com>
21847
21848         * s-thread.adb: Added No_Tasking restriction for this implementation.
21849
21850 2003-11-17  Emmanuel Briot  <briot@act-europe.fr>
21851
21852         * xref_lib.adb (Parse_Identifier_Info): Add handling of generic
21853         instanciation references in the parent type description.
21854
21855 2003-11-17  GNAT Script  <nobody@gnat.com>
21856
21857         * Make-lang.in: Makefile automatically updated
21858
21859 2003-11-16  Jason Merrill  <jason@redhat.com>
21860
21861         * Make-lang.in (ada.tags): Create TAGS.sub files in each directory
21862         and TAGS files that include them for each front end.
21863
21864 2003-11-14  Andreas Jaeger  <aj@suse.de>
21865
21866         * lang.opt: Change -Wno-long-long to -Wlong-long since the latter
21867         is the canonical version.
21868         * misc.c (gnat_handle_option): Likewise.
21869
21870         * Makefile.in (LIBGNAT_TARGET_PAIRS): Add rules for x86_64-linux.
21871
21872         * 5nsystem.ads: New file for x86_64-linux-gnu.
21873
21874 2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
21875
21876         * nmake.ads, nmake.adb, sinfo.h, treeprs.ads: Regenerated.
21877
21878         * comperr.adb: Fix logic in previous change.
21879
21880 2003-11-13  Vincent Celier  <celier@gnat.com>
21881
21882         * 5bml-tgt.adb (Build_Dynamic_Library): Use
21883         Osint.Include_Dir_Default_Prefix instead of
21884         Sdefault.Include_Dir_Default_Name.
21885
21886         * gnatlbr.adb: Update Copyright notice
21887         (Gnatlbr): : Use Osint.Include_Dir_Default_Prefix instead of
21888         Sdefault.Include_Dir_Default_Name and Osint.Object_Dir_Default_Prefix
21889         instead of Sdefault.Object_Dir_Default_Name
21890
21891         * gnatlink.adb:
21892         (Process_Binder_File): Never suppress the option following -Xlinker
21893
21894         * mdll-utl.adb:
21895         (Gcc): Use Osint.Object_Dir_Default_Prefix instead of
21896         Sdefault.Object_Dir_Default_Name.
21897
21898         * osint.ads, osint.adb:
21899         (Include_Dir_Default_Prefix, Object_Dir_Default_Prefix): New functions
21900         Minor reformatting.
21901
21902         * vms_conv.ads: Minor reformating
21903         Remove GNAT STANDARD and GNAT PSTA
21904
21905         * vms_conv.adb:
21906         Allow GNAT MAKE to have several files on the command line.
21907         (Init_Object_Dirs): Use Osint.Object_Dir_Default_Prefix instead of
21908         Sdefault.Object_Dir_Default_Name.
21909         Minor Reformating
21910         Remove data for GNAT STANDARD
21911
21912         * vms_data.ads:
21913         Add new compiler qualifier /PRINT_STANDARD (-gnatS)
21914         Remove data for GNAT STANDARD
21915         Remove options and documentation for -gnatwb/-gnatwB: these warning
21916         options no longer exist.
21917
21918 2003-11-13  Ed Falis  <falis@gnat.com>
21919
21920         * 5zthrini.adb: (Init_RTS): Made visible
21921
21922         * 5zthrini.adb:
21923         (Register): Removed unnecessary call to taskVarGet that checked whether
21924          an ATSD was already set as a task var for the argument thread.
21925
21926         * s-thread.adb:
21927         Updated comment to reflect that this is a VxWorks version
21928         Added context clause for System.Threads.Initialization
21929         Added call to System.Threads.Initialization.Init_RTS
21930
21931 2003-11-13  Jerome Guitton  <guitton@act-europe.fr>
21932
21933         * 5zthrini.adb:
21934         (Init_RTS): New procedure, for the initialization of the run-time lib.
21935
21936         * s-thread.adb:
21937         Remove dependancy on System.Init, so that this file can be used in the
21938         AE653 sequential run-time lib.
21939
21940 2003-11-13  Robert Dewar  <dewar@gnat.com>
21941
21942         * bindgen.adb: Minor reformatting
21943
21944 2003-11-13  Ed Schonberg  <schonberg@gnat.com>
21945
21946         * checks.adb:
21947         (Apply_Discriminant_Check): Do no apply check if target type is derived
21948         from source type with no applicable constraint.
21949
21950         * lib-writ.adb:
21951         (Ensure_System_Dependency): Do not apply the style checks that may have
21952         been specified for the main unit.
21953
21954         * sem_ch8.adb:
21955         (Find_Selected_Component): Further improvement in error message, with
21956         RM reference.
21957
21958         * sem_res.adb:
21959         (Resolve): Handle properly the case of an illegal overloaded protected
21960         procedure.
21961
21962 2003-11-13  Javier Miranda  <miranda@gnat.com>
21963
21964         * exp_aggr.adb:
21965         (Has_Default_Init_Comps): New function to check the presence of
21966         default initialization in an aggregate.
21967         (Build_Record_Aggr_Code): Recursively expand the ancestor in case of
21968         extension aggregate of a limited record. In addition, a new formal
21969         was added to do not initialize the record controller (if any) during
21970         this recursive expansion of ancestors.
21971         (Init_Controller): Add support for limited record components.
21972         (Expand_Record_Aggregate): In case of default initialized components
21973         convert the aggregate into a set of assignments.
21974
21975         * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Update the comment
21976         describing the new syntax.
21977         Nothing else needed to be done because this subprogram delegates part of
21978         its work to P_Precord_Or_Array_Component_Association.
21979         (P_Record_Or_Array_Component_Association): Give support to the new
21980         syntax for default initialization of components.
21981
21982         * sem_aggr.adb:
21983         (Resolve_Aggregate): Relax the strictness of the frontend in case of
21984         limited aggregates.
21985         (Resolve_Record_Aggregate): Give support to default initialized
21986         components.
21987         (Get_Value): In case of default initialized components, duplicate
21988         the corresponding default expression (from the record type
21989         declaration). In case of default initialization in the *others*
21990         choice, do not check that all components have the same type.
21991         (Resolve_Extension_Aggregate): Give support to limited extension
21992         aggregates.
21993
21994         * sem_ch3.adb:
21995         (Check_Initialization): Relax the strictness of the front-end in case
21996         of aggregate and extension aggregates. This test is now done in
21997         Get_Value in a per-component manner.
21998
21999         * sem_ch4.adb (Analyze_Allocator): Don't post an error if the
22000         expression corresponds to a limited aggregate. This test is now done
22001         in Get_Value.
22002
22003         * sinfo.ads, sinfo.adb (N_Component_Association): Addition of
22004         Box_Present flag.
22005
22006         * sprint.adb (Sprint_Node_Actual): Modified to print an mbox if
22007         present in an N_Component_Association node
22008
22009 2003-11-13  Thomas Quinot  <quinot@act-europe.fr>
22010
22011         * sem_ch9.adb (Analyze_Accept_Statement): A procedure hides a
22012         type-conformant entry only if they are homographs.
22013
22014 2003-11-13  GNAT Script  <nobody@gnat.com>
22015
22016         * Make-lang.in: Makefile automatically updated
22017
22018 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22019
22020         * adadecode.c: Use <> form of include for ctype.h.
22021         * sysdep.c [IN_RTS]: Use <> form of include for time.h.
22022
22023 2003-11-12  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22024
22025         * 5gsystem.ads (Functions_Return_By_DSP): Set to False.
22026         Works around PR middle-end/6552.
22027
22028 2003-11-10  Ed Falis  <falis@gnat.com>
22029
22030         * 5ytiitho.adb: (procStartHookAdd): Definition and call deleted
22031
22032         * 5zinit.adb: (Install_Handler): Moved back to spec
22033         (Install_Signal_Handlers): Deleted
22034
22035         * 5zthrini.adb: Added context clause for System.Storage_Elements
22036         (Register): Only handles creation of taskVar; initialization moved to
22037         Thread_Body_Enter.
22038         (Reset_TSD): Deleted; replaced by Thread_Body_Enter
22039         Added declaration of environment task secondary stack and
22040         initialization.
22041
22042         * s-thread.adb: Implement bodies for thread body processing
22043
22044         * s-thread.ads:
22045         Added comment identifying supported targets for pragma Thread_Body.
22046
22047 2003-11-10  Pascal Obry  <obry@gnat.com>
22048
22049         * adaint.c (_gnat_stat) [WIN32]: Check if name is not bigger than
22050         GNAT_MAX_PATH_LEN.
22051
22052         * s-fileio.adb:
22053         (Open): Properly check for string length before copying into the buffer.
22054         Raises Name_Error if buffer is too small. Note that this was a potential
22055         buffer overflow.
22056
22057 2003-11-10  Romain Berrendonner  <berrendo@act-europe.fr>
22058
22059         * bindgen.adb, comperr.adb: Code clean ups.
22060         * gnatvsn.ads, gnatvsn.adb (Get_Gnat_Version_Type): New function.
22061
22062 2003-11-10  Sergey Rybin  <rybin@act-europe.fr>
22063
22064         * gnat1drv.adb: Add call to Sem_Elim.Initialize.
22065
22066 2003-11-10  Vincent Celier  <celier@gnat.com>
22067
22068         * gprcmd.adb:
22069         (Gprcmd): Add new command "prefix" to get the prefix of the GNAT
22070         installation.
22071
22072         * make.adb (Scan_Make_Arg): Transmit -nostdlib to the compiler
22073
22074         * prj.adb: (Project_Empty): Add new boolean component Virtual
22075
22076         * prj.ads: (Virtual_Prefix): New constant string
22077         (Project_Data): New boolean component Virtual
22078
22079         * prj-nmsc.adb (Language_Independent_Check): Adjust error message when
22080         a library project is extended by a virtual extending project.
22081
22082         * prj-part.adb:
22083         Modifications throughout to implement extending-all project, including:
22084         (Virtual_Hash, Processed_Hash): New hash tables
22085         (Create_Virtual_Extending_Project): New procedure
22086         (Look_For_Virtual_Projects_For): New procedure
22087
22088         * prj-proc.adb:
22089         (Process): After checking the projects, if main project is an
22090         extending-all project, set the object directory of all virtual extending
22091         project to the object directory of the main project.
22092         Adjust error message when a virtual extending project has the same
22093         object directory as an project being extended.
22094         (Recursive_Process): If name starts with the virtual prefix, set Virtual
22095         to True in the project data.
22096
22097         * prj-tree.adb:
22098         (Default_Project_Node): Add new boolean component Extending_All
22099         (Is_Extending_All): New function
22100         (Set_Is_Extending_All): New procedure
22101
22102         * prj-tree.ads: (Is_Extending_All): New function
22103         (Set_Is_Extending_All): New procedure
22104         (Project_Node_Record): New boolean component Extending_All
22105
22106         * switch-c.adb: (Scan_Front_End_Switches): Process -nostdlib
22107
22108         * vms_data.ads:
22109         Add qualifier /NOSTD_LIBRARIES (-nostdlib) for the compiler
22110
22111         * bld.adb (Recursive_Process): If MAKE_ROOT is not defined, call
22112         "gprcmd prefix" to define it.
22113
22114 2003-11-10  Thomas Quinot  <quinot@act-europe.fr>
22115
22116         * einfo.ads: Fix a typo and remove an extraneous word in comments.
22117
22118         * lib-load.adb:
22119         (Create_Dummy_Package_Unit): Set the scope of the entity for the
22120         created dummy package to Standard_Standard, not to itself, to
22121         defend other parts of the front-end against encoutering a cycle in
22122         the scope chain.
22123
22124         * sem_ch10.adb:
22125         (Analyze_With_Clause): When setting the entities for the successive
22126         N_Expanded_Names that constitute the name of a child unit, do not
22127         attempt to go further than Standard_Standard in the chain of scopes.
22128         This case arises from the placeholder units created by
22129         Create_Dummy_Package_Unit in the case of a with_clause for a
22130         nonexistent child unit.
22131
22132 2003-11-10  Ed Schonberg  <schonberg@gnat.com>
22133
22134         * exp_ch6.adb:
22135         (Expand_Thread_Body): Place subprogram on scope stack, so that new
22136         declarations are given the proper scope.
22137
22138         * sem_ch13.adb:
22139         (Check_Expr_Constants): Reject an expression that contains a constant
22140         created during expansion, and that appears after the object to which
22141         the address clause applies.
22142
22143         * sem_ch5.adb (Check_Controlled_Array_Attribute): Subsidiary of
22144         Analyze_Iteration_Scheme, to rewrite a loop parameter specification
22145         that uses 'Range of a function call with controlled components, so
22146         that the function result can be finalized before starting the loop.
22147
22148         * sem_ch8.adb:
22149         (Find_Selected_Component): Improve error message when prefix is
22150         an implicit dereference of an incomplete type.
22151
22152 2003-11-10  Robert Dewar  <dewar@gnat.com>
22153
22154         * opt.ads: New Print_Standard flag for -gnatS switch
22155
22156         * sem_ch13.adb: Remove some additional checks for unaligned arrays
22157
22158         * cstand.adb (Create_Standard): Print out package standard if -gnatS
22159         switch set
22160
22161         * debug.adb: Update doc for -gnatds to discuss relationship with new
22162         -gnatS flag
22163
22164         * sinfo.adb: Add new field Entity_Or_Associated_Node
22165
22166         * sinfo.ads: Add new field Entity_Or_Associated_Node
22167         Update documentation for Associated_Node and Entity fields to clarify
22168         relationship and usage.
22169
22170         * sprint.adb:
22171         (Write_Id): Properly process Associated_Node field in generic template
22172
22173         * switch-c.adb:
22174         Recognize new -gnatS switch for printing package Standard
22175         This replaces gnatpsta
22176
22177         * usage.adb:
22178         Add line for  new -gnatS switch for printing package Standard
22179         This replaces gnatpsta
22180
22181 2003-11-10  Andreas Jaeger  <aj@suse.de>
22182
22183         * 7sosprim.adb: tv_usec of struct_timeval and time_t are long
22184         integer.
22185
22186 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22187
22188         * misc.c, lang.opt: Add handling of -nostdlib, now recognized/needed
22189         by gnat1.
22190
22191 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22192
22193         * Makefile.in, Make-lang.in: Remove build of gnat_wrapper and gnatpsta,
22194         no longer needed.
22195
22196         * gnatpsta.adb, gnat_wrapper.adb: Removed, no longer needed.
22197
22198         * sysdep.c: Add handling of cygwin.
22199
22200 2003-11-10  GNAT Script  <nobody@gnat.com>
22201
22202         * Make-lang.in: Makefile automatically updated
22203
22204 2003-11-10  Arnaud Charlet  <charlet@act-europe.fr>
22205
22206         PR 12950
22207         * osint.ads, osint.adb (Relocate_Path, Executable_Suffix): New
22208         functions. Used to handle dynamic prefix relocation, via set_std_prefix.
22209         Replace GNAT_ROOT by GCC_ROOT.
22210
22211         * Make-lang.in: Use new function Relocate_Path to generate sdefault.adb
22212
22213 2003-11-06  Zack Weinberg  <zack@codesourcery.com>
22214
22215         * misc.c (fp_prec_to_size, fp_size_to_prec): Use GET_MODE_PRECISION
22216         and update for changed meaning of GET_MODE_BITSIZE.
22217
22218 2003-11-04  Doug Rupp  <rupp@gnat.com>
22219
22220         * sysdep.c: Problem discovered during IA64 VMS port.
22221         [VMS] #include <unixio.h> to get proper prototypes.
22222
22223         * adaint.c:
22224         Issues discovered/problems fixed during IA64 VMS port.
22225         [VMS] #define _POSIX_EXIT for proper semantics.
22226         [VMS] #include <unixio.h> for proper prototypes.
22227         [VMS] (fork): #define IA64 version.
22228         (__gnat_os_exit): Remove unnecessary VMS specific code.
22229
22230 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22231
22232         Part of PR ada/12806
22233
22234         * ada-tree.h (TYPE_DIGITS_VALUE, SET_TYPE_DIGITS_VALUE): Save count as
22235         tree, not integer.
22236
22237         * decl.c:
22238         (gnat_to_gnu_entity, case E_Floating_Point_Type): Save count as tree,
22239         not integer.
22240
22241         * targtyps.c, decl.c, misc.c,
22242         gigi.h (fp_prec_to_size, fp_size_to_prec): Temporary
22243         routines to work around change in FP sizing semantics in GCC.
22244
22245         * utils.c:
22246         (build_vms_descriptor): TYPE_DIGITS_VALUE is tree, not integer.
22247
22248         * gigi.h: (enumerate_modes): New function.
22249
22250         * Make-lang.in: (ada/misc.o): Add real.h.
22251
22252         * misc.c: (enumerate_modes): New function.
22253
22254 2003-11-04  Robert Dewar  <dewar@gnat.com>
22255
22256         * 3vtrasym.adb: Minor reformatting
22257         Use terminology encoded/decoded name, rather than C++ specific notion
22258         of mangling (this is the terminology used throughout GNAT).
22259
22260         * einfo.h: Regenerated
22261
22262         * einfo.ads, einfo.adb: Add new flag Is_Thread_Body
22263
22264         * exp_ch6.adb:
22265         (Expand_N_Subprogram_Body): Handle expansion of thread body procedure
22266
22267         * par-prag.adb: Add dummy entry for Thread_Body pragma
22268
22269         * rtsfind.ads:
22270         Add entries for System.Threads entities for thread body processing
22271
22272         * sem_attr.adb:
22273         (Analyze_Pragma, Access attributes): Check these are not applied to a
22274         thread body, since this is not permitted
22275
22276         * sem_prag.adb: Add processing for Thread_Body pragma.
22277         Minor comment fix.
22278
22279         * sem_res.adb:
22280         (Resolve_Call): Check for incorrect attempt to call a thread body
22281          procedure with a direct call.
22282
22283         * snames.ads, snames.adb: Add entry for Thread_Body pragma
22284         Add names associated with thread body expansion
22285
22286         * snames.h: Add entry for Thread_Body pragma
22287
22288         * s-thread.adb: Add entries for thread body processing
22289         These are dummy bodies so far
22290
22291         * s-thread.ads: Add documentation on thread body handling.
22292         Add entries for thread body processing.
22293
22294 2003-11-04  Javier Miranda  <miranda@gnat.com>
22295
22296         * sem_ch10.adb:
22297         (Build_Limited_Views): Return after posting an error in case of limited
22298         with_clause on subprograms, generics, instances or generic renamings
22299         (Install_Limited_Withed_Unit): Do nothing in case of limited with_clause
22300         on subprograms, generics, instances or generic renamings
22301
22302 2003-11-04  Arnaud Charlet  <charlet@act-europe.fr>
22303
22304         * raise.c (setup_to_install): Correct mistake in last revision; two
22305         arguments out of order.
22306
22307         * trans.c, cuintp.c, argv.c, aux-io.c, cal.c, errno.c, exit.c,
22308         gnatbl.c, init.c, stringt.h, utils.c, utils2.c: Update copyright
22309         notice, missed in previous change.
22310         Remove trailing blanks and other style errors introduced in previous
22311         change.
22312
22313 2003-11-04  Olivier Hainque  <hainque@act-europe.fr>
22314
22315         * decl.c (gnat_to_gnu_field): Adjust the conditions under which we get
22316         rid of the wrapper for a LJM type, ensuring we don't do that if the
22317         field is addressable.  This avoids potential low level type view
22318         mismatches later on, for instance in a by-reference argument passing
22319         process.
22320
22321 2003-11-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22322
22323         * decl.c (gnat_to_gnu_field): No longer check for BLKmode being
22324         aligned at byte boundary.
22325
22326 2003-11-04  Joel Brobecker  <brobecker@gnat.com>
22327
22328         * decl.c (components_to_record): Do not delete the empty variants from
22329         the end of the union type.
22330
22331 2003-11-04  Ed Schonberg  <schonberg@gnat.com>
22332
22333         * exp_ch4.adb (Expand_N_Op_Eq): Use base type when locating primitive
22334         operation for a derived type, an explicit declaration may use a local
22335         subtype of Boolean.
22336
22337 2003-11-04  Vincent Celier  <celier@gnat.com>
22338
22339         * make.adb (Gnatmake): Allow main sources on the command line with a
22340         library project when it is only for compilation (no binding or
22341         linking).
22342
22343 2003-11-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22344
22345         * Makefile.in: Remove many duplicate variables.
22346
22347 2003-11-03  Kelley Cook  <kcook@gcc.gnu.org>
22348
22349         * Make-lang.in (dvi): Move targets to $(docobjdir).
22350         (gnat_ug_vms.dvi): Simplify rule and adjust target.
22351         (gnat_ug_wnt.dvi): Likewise.
22352         (gnat_ug_unx.dvi): Likewise.
22353         (gnat_ug_vxw.dvi): Likewise.
22354         (gnat_rm.dvi): Likewise.
22355         (gnat-style.dvi): Likewise.
22356
22357 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22358
22359         * gigi.h: Missed commit from update for C90.
22360
22361 2003-10-31  Kelley Cook  <kcook@gcc.gnu.org>
22362
22363         * Makefile.in (ada/b_gnat1.o): Compile with -Wno-error.
22364
22365 2003-10-31  Andreas Schwab  <schwab@suse.de>
22366
22367         * raise.c (get_action_description_for): Fix typo in last change.
22368
22369 2003-10-31  Nathanael Nerode  <neroden@gcc.gnu.org>
22370
22371         PR ada/12761
22372         * ada/Make-lang.in: Move default definitions of X_ADA_CFLAGS,
22373         T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS from here to master Makefile.in.
22374
22375 2003-10-30  Kelley Cook  <kcook@gcc.gnu.org>
22376
22377         * adadecode.c, adaint.c, argv.c, aux-io.c, cal.c, cio.c, cstreams.c,
22378         ctrl_c.c, cuintp.c, decl.c, errno.c, exit.c, expect.c, final.c,
22379         gigi.h, gmem.c, gnatbl.c, init.c, misc.c, mkdir.c, raise.c, socket.c,
22380         sysdep.c, sysdep.c, targtyps.c, tb-alvms.c, tb-alvxw.c, tracebak.c,
22381         trans.c, utils.c, utils2.c: Convert function prototypes to C90.
22382
22383 2003-10-30  Vasiliy Fofanov  <fofanov@act-europe.fr>
22384
22385         * 3vtrasym.adb:
22386         Demangle Ada symbols returned by TBK$SYMBOLIZE. Correctly align line
22387         numbers when symbol name is too long.
22388
22389 2003-10-30  Ed Falis  <falis@gnat.com>
22390
22391         * g-signal.ads, g-signal.adb: New files
22392
22393         * impunit.adb: (Non_Imp_File_Names): Added "g-signal"
22394
22395         * Makefile.rtl: Introduce GNAT.Signals
22396
22397 2003-10-30  Robert Dewar  <dewar@gnat.com>
22398
22399         * freeze.adb: Minor reformatting
22400
22401         * lib-writ.adb (Write_ALI): Never write ali file if -gnats is specified
22402
22403         * par.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb, par-ch3.adb,
22404         par-ch5.adb, par-ch6.adb, par-ch9.adb, par-util.adb:
22405         New handling of Id_Check parameter to improve recognition of keywords
22406         used as identifiers.
22407         Update copyright notice to include 2003
22408
22409 2003-10-29  Robert Dewar  <dewar@gnat.com>
22410
22411         * 3vtrasym.adb, 5vtraent.ads, sprint.adb,
22412         sem_ch10.adb: Minor reformatting
22413
22414         * exp_ch5.adb (Expand_Assign_Array): Test for bit unaligned operands
22415         (Expand_Assign_Record): Test right hand side for bit unaligned as well
22416
22417 2003-10-29  Vasiliy Fofanov  <fofanov@act-europe.fr>
22418
22419         * 3vtrasym.adb, 5vtraent.adb, 5vtraent.ads, tb-alvms.c:
22420         Support for TBK$SYMBOLIZE-based symbolic traceback.
22421
22422 2003-10-29  Jose Ruiz  <ruiz@act-europe.fr>
22423
22424         * exp_disp.adb:
22425         Revert previous change, that did not work well when pragma No_Run_Time
22426         was used in conjunction with a run-time other than ZFP.
22427
22428 2003-10-29  Vincent Celier  <celier@gnat.com>
22429
22430         * make.adb:
22431         (Gnatmake): When there are no Ada mains in attribute Main, disable the
22432          bind and link steps only is switch -z is not used.
22433
22434 2003-10-29  Arnaud Charlet  <charlet@act-europe.fr>
22435
22436         * Makefile.generic: Remove duplicated setting of CC.
22437
22438         * Makefile.prolog: Set CC to gcc by default, to override make's
22439         default (cc).
22440
22441         * einfo.h: Regenerated.
22442
22443 2003-10-29  Ed Schonberg  <schonberg@gnat.com>
22444
22445         * sem_ch10.adb (Analyze_Subunit): Restore state of suppress flags for
22446         current body, after compiling subunit.
22447
22448         * itypes.adb (Create_Itype): In ASIS_Mode, do not freeze the itype
22449         when in deleted code, because gigi needs properly ordered freeze
22450         actions to annotate types.
22451
22452         * freeze.adb (Is_Fully_Defined): Predicate must be recursive, to
22453         prevent the premature freezing of record type that contains
22454         subcomponents with a private type that does not yet have a completion.
22455
22456 2003-10-29  Javier Miranda  <miranda@gnat.com>
22457
22458         * sem_ch12.adb:
22459         (Analyze_Package_Instantiation): Check that instances can not be used in
22460         limited with_clauses.
22461
22462         * sem_ch8.adb:
22463         (Analyze_Package_Renaming): Check that limited withed packages cannot
22464         be renamed. Improve text on error messages related to limited
22465         with_clauses.
22466
22467         * einfo.adb, einfo.ads: Remove Non_Limited_Views attribute.
22468
22469         * sprint.adb: (Sprint_Node_Actual): Print limited with_clauses.
22470         Update copyright notice.
22471
22472         * sem_ch10.adb: (Build_Limited_Views): Complete its documentation.
22473         (Install_Limited_Context_Clauses): New subprogram that isolates all the
22474         checks required for limited context_clauses and installs the limited
22475         view.
22476         (Install_Limited_Withed_Unit): Complete its documentation.
22477         (Analyze_Context): Check that limited with_clauses are only allowed in
22478         package specs.
22479         (Install_Context): Call Install_Limited_Context_Clauses after the
22480         parents have been installed.
22481         (Install_Limited_Withed_Unit): Add documentation. Mark the installed
22482         package as 'From_With_Type'; this mark indicates that the limited view
22483         is installed. Used to check bad usages of limited with_clauses.
22484         (Build_Limited_Views): Do not add shadow entities to the scope's list
22485         of entities. Do not add real entities to the Non_Limited_Views chain.
22486         Improve error notification.
22487         (Remove_Context_Clauses): Remove context clauses in two phases:
22488         limited views first and regular views later (to maintain the
22489         stack model).
22490         (Remove_Limited_With_Clause): If the package is analyzed then reinstall
22491         its visible entities.
22492
22493 2003-10-29  Thomas Quinot  <quinot@act-europe.fr>
22494
22495         * sem_type.adb (Specific_Type): Type Universal_Fixed is compatible
22496         with any type that Is_Fixed_Point_Type.
22497
22498         * sinfo.ads: Fix documentation for Associated_Node attribute.
22499
22500 2003-10-29  Sergey Rybin  <rybin@act-europe.fr>
22501
22502         * switch-c.adb (Scan_Front_End_Switches): ASIS_Mode is set now when
22503         both '-gnatc' and '-gnatt' are specified.
22504
22505         * atree.adb (Initialize): Add initialization for Node_Count (set to
22506         zero).
22507
22508 2003-10-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22509
22510         * decl.c (gnat_to_gnu_entity, case E_Subprogram): If no return value,
22511         do not consider as Pure.
22512
22513         Part of implementation of function-at-a-time:
22514
22515         * trans.c (gnat_to_gnu_code): If IS_STMT, call expand_expr_stmt.
22516         (tree_transform): Add new argument to build_component_ref.
22517         (tree_transform, case N_Assignment_Statement): Make and return an
22518         EXPR_STMT.
22519         (tree_transform): If result IS_STMT, set flags and return it.
22520         (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22521
22522         * utils2.c (build_simple_component_ref, build_component_ref): Add new
22523         arg, NO_FOLD_P.
22524         (build_binary_op, case EQ_EXPR): Pass additional arg to it.
22525         (build_allocator): Likewise.
22526
22527         * utils.c (convert_to_fat_pointer, convert_to_thin_pointer, convert):
22528         Add new arg to build_component_ref.
22529         (maybe_unconstrained_array, unchecked_convert): Likewise.
22530
22531         * ada-tree.def (EXPR_STMT): New code.
22532
22533         * ada-tree.h (IS_STMT, TREE_SLOC, EXPR_STMT_EXPR): New macros.
22534
22535         * decl.c (gnat_to_gnu_entity, case object): Add extra arg to
22536         build_component_ref calls.
22537
22538         * misc.c (gnat_expand_expr): If IS_STMT, call gnat_expand_stmt.
22539
22540         * gigi.h (gnat_expand_stmt, set_lineno_from_sloc): New functions.
22541         (build_component_ref): Add new argument, NO_FOLD_P.
22542
22543 2003-10-27  Arnaud Charlet  <charlet@act-europe.fr>
22544
22545         * Makefile.generic: Add missing substitution on object_deps handling.
22546
22547         PR ada/5909:
22548         * Make-lang.in (check-ada): Enable ACATS test suite.
22549
22550 2003-10-27  Robert Dewar  <dewar@gnat.com>
22551
22552         * exp_ch3.adb:
22553         (Freeze_Array_Type): We do not need an initialization routine for types
22554         derived from String or Wide_String. They should be treated the same
22555         as String and Wide_String themselves. This caused problems with the
22556         use of Initialize_Scalars.
22557
22558         * exp_ch5.adb:
22559         (Expand_Assign_Record): Do component-wise assignment of non-byte aligned
22560         composites. This allows use of component clauses that are not byte
22561         aligned.
22562
22563         * sem_prag.adb:
22564         (Analyze_Pragma, case Pack): Generate warning and ignore pack if there
22565         is an attempt to pack an array of atomic objects.
22566
22567         * make.adb, prj-env.adb, prj-env.ads: Minor reformatting
22568
22569 2003-10-27  Pascal Obry  <obry@gnat.com>
22570
22571         * g-dirope.adb:
22572         (Basename): Check for drive letters in a pathname only on DOS based OS.
22573
22574 2003-10-27  Vincent Celier  <celier@gnat.com>
22575
22576         * make.adb:
22577         (Gnatmake): When unable to change dir to the object dir, display the
22578         content of the parent dir of the obj dir, to try to understand why this
22579         happens.
22580
22581 2003-10-27  GNAT Script  <nobody@gnat.com>
22582
22583         * Make-lang.in: Makefile automatically updated
22584
22585 2003-10-27  Ed Schonberg  <schonberg@gnat.com>
22586
22587         * sem_ch12.adb:
22588         (Inline_Instance_Body): Indicate that the save/restore of use_clauses
22589         should not be done in Save/Restore_Scope_Stack, because it is performed
22590         locally.
22591
22592         * sem_ch8.adb:
22593         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22594         whether use clauses should be removed/restored.
22595
22596         * sem_ch8.ads:
22597         (Save_Scope_Stack, Restore_Scope_Stack): Add parameter to indicate
22598         whether use clauses should be removed/restored.
22599
22600 2003-10-26  Andreas Jaeger  <aj@suse.de>
22601
22602         * Makefile.in: Remove duplicated lines.
22603
22604 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22605
22606         * gnatvsn.ads (Gnat_Static_Version_String): New constant, used to
22607         minimize the differences with ACT tree.
22608
22609         * gnatkr.adb, gnatlink.adb, gnatls.adb, gnatmake.adb,
22610         gnatprep.adb, gnatpsta.adb, gnatvsn.ads: Take advantage of
22611         Gnatvsn.Gnat_Static_Version_String to reduce differences between
22612         ACT and FSF trees.
22613
22614 2003-10-24  Pascal Obry  <obry@gnat.com>
22615
22616         * adadecode.c (ostrcpy): New function.
22617         (__gnat_decode): Use ostrcpy of strcpy.
22618         (has_prefix): Set first parameter a const.
22619         (has_suffix): Set first parameter a const.
22620         Update copyright notice. Fix source name in header.
22621         Removes a trailing space.
22622         PR ada/12014.
22623
22624 2003-10-24  Jose Ruiz  <ruiz@act-europe.fr>
22625
22626         * exp_disp.adb:
22627         Remove the test against being in No_Run_Time_Mode before generating a
22628         call to Register_Tag. It is redundant with the test against the
22629         availability of the function Register_Tag.
22630
22631 2003-10-24  Vincent Celier  <celier@gnat.com>
22632
22633         * g-catiio.adb: (Month_Name): Correct spelling of February
22634
22635         * make.adb: (Mains): New package
22636         (Initialize): Call Mains.Delete
22637         (Gnatmake): Check that each main on the command line is a source of a
22638         project file and, if there are several mains, each of them is a source
22639         of the same project file.
22640         (Gnatmake): When a foreign language is specified in attribute Languages,
22641         no main is specified on the command line and attribute Mains is not
22642         empty, only build the Ada main. If there is no Ada main, just compile
22643         the Ada sources and their closure.
22644         (Gnatmake): If a main is specified on the command line with directory
22645         information, check that the source exists and, if it does, that the path
22646         is the actual path of a source of a project.
22647
22648         * prj-env.adb:
22649         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path. When
22650         Full_Path is True, return the full path instead of the simple file name.
22651         (Project_Of): New function
22652
22653         * prj-env.ads:
22654         (File_Name_Of_Library_Unit_Body): New Boolean parameter Full_Path,
22655         defaulted to False.
22656         (Project_Of): New function
22657
22658 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22659
22660         * Makefile.generic:
22661         Ensure objects of main project are always checked and rebuilt if needed.
22662         Set CC to gcc by default.
22663         Prepare new handling of link by creating a global archive (not activated
22664         yet).
22665
22666         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22667         stringt.h: Update copyright notice. Remove trailing blanks.
22668         Fix source name in header.
22669
22670 2003-10-24  Robert Dewar  <dewar@gnat.com>
22671
22672         * sem_ch12.adb: Minor reformatting
22673
22674         * sem_ch3.adb:
22675         Minor reformatting (including new function return style throughout)
22676
22677         * sem_ch3.ads:
22678         Minor reformatting (including new function return style throughout)
22679
22680 2003-10-24  Arnaud Charlet  <charlet@act-europe.fr>
22681
22682         * adadecode.h, atree.h, elists.h, nlists.h, raise.h,
22683         stringt.h: Update copyright notice. Remove trailing blanks.
22684         Fix source name in header.
22685
22686 2003-10-24  GNAT Script  <nobody@gnat.com>
22687
22688         * Make-lang.in: Makefile automatically updated
22689
22690 2003-10-23  Nathanael Nerode  <neroden@gcc.gnu.org>
22691
22692         * adadecode.h, atree.h, elists.h, namet.h, nlists.h, raise.h,
22693         stringt.h: Convert to ISO C90 declarations and definitions.
22694
22695 2003-10-23  Thomas Quinot  <quinot@act-europe.fr>
22696
22697         PR ada/11978:
22698         * exp_ch13.adb (Expand_N_Freeze_Entity): Do not consider inherited
22699         External_Tag attribute definition clauses.
22700
22701 2003-10-23  Ed Schonberg  <schonberg@gnat.com>
22702
22703         PR ada/7613:
22704         * exp_dbug.adb (Debug_Renaming_Declaration): For the renaming of a
22705         child unit, generate a fully qualified name to avoid spurious errors
22706         when the context contains renamings of different child units with
22707         the same simple name.
22708
22709         * exp_dbug.ads: Add documentation on name qualification for renamings
22710         of child units.
22711
22712 2003-10-23  Robert Dewar  <dewar@gnat.com>
22713
22714         * g-regpat.ads, g-regpat.adb: Minor reformatting
22715
22716 2003-10-23  Jose Ruiz  <ruiz@act-europe.fr>
22717
22718         * Makefile.in: Use the file 1atags.ads with the ZFP and cert run-times.
22719
22720 2003-10-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
22721
22722         * trans.c: (tree_transform, case N_Real_Literal): Add extra arg to
22723         Machine call.
22724
22725         * urealp.h: (Machine): Update to proper definition.
22726
22727 2003-10-23  Arnaud Charlet  <charlet@act-europe.fr>
22728
22729         * init.c, adaint.c: Minor reformatting.
22730
22731 2003-10-23  Danny Smith  <dannysmith@users.sourceforge.net>
22732
22733         * adaint.c (w32_epoch_offset): Define static const at file level.
22734         (win32_filetime): Replace offset with w32_epoch_offset. Use NULL
22735         rather than t_create, t_access in call to GetFileTime. Use union
22736         to convert between FILETIME and  unsigned long long.
22737         (__gnat_file_time_name): Test for invalid file handle.
22738         (__gnat_set_filetime_name): Support win32 targets using
22739         w32api SetFileTime.
22740
22741 2003-10-22  Danny Smith  <dannysmith@users.sourceforge.net>
22742
22743         * sysdep.c: Include conio.h if __MINGW32__ and !OLD_MINGW.
22744
22745         * ctrl_c.c (__gnat_int_handler): Remove declaration.
22746
22747         * decl.c (creat_concat_name):  Const-ify prefix.
22748
22749         * adaint.c: Include ctype.h if __MINGW32__.
22750         (__gnat_readlink): Mark arguments as possibly unused.
22751         (__gnat_symlink): Likewise.
22752         (__gnat_is_symbolic_link): Likewise.
22753         (__gnat_portable_spawn): Likewise.  Cast last arg of spawnvp to match
22754         declaration
22755         (__gnat_file_time_name): Don't declare struct stat statbuf when
22756         not needed.
22757         (__gnat_is_absolute_path): Add parenthesis around condition of
22758         'if' statement to avoid warning.
22759         (__gnat_plist_init): Specify void as parameter.
22760         (plist_enter): Likewise.
22761         (plist_leave): Likewise.
22762         (remove_handle): Make static. Initialize prev.
22763
22764 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22765
22766         * Makefile.in: Disable build of gnatpsta. PR ada/10110.
22767         * cstreams.c (__gnat_full_name): Minor improvements and clean up
22768         of previous change.
22769
22770 2003-10-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
22771
22772         * tracebak.c (MAX): Avoid redefinition warning.
22773
22774         * init.c [sgi] (__gnat_error_handler): Remove i, unused.
22775         Change msg to const char *.
22776         (__gnat_install_handler): Remove ss, unused.
22777         [sun && __SVR4 && !__vxworks] (__gnat_error_handler): Change msg
22778         to const char *.
22779         * cstreams.c (__gnat_full_name): Declare p only when used.
22780         (__gnat_full_name) [sgi] Return buffer.
22781
22782 2003-10-22  Arnaud Charlet  <charlet@act-europe.fr>
22783
22784         * mingw32.h: New file.
22785         * gnat_wrapper.adb: New file.
22786
22787 2003-10-22  Jerome Roussel  <roussel@act-europe.fr>
22788
22789         * g-regpat.ads, g-regpat.adb (Match): new function, to know if a
22790         string match a pre compiled regular expression (the corresponding
22791         version of the function working on a raw regular expression)
22792         Fix typos in various comments
22793         Update copyright notice in spec
22794
22795 2003-10-21  Gary Dismukes  <dismukes@gnat.com>
22796
22797         * exp_ch3.adb:
22798         (Component_Needs_Simple_Initialization): Return False when the type is a
22799         packed bit array. Revise spec comments to document this case.
22800
22801         * exp_prag.adb:
22802         (Expand_Pragma_Import): Set any expression on the imported object to
22803         empty to avoid initializing imported objects (in particular this
22804         covers the case of zero-initialization of bit arrays).
22805         Update copyright notice.
22806
22807 2003-10-21  Ed Schonberg  <schonberg@gnat.com>
22808
22809         * sem_ch12.adb:
22810         (Load_Parent_Of_Generic): If parent is compilation unit, stop search,
22811         a subunit is missing.
22812         (Instantiate_Subprogram_Body): If body of function is missing, set type
22813         of return expression explicitly in dummy body, to prevent cascaded
22814         errors when a subunit is missing.
22815         Fixes PR 5677.
22816
22817         * sem_ch3.adb:
22818         (Access_Subprogram_Declaration): Verify that return type is valid.
22819         Fixes PR 8693.
22820
22821         * sem_elab.adb:
22822         (Check_Elab_Calls): Do not apply elaboration checks if the main unit is
22823         generic.
22824         Fixes PR 12318.
22825
22826         * sem_util.adb:
22827         (Corresponding_Discriminant): If the scope of the discriminant is a
22828         private type without discriminant, use its full view.
22829         Fixes PR 8247.
22830
22831 2003-10-21  Arnaud Charlet  <charlet@act-europe.fr>
22832
22833         * 3psoccon.ads, 3veacodu.adb, 3vexpect.adb, 3vsoccon.ads,
22834         3vsocthi.adb, 3vsocthi.ads, 3vtrasym.adb, 3zsoccon.ads,
22835         3zsocthi.adb, 3zsocthi.ads, 50system.ads, 51system.ads,
22836         55system.ads, 56osinte.adb, 56osinte.ads, 56taprop.adb,
22837         56taspri.ads, 56tpopsp.adb, 57system.ads, 58system.ads,
22838         59system.ads, 5aml-tgt.adb, 5bml-tgt.adb, 5csystem.ads,
22839         5dsystem.ads, 5fosinte.adb, 5gml-tgt.adb, 5hml-tgt.adb,
22840         5isystem.ads, 5lparame.adb, 5msystem.ads, 5psystem.ads,
22841         5sml-tgt.adb, 5sosprim.adb, 5stpopsp.adb, 5tsystem.ads,
22842         5usystem.ads, 5vml-tgt.adb, 5vsymbol.adb, 5vtraent.adb,
22843         5vtraent.ads, 5wml-tgt.adb, 5xparame.ads, 5xsystem.ads,
22844         5xvxwork.ads, 5yparame.ads, 5ytiitho.adb, 5zinit.adb,
22845         5zml-tgt.adb, 5zparame.ads, 5ztaspri.ads, 5ztfsetr.adb,
22846         5zthrini.adb, 5ztiitho.adb, 5ztpopsp.adb, 7stfsetr.adb,
22847         7straces.adb, 7strafor.adb, 7strafor.ads, 7stratas.adb,
22848         a-excach.adb, a-exexda.adb, a-exexpr.adb, a-exextr.adb,
22849         a-exstat.adb, a-strsup.adb, a-strsup.ads, a-stwisu.adb,
22850         a-stwisu.ads, bld.adb, bld.ads, bld-io.adb,
22851         bld-io.ads, clean.adb, clean.ads, ctrl_c.c,
22852         erroutc.adb, erroutc.ads, errutil.adb, errutil.ads,
22853         err_vars.ads, final.c, g-arrspl.adb, g-arrspl.ads,
22854         g-boubuf.adb, g-boubuf.ads, g-boumai.ads, g-bubsor.adb,
22855         g-bubsor.ads, g-comver.adb, g-comver.ads, g-ctrl_c.ads,
22856         g-dynhta.adb, g-dynhta.ads, g-eacodu.adb, g-excact.adb,
22857         g-excact.ads, g-heasor.adb, g-heasor.ads, g-memdum.adb,
22858         g-memdum.ads, gnatclean.adb, gnatsym.adb, g-pehage.adb,
22859         g-pehage.ads, g-perhas.ads, gpr2make.adb, gpr2make.ads,
22860         gprcmd.adb, gprep.adb, gprep.ads, g-semaph.adb,
22861         g-semaph.ads, g-string.adb, g-string.ads, g-strspl.ads,
22862         g-wistsp.ads, i-vthrea.adb, i-vthrea.ads, i-vxwoio.adb,
22863         i-vxwoio.ads, Makefile.generic, Makefile.prolog, Makefile.rtl,
22864         prep.adb, prep.ads, prepcomp.adb, prepcomp.ads,
22865         prj-err.adb, prj-err.ads, s-boarop.ads, s-carsi8.adb,
22866         s-carsi8.ads, s-carun8.adb, s-carun8.ads, s-casi16.adb,
22867         s-casi16.ads, s-casi32.adb, s-casi32.ads, s-casi64.adb,
22868         s-casi64.ads, s-casuti.adb, s-casuti.ads, s-caun16.adb,
22869         s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb,
22870         s-caun64.ads, scng.adb, scng.ads, s-exnint.adb,
22871         s-exnllf.adb, s-exnlli.adb, s-expint.adb, s-explli.adb,
22872         s-geveop.adb, s-geveop.ads, s-hibaen.ads, s-htable.adb,
22873         s-htable.ads, sinput-c.adb, sinput-c.ads, s-memcop.ads,
22874         socket.c, s-purexc.ads, s-scaval.adb, s-stopoo.adb,
22875         s-strcom.adb, s-strcom.ads, s-strxdr.adb, s-rident.ads,
22876         s-thread.adb, s-thread.ads, s-tpae65.adb, s-tpae65.ads,
22877         s-tporft.adb, s-traent.adb, s-traent.ads, styleg.adb,
22878         styleg.ads, styleg-c.adb, styleg-c.ads, s-veboop.adb,
22879         s-veboop.ads, s-vector.ads, symbols.adb, symbols.ads,
22880         tb-alvms.c, tb-alvxw.c, tempdir.adb, tempdir.ads,
22881         vms_conv.ads, vms_conv.adb, vms_data.ads,
22882         vxaddr2line.adb: Files added. Merge with ACT tree.
22883
22884         * 4dintnam.ads, 4mintnam.ads, 4uintnam.ads, 52system.ads,
22885         5dosinte.ads, 5etpopse.adb, 5mosinte.ads, 5qosinte.adb,
22886         5qosinte.ads, 5qstache.adb, 5qtaprop.adb, 5qtaspri.ads,
22887         5stpopse.adb, 5uintman.adb, 5uosinte.ads, adafinal.c,
22888         g-enblsp.adb, io-aux.c, scn-nlit.adb, scn-slit.adb,
22889         s-exnflt.ads, s-exngen.adb, s-exngen.ads, s-exnlfl.ads,
22890         s-exnlin.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
22891         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-explfl.ads,
22892         s-explin.ads, s-expllf.ads, s-expsfl.ads, s-expsin.ads,
22893         s-expssi.ads, style.adb: Files removed. Merge with ACT tree.
22894
22895         * 1ic.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
22896         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
22897         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
22898         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
22899         4cintnam.ads, 4gintnam.ads, 4hexcpol.adb, 4hintnam.ads,
22900         4lintnam.ads, 4nintnam.ads, 4ointnam.ads, 4onumaux.ads,
22901         4pintnam.ads, 4sintnam.ads, 4vcaldel.adb, 4vcalend.adb,
22902         4vintnam.ads, 4wexcpol.adb, 4wintnam.ads, 4zintnam.ads,
22903         51osinte.adb, 51osinte.ads, 52osinte.adb, 52osinte.ads,
22904         53osinte.ads, 54osinte.ads, 5aosinte.adb, 5aosinte.ads,
22905         5asystem.ads, 5ataprop.adb, 5atasinf.ads, 5ataspri.ads,
22906         5atpopsp.adb, 5avxwork.ads, 5bosinte.adb, 5bosinte.ads,
22907         5bsystem.ads, 5cosinte.ads, 5esystem.ads, 5fintman.adb,
22908         5fosinte.ads, 5fsystem.ads, 5ftaprop.adb, 5ftasinf.ads,
22909         5ginterr.adb, 5gintman.adb, 5gmastop.adb, 5gosinte.ads,
22910         5gproinf.ads, 5gsystem.ads, 5gtaprop.adb, 5gtasinf.ads,
22911         5gtpgetc.adb, 5hosinte.adb, 5hosinte.ads, 5hsystem.ads,
22912         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
22913         5itaprop.adb, 5itaspri.ads, 5ksystem.ads, 5kvxwork.ads,
22914         5lintman.adb, 5lml-tgt.adb, 5losinte.ads, 5lsystem.ads,
22915         5mvxwork.ads, 5ninmaop.adb, 5nintman.adb, 5nosinte.ads,
22916         5ntaprop.adb, 5ntaspri.ads, 5ointerr.adb, 5omastop.adb,
22917         5oosinte.adb, 5oosinte.ads, 5oosprim.adb, 5oparame.adb,
22918         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5posinte.ads,
22919         5posprim.adb, 5pvxwork.ads, 5sintman.adb, 5sosinte.adb,
22920         5sosinte.ads, 5ssystem.ads, 5staprop.adb, 5stasinf.ads,
22921         5staspri.ads, 5svxwork.ads, 5tosinte.ads, 5vasthan.adb,
22922         5vinmaop.adb, 5vinterr.adb, 5vintman.adb, 5vintman.ads,
22923         5vmastop.adb, 5vosinte.adb, 5vosinte.ads, 5vosprim.adb,
22924         5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads, 5vtpopde.adb,
22925         5vtpopde.ads, 5wgloloc.adb, 5wintman.adb, 5wmemory.adb,
22926         5wosprim.adb, 5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads,
22927         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
22928         5zosinte.ads, 5zosprim.adb, 5zsystem.ads, 5ztaprop.adb,
22929         6vcpp.adb, 6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb,
22930         7sintman.adb, 7sosinte.adb, 7sosprim.adb, 7staprop.adb,
22931         7staspri.ads, 7stpopsp.adb, 7straceb.adb, 9drpc.adb,
22932         a-caldel.adb, a-caldel.ads, a-charac.ads, a-colien.ads,
22933         a-comlin.adb, adaint.c, adaint.h, ada-tree.def,
22934         a-diocst.adb, a-diocst.ads, a-direio.adb, a-except.adb,
22935         a-except.ads, a-excpol.adb, a-exctra.adb, a-exctra.ads,
22936         a-filico.adb, a-interr.adb, a-intsig.adb, a-intsig.ads,
22937         ali.adb, ali.ads, ali-util.adb, ali-util.ads,
22938         a-ngcefu.adb, a-ngcoty.adb, a-ngelfu.adb, a-nudira.adb,
22939         a-nudira.ads, a-nuflra.adb, a-nuflra.ads, a-reatim.adb,
22940         a-reatim.ads, a-retide.ads, a-sequio.adb, a-siocst.adb,
22941         a-siocst.ads, a-ssicst.adb, a-ssicst.ads, a-strbou.adb,
22942         a-strbou.ads, a-strfix.adb, a-strmap.adb, a-strsea.ads,
22943         a-strunb.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb,
22944         a-stunau.ads, a-stwibo.adb, a-stwibo.ads, a-stwifi.adb,
22945         a-stwima.adb, a-stwiun.adb, a-stwiun.ads, a-tags.adb,
22946         a-tags.ads, a-tasatt.adb, a-taside.adb, a-teioed.adb,
22947         a-textio.adb, a-textio.ads, a-tienau.adb, a-tifiio.adb,
22948         a-tiflau.adb, a-tiflio.adb, a-tigeau.adb, a-tigeau.ads,
22949         a-tiinau.adb, a-timoau.adb, a-tiocst.adb, a-tiocst.ads,
22950         atree.adb, atree.ads, a-witeio.adb, a-witeio.ads,
22951         a-wtcstr.adb, a-wtcstr.ads, a-wtdeio.adb, a-wtedit.adb,
22952         a-wtenau.adb, a-wtflau.adb, a-wtinau.adb, a-wtmoau.adb,
22953         bcheck.adb, binde.adb, bindgen.adb, bindusg.adb,
22954         checks.adb, checks.ads, cio.c, comperr.adb,
22955         comperr.ads, csets.adb, cstand.adb, cstreams.c,
22956         debug_a.adb, debug_a.ads, debug.adb, decl.c,
22957         einfo.adb, einfo.ads, errout.adb, errout.ads,
22958         eval_fat.adb, eval_fat.ads, exp_aggr.adb, expander.adb,
22959         expander.ads, exp_attr.adb, exp_ch11.adb, exp_ch13.adb,
22960         exp_ch2.adb, exp_ch3.adb, exp_ch3.ads, exp_ch4.adb,
22961         exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
22962         exp_ch8.adb, exp_ch9.adb, exp_code.adb, exp_dbug.adb,
22963         exp_dbug.ads, exp_disp.adb, exp_dist.adb, expect.c,
22964         exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_pakd.adb,
22965         exp_prag.adb, exp_strm.adb, exp_strm.ads, exp_tss.adb,
22966         exp_tss.ads, exp_util.adb, exp_util.ads, exp_vfpt.adb,
22967         fe.h, fmap.adb, fmap.ads, fname.adb,
22968         fname.ads, fname-uf.adb, fname-uf.ads, freeze.adb,
22969         freeze.ads, frontend.adb, g-awk.adb, g-awk.ads,
22970         g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads,
22971         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
22972         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
22973         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
22974         g-crc32.adb, g-crc32.ads, g-debpoo.adb, g-debpoo.ads,
22975         g-debuti.adb, g-debuti.ads, g-diopit.adb, g-diopit.ads,
22976         g-dirope.adb, g-dirope.ads, g-dyntab.adb, g-dyntab.ads,
22977         g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.adb,
22978         g-expect.ads, g-hesora.adb, g-hesora.ads, g-hesorg.adb,
22979         g-hesorg.ads, g-htable.adb, g-htable.ads, gigi.h,
22980         g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads,
22981         g-locfil.adb, g-locfil.ads, g-md5.adb, g-md5.ads,
22982         gmem.c, gnat1drv.adb, gnatbind.adb, gnatchop.adb,
22983         gnatcmd.adb, gnatfind.adb, gnatkr.adb, gnatlbr.adb,
22984         gnatlink.adb, gnatls.adb, gnatmake.adb, gnatmem.adb,
22985         gnatname.adb, gnatprep.adb, gnatprep.ads, gnatpsta.adb,
22986         gnatxref.adb, g-os_lib.adb, g-os_lib.ads, g-regexp.adb,
22987         g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.adb,
22988         g-regpat.ads, g-soccon.ads, g-socket.adb, g-socket.ads,
22989         g-socthi.adb, g-socthi.ads, g-soliop.ads, g-souinf.ads,
22990         g-speche.adb, g-speche.ads, g-spipat.adb, g-spipat.ads,
22991         g-spitbo.adb, g-spitbo.ads, g-sptabo.ads, g-sptain.ads,
22992         g-sptavs.ads, g-table.adb, g-table.ads, g-tasloc.adb,
22993         g-tasloc.ads, g-thread.adb, g-thread.ads, g-traceb.adb,
22994         g-traceb.ads, g-trasym.adb, g-trasym.ads, hostparm.ads,
22995         i-c.ads, i-cobol.adb, i-cpp.adb, i-cstrea.ads,
22996         i-cstrin.adb, i-cstrin.ads, impunit.adb, init.c,
22997         inline.adb, interfac.ads, i-pacdec.ads, itypes.adb,
22998         itypes.ads, i-vxwork.ads, lang.opt, lang-specs.h,
22999         layout.adb, lib.adb, lib.ads, lib-list.adb,
23000         lib-load.adb, lib-load.ads, lib-sort.adb, lib-util.adb,
23001         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23002         link.c, live.adb, make.adb, make.ads,
23003         Makefile.adalib, Makefile.in, Make-lang.in, makeusg.adb,
23004         mdll.adb, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb,
23005         mdll-utl.ads, memroot.adb, memroot.ads, memtrack.adb,
23006         misc.c, mkdir.c, mlib.adb, mlib.ads,
23007         mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads,
23008         mlib-tgt.adb, mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads,
23009         namet.adb, namet.ads, namet.h, nlists.ads,
23010         nlists.h, nmake.adt, opt.adb, opt.ads,
23011         osint.adb, osint.ads, osint-b.adb, osint-c.adb,
23012         par.adb, par-ch10.adb, par-ch11.adb, par-ch2.adb,
23013         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23014         par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb,
23015         par-prag.adb, par-sync.adb, par-tchk.adb, par-util.adb,
23016         prj.adb, prj.ads, prj-attr.adb, prj-attr.ads,
23017         prj-com.adb, prj-com.ads, prj-dect.adb, prj-dect.ads,
23018         prj-env.adb, prj-env.ads, prj-ext.adb, prj-ext.ads,
23019         prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads,
23020         prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads,
23021         prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads,
23022         prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads,
23023         prj-util.adb, prj-util.ads, raise.c, raise.h,
23024         repinfo.adb, repinfo.h, restrict.adb, restrict.ads,
23025         rident.ads, rtsfind.adb, rtsfind.ads, s-addima.ads,
23026         s-arit64.adb, s-assert.adb, s-assert.ads, s-atacco.adb,
23027         s-atacco.ads, s-auxdec.adb, s-auxdec.ads, s-bitops.adb,
23028         scans.ads, scn.adb, scn.ads, s-crc32.adb,
23029         s-crc32.ads, s-direio.adb, sem.adb, sem.ads,
23030         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
23031         sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb,
23032         sem_ch11.adb, sem_ch12.adb, sem_ch12.ads, sem_ch13.adb,
23033         sem_ch13.ads, sem_ch3.adb, sem_ch3.ads, sem_ch4.adb,
23034         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23035         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23036         sem_ch9.adb, sem_disp.adb, sem_disp.ads, sem_dist.adb,
23037         sem_elab.adb, sem_eval.adb, sem_eval.ads, sem_intr.adb,
23038         sem_maps.adb, sem_mech.adb, sem_prag.adb, sem_prag.ads,
23039         sem_res.adb, sem_res.ads, sem_type.adb, sem_type.ads,
23040         sem_util.adb, sem_util.ads, sem_warn.adb, s-errrep.adb,
23041         s-errrep.ads, s-exctab.adb, s-exctab.ads, s-exnint.ads,
23042         s-exnllf.ads, s-exnlli.ads, s-expint.ads, s-explli.ads,
23043         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23044         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-fileio.adb,
23045         s-fileio.ads, s-finimp.adb, s-finimp.ads, s-finroo.adb,
23046         s-finroo.ads, sfn_scan.adb, s-gloloc.adb, s-gloloc.ads,
23047         s-imgdec.adb, s-imgenu.adb, s-imgrea.adb, s-imgwch.adb,
23048         sinfo.adb, sinfo.ads, s-inmaop.ads, sinput.adb,
23049         sinput.ads, sinput-d.adb, sinput-l.adb, sinput-l.ads,
23050         sinput-p.adb, sinput-p.ads, s-interr.adb, s-interr.ads,
23051         s-intman.ads, s-maccod.ads, s-mastop.adb, s-mastop.ads,
23052         s-memory.adb, s-memory.ads, snames.adb, snames.ads,
23053         snames.h, s-osprim.ads, s-parame.ads, s-parint.ads,
23054         s-pooloc.adb, s-pooloc.ads, s-poosiz.adb, sprint.adb,
23055         s-proinf.ads, s-scaval.ads, s-secsta.adb, s-secsta.ads,
23056         s-sequio.adb, s-shasto.adb, s-shasto.ads, s-soflin.ads,
23057         s-stache.adb, s-stache.ads, s-stalib.adb, s-stalib.ads,
23058         s-stoele.ads, s-stopoo.ads, s-stratt.adb, s-stratt.ads,
23059         s-strops.adb, s-strops.ads, s-taasde.adb, s-taasde.ads,
23060         s-tadeca.adb, s-tadeca.ads, s-tadert.adb, s-tadert.ads,
23061         s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads,
23062         s-taprop.ads, s-tarest.adb, s-tarest.ads, s-tasdeb.adb,
23063         s-tasdeb.ads, s-tasinf.adb, s-tasinf.ads, s-tasini.adb,
23064         s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb,
23065         s-tasque.ads, s-tasren.adb, s-tasren.ads, s-tasres.ads,
23066         s-tassta.adb, s-tassta.ads, s-tasuti.adb, s-tasuti.ads,
23067         s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads,
23068         s-tpoben.adb, s-tpoben.ads, s-tpobop.adb, s-tpobop.ads,
23069         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
23070         stringt.adb, stringt.ads, stringt.h, style.ads,
23071         stylesw.adb, stylesw.ads, s-unstyp.ads, s-vaflop.ads,
23072         s-valrea.adb, s-valuti.adb, s-vercon.adb, s-vmexta.adb,
23073         s-wchcnv.ads, s-wchcon.ads, s-widcha.adb, switch.adb,
23074         switch.ads, switch-b.adb, switch-c.adb, switch-m.adb,
23075         s-wwdcha.adb, s-wwdwch.adb, sysdep.c, system.ads,
23076         table.adb, table.ads, targparm.adb, targparm.ads,
23077         targtyps.c, tbuild.adb, tbuild.ads, tracebak.c,
23078         trans.c, tree_io.adb, treepr.adb, treeprs.adt,
23079         ttypes.ads, types.ads, types.h, uintp.adb,
23080         uintp.ads, uintp.h, uname.adb, urealp.adb,
23081         urealp.ads, urealp.h, usage.adb, utils2.c,
23082         utils.c, validsw.adb, validsw.ads, widechar.adb,
23083         xeinfo.adb, xnmake.adb, xref_lib.adb, xref_lib.ads,
23084         xr_tabls.adb, xr_tabls.ads, xtreeprs.adb, xsnames.adb,
23085         einfo.h, sinfo.h, treeprs.ads, nmake.ads, nmake.adb,
23086         gnatvsn.ads: Merge with ACT tree.
23087
23088         * gnatvsn.adb: Rewritten in a simpler and more efficient way.
23089
23090 2003-10-20  Mark Mitchell  <mark@codesourcery.com>
23091
23092         * Make-lang.in (gnat_ug_unx.info): Add dependency on stmp-docobjdir.
23093         (gnat_ug_vmx.info): Likewise.
23094         (gnat_ug_vxw.info): Likewise.
23095         (gnat_ug_wnt.info): Likewise.
23096         (gnat_rm.info): Likewise.
23097         (gnat-style.info): Likewise.
23098
23099         * Make-lang.in (ada.install-info): Remove target.
23100         (info): New target.
23101         (install-info): Likewise.
23102         (gnat_ug_unx.info): Simplify rule.
23103         (gnat_ug_vmx.info): Likewise.
23104         (gnat_ug_vxw.info): Likewise.
23105         (gnat_ug_wnt.info): Likewise.
23106         (gnat_rm.info): Likewise.
23107         (gnat-style.info): Likewise.
23108
23109 2003-10-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23110
23111         * Make-lang.in: Replace uses of $(target_alias) with
23112         $(target_noncanonical).
23113         * ada/Makefile.in: Remove unused mention of $(target_alias).
23114
23115 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
23116
23117         * Make-lang.in (ada.info): Replace with ...
23118         (info): ... this.
23119         (ada.dvi): Replace with ...
23120         (dvi): ... this.
23121
23122 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
23123
23124         * trans.c (gigi): Use REAL_ARITHMETIC, not REAL_VALUE_ATOF, to
23125         initialize dconstp5 and dconstmp5.
23126
23127 2003-09-28  Richard Henderson  <rth@redhat.com>
23128
23129         * trans.c (tree_transform): Update call to expand_asm_operands.
23130
23131 2003-09-21  Richard Henderson  <rth@redhat.com>
23132
23133         * trans.c, utils.c: Revert.
23134
23135 2003-09-21  Richard Henderson  <rth@redhat.com>
23136
23137         * trans.c, utils.c: Update for DECL_SOURCE_LOCATION rename and
23138         change to const.
23139
23140 2003-09-04  Michael Matz  <matz@suse.de>
23141
23142         * misc.c: Include "target.h".
23143         * Make-lang.in (misc.o): Add dependency on target.h.
23144
23145 2003-09-03  DJ Delorie  <dj@redhat.com>
23146
23147         * misc.c (default_pass_by_ref): Convert to calls.return_in_memory
23148         hook.
23149
23150 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
23151
23152         * Makefile.in: Update substitutions to match changes to
23153         configure.  Use include directives instead of @-insertions
23154         to read in host and target fragments.  Add a rule to
23155         regenerate ada/Makefile.
23156
23157 2003-07-18  Neil Booth  <neil@daikokuya.co.uk>
23158
23159         * lang-options.h: Remove.
23160         * lang.opt: Add help text.
23161
23162 2003-07-07  Nathan Sidwell  <nathan@codesourcery.com>
23163
23164         * trans.c (build_unit_elab, set_lineno): Adjust emit_line_note
23165         calls.
23166
23167 2003-07-06  Neil Booth  <neil@daikokuya.co.uk>
23168
23169         * misc.c (gnat_handle_option): Don't handle filenames.
23170
23171 2003-07-04  H.J. Lu <hongjiu.lu@intel.com>
23172
23173         * Make-lang.in: Replace PWD with PWD_COMMAND.
23174         * Makefile.adalib: Likewise.
23175         * Makefile.in: Likewise.
23176
23177 2003-07-04  Matt Kraai  <kraai@alumni.cmu.edu>
23178
23179         * misc.c (gnat_argv): Revert last change.
23180         (gnat_handle_option, gnat_init_options): Copy arguments.
23181
23182 2003-07-03  Neil Booth  <neil@daikokuya.co.uk>
23183
23184         * misc.c (gnat_argv): Make const.
23185
23186 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23187
23188         * misc.c (save_argc, save_argv): Keep non-static!
23189
23190 2003-07-02  Neil Booth  <neil@daikokuya.co.uk>
23191
23192         * misc.c (save_argc, save_argv): Make static.
23193         (gnat_init_options): New prototype.
23194         (gnat_init_options): Update.
23195
23196 2003-07-01  Matt Kraai  <kraai@alumni.cmu.edu>
23197
23198         * gnat_ug.texi: Remove unlikely characters from @vars.
23199         * gnat_ug_vms.texi: Regenerate.
23200
23201 2003-06-27  Nathan Sidwell  <nathan@codesourcery.com>
23202
23203         * misc.c (record_code_position): Adjust emit_note call.
23204
23205 2003-06-26  Neil Booth  <neil@daikokuya.co.uk>
23206
23207         * misc.c (gnat_handle_option): Don't check for missing arguments.
23208
23209 2003-06-20  Nathan Sidwell  <nathan@codesourcery.com>
23210
23211         * utils.c (end_subprog_body): Adjust expand_function_end call.
23212
23213 2003-06-16  Matt Kraai  <kraai@alumni.cmu.edu>
23214
23215         * bindgen.adb (Gen_Main_Ada, Gen_Main_C): Do not test
23216         Bind_Main_Program.
23217
23218 2003-06-15  Neil Booth  <neil@daikokuya.co.uk>
23219
23220         * lang.opt: Declare Ada.
23221         * misc.c (gnat_init_options): Update.
23222
23223 2003-06-14  Nathan Sidwell  <nathan@codesourcery.com>
23224
23225         * utils.c (begin_subprog_body): Adjust init_function_start call.
23226
23227 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23228
23229         * Make-lang.in: Update to use options.c and options.h.
23230         * misc.c: Include options.h not aoptions.h.
23231         (gnat_handle_option): Abort on unrecognized switch.
23232         (gnat_init_options): Request Ada switches.
23233
23234 2003-06-14  Neil Booth  <neil@daikokuya.co.uk>
23235
23236         * lang.opt: Add -Wall.
23237         * misc.c (gnat_handle_option): Handle it.
23238
23239 2003-06-12  Neil Booth  <neil@daikokuya.co.uk>
23240
23241         * misc.c (gnat_handle_option): Fix warnings.
23242
23243 2003-06-11  Matt Kraai  <kraai@alumni.cmu.edu>
23244
23245         * Make-lang.in (gnatbind): Remove $(LIBIBERTY).
23246
23247 2003-06-11  Neil Booth  <neil@daikokuya.co.uk>
23248
23249         * Make-lang.in: Update to handle command-line options.
23250         * lang.opt: New file.
23251         * misc.c: Include aoptions.h.
23252         (cl_options_count, cl_options): Remove.
23253         (gnat_handle_option): New.
23254         (gnat_decode_option): Remove.
23255         (LANG_HOOKS_DECODE_OPTION): Remove.
23256         (LANG_HOOKS_HANDLE_OPTION): Override.
23257
23258 2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
23259
23260         * init.c, misc.c, trans.c, utils.c: Remove dead code.
23261
23262 2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
23263
23264         * Makefile.in: Replace "host_canonical" with "host" for autoconf
23265         substitution.
23266
23267 2003-06-08  Neil Booth  <neil@daikokuya.co.uk>
23268
23269         * Make-lang.in: Update.
23270         * misc.c: Include opts.h. Define cl_options_count and cl_options.
23271
23272 2003-06-07  Neil Booth  <neil@daikokuya.co.uk>
23273
23274         * misc.c (gnat_init_options): Update.
23275
23276 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23277
23278         * Make-lang.in (ada/b_gnatb.o-warn): Remove.
23279         * bindgen.adb (Gen_Main_C): Mark ensure_reference with
23280         __attribute__ ((__unused__)).
23281
23282 2003-06-05  Jan Hubicka  <jh@suse.cz>
23283
23284         * Make-lang.in:  Add support for stageprofile and stagefeedback
23285
23286 2003-06-05  Matt Kraai  <kraai@alumni.cmu.edu>
23287
23288         * bindgen.adb (Gen_Adafinal_C, Gen_Adainit_C, Gen_Elab_Defs_C)
23289         (Gen_Main_C, Gen_Output_File_C): Generate ISO C.
23290
23291 2003-06-04  Matt Kraai  <kraai@alumni.cmu.edu>
23292
23293         * gnat_ug.texi (The GNAT Run-Time Library Builder gnatlbr):
23294         Remove non-VMS directive.
23295         (Switches for gnatlbr, Optimization Levels): Remove non-VMS
23296         alternatives.
23297         (Examples of gnatls Usage): Remove VMS alternative.
23298
23299 2003-06-04  Olivier Hainque  <hainque@act-europe.fr>
23300
23301         PR ada/9953:
23302         * 5hsystem.ads: Remove pragma Linker_Option for pthreads library,
23303         and turn ZCX_By_Default back to False since the underlying support
23304         is not quite there yet.
23305
23306 2003-06-01  Andreas Jaeger  <aj@suse.de>
23307
23308         * utils.c (finish_record_type): Remove usages of ROUND_TYPE_SIZE
23309         and ROUND_TYPE_SIZE_UNIT.
23310
23311 2003-05-22   Geert Bosch <bosch@gnat.com>
23312
23313         * gnat_rm.texi : Remove reference to Ada Core Technologies.
23314
23315 2003-05-03  Nathan Sidwell  <nathan@codesourcery.com>
23316
23317         * trans.c (tree_transform): Use location_t and input_location
23318         directly.
23319         (build_unit_elab): Likewise.
23320         * utils.c (create_label_decl): Likewise.
23321
23322 2003-05-01  Nathan Sidwell  <nathan@codesourcery.com>
23323
23324         * trans.c (tree_transform, build_unit_elab,
23325         set_lineno): Rename lineno to input_line.
23326         * utils.c (pushdecl, create_label_decl, begin_subprog_body,
23327         end_subprog_body): Likewise.
23328         * utils2.c (build_call_raise): Likewise.
23329
23330 2003-05-01  Laurent Guerby <guerby@acm.org>
23331
23332         PR ada/10546
23333         * 5iosinte.ads: Increase pthread_cond_t size to match recent
23334         LinuxThread and NPTL version, merge from ACT.
23335
23336 2003-04-28  Zack Weinberg  <zack@codesourcery.com>
23337
23338         * utils.c (convert): No need to clear TREE_CST_RTL.
23339
23340 2003-04-23   Geert Bosch <bosch@gnat.com>
23341
23342         * 1aexcept.adb, 1aexcept.ads, 1ic.ads, 1ssecsta.adb,
23343         1ssecsta.ads, 31soccon.ads, 31soliop.ads, 3asoccon.ads,
23344         3bsoccon.ads, 3gsoccon.ads, 3hsoccon.ads, 3ssoccon.ads,
23345         3ssoliop.ads, 3wsoccon.ads, 3wsocthi.adb, 3wsocthi.ads,
23346         3wsoliop.ads, 41intnam.ads, 42intnam.ads, 4aintnam.ads,
23347         4cintnam.ads, 4dintnam.ads, 4gintnam.ads, 4hexcpol.adb,
23348         4hintnam.ads, 4lintnam.ads, 4mintnam.ads, 4nintnam.ads,
23349         4ointnam.ads, 4onumaux.ads, 4pintnam.ads, 4rintnam.ads,
23350         4sintnam.ads, 4uintnam.ads, 4vcaldel.adb, 4vcalend.adb,
23351         4vcalend.ads, 4vintnam.ads, 4wcalend.adb, 4wexcpol.adb,
23352         4wintnam.ads, 4zintnam.ads, 4znumaux.ads, 4zsytaco.adb,
23353         4zsytaco.ads, 51osinte.adb, 51osinte.ads, 52osinte.adb,
23354         52osinte.ads, 52system.ads, 53osinte.ads, 54osinte.ads,
23355         5amastop.adb, 5aosinte.adb, 5aosinte.ads, 5asystem.ads,
23356         5ataprop.adb, 5atasinf.ads, 5ataspri.ads, 5atpopsp.adb,
23357         5avxwork.ads, 5bosinte.adb, 5bosinte.ads, 5bsystem.ads,
23358         5cosinte.ads, 5dosinte.ads, 5esystem.ads, 5etpopse.adb,
23359         5fintman.adb, 5fosinte.ads, 5fsystem.ads, 5ftaprop.adb,
23360         5ftasinf.ads, 5ginterr.adb, 5gintman.adb, 5gmastop.adb,
23361         5gosinte.ads, 5gproinf.adb, 5gproinf.ads, 5gsystem.ads,
23362         5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads, 5gtpgetc.adb,
23363         5hosinte.adb, 5hosinte.ads, 5hparame.ads, 5hsystem.ads,
23364         5htaprop.adb, 5htaspri.ads, 5htraceb.adb, 5iosinte.adb,
23365         5iosinte.ads, 5itaprop.adb, 5itaspri.ads, 5ksystem.ads,
23366         5kvxwork.ads, 5lintman.adb, 5lml-tgt.adb, 5losinte.ads,
23367         5lsystem.ads, 5mosinte.ads, 5mvxwork.ads, 5ninmaop.adb,
23368         5nintman.adb, 5nosinte.ads, 5ntaprop.adb, 5ntaspri.ads,
23369         5ointerr.adb, 5omastop.adb, 5oosinte.adb, 5oosinte.ads,
23370         5oosprim.adb, 5oparame.adb, 5osystem.ads, 5otaprop.adb,
23371         5otaspri.ads, 5posinte.ads, 5posprim.adb, 5pvxwork.ads,
23372         5qosinte.adb, 5qosinte.ads, 5qstache.adb, 5qtaprop.adb,
23373         5qtaspri.ads, 5rosinte.adb, 5rosinte.ads, 5rparame.adb,
23374         5sintman.adb, 5sosinte.adb, 5sosinte.ads, 5sparame.adb,
23375         5ssystem.ads, 5staprop.adb, 5stasinf.adb, 5stasinf.ads,
23376         5staspri.ads, 5stpopse.adb, 5svxwork.ads, 5tosinte.ads,
23377         5uintman.adb, 5uosinte.ads, 5vasthan.adb, 5vinmaop.adb,
23378         5vinterr.adb, 5vintman.adb, 5vintman.ads, 5vmastop.adb,
23379         5vosinte.adb, 5vosinte.ads, 5vosprim.adb, 5vosprim.ads,
23380         5vparame.ads, 5vsystem.ads, 5vtaprop.adb, 5vtaspri.ads,
23381         5vtpopde.adb, 5vtpopde.ads, 5vvaflop.adb, 5wgloloc.adb,
23382         5wintman.adb, 5wmemory.adb, 5wosinte.ads, 5wosprim.adb,
23383         5wsystem.ads, 5wtaprop.adb, 5wtaspri.ads, 5ysystem.ads,
23384         5zinterr.adb, 5zintman.adb, 5zosinte.adb, 5zosinte.ads,
23385         5zosprim.adb, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb,
23386         6vcstrea.adb, 6vinterf.ads, 7sinmaop.adb, 7sintman.adb,
23387         7sosinte.adb, 7sosprim.adb, 7staprop.adb, 7staspri.ads,
23388         7stpopsp.adb, 7straceb.adb, 86numaux.adb, 86numaux.ads,
23389         9drpc.adb, a-astaco.adb, a-astaco.ads, a-caldel.adb,
23390         a-caldel.ads, a-calend.adb, a-calend.ads, a-chahan.adb,
23391         a-chahan.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads,
23392         a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads,
23393         a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads,
23394         a-decima.adb, a-decima.ads, a-diocst.adb, a-diocst.ads,
23395         a-direio.adb, a-direio.ads, a-dynpri.adb, a-dynpri.ads,
23396         a-einuoc.adb, a-einuoc.ads, a-except.adb, a-except.ads,
23397         a-excpol.adb, a-exctra.adb, a-exctra.ads, a-filico.adb,
23398         a-filico.ads, a-finali.adb, a-finali.ads, a-flteio.ads,
23399         a-fwteio.ads, a-inteio.ads, a-interr.adb, a-interr.ads,
23400         a-intnam.ads, a-intsig.adb, a-intsig.ads, a-ioexce.ads,
23401         a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads,
23402         a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads,
23403         a-lliwti.ads, a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads,
23404         a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.adb, a-ngelfu.ads,
23405         a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads,
23406         a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads,
23407         a-nselfu.ads, a-nucoty.ads, a-nudira.adb, a-nudira.ads,
23408         a-nuelfu.ads, a-nuflra.adb, a-nuflra.ads, a-numaux.ads,
23409         a-numeri.ads, a-reatim.adb, a-reatim.ads, a-retide.adb,
23410         a-retide.ads, a-sequio.adb, a-sequio.ads, a-sfteio.ads,
23411         a-sfwtio.ads, a-siocst.adb, a-siocst.ads, a-siteio.ads,
23412         a-siwtio.ads, a-ssicst.adb, a-ssicst.ads, a-ssitio.ads,
23413         a-ssiwti.ads, a-stmaco.ads, a-storio.adb, a-storio.ads,
23414         a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb,
23415         a-strfix.ads, a-string.ads, a-strmap.adb, a-strmap.ads,
23416         a-strsea.adb, a-strsea.ads, a-strunb.adb, a-strunb.ads,
23417         a-ststio.adb, a-ststio.ads, a-stunau.adb, a-stunau.ads,
23418         a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwifi.ads,
23419         a-stwima.adb, a-stwima.ads, a-stwise.adb, a-stwise.ads,
23420         a-stwiun.adb, a-stwiun.ads, a-suteio.adb, a-suteio.ads,
23421         a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, a-sytaco.adb,
23422         a-sytaco.ads, a-tags.adb, a-tags.ads, a-tasatt.adb,
23423         a-tasatt.ads, a-taside.adb, a-taside.ads, a-teioed.adb,
23424         a-teioed.ads, a-textio.adb, a-textio.ads, a-ticoau.adb,
23425         a-ticoau.ads, a-ticoio.adb, a-ticoio.ads, a-tideau.adb,
23426         a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb,
23427         a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.adb,
23428         a-tifiio.ads, a-tiflau.adb, a-tiflau.ads, a-tiflio.adb,
23429         a-tiflio.ads, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb,
23430         a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoau.adb,
23431         a-timoau.ads, a-timoio.adb, a-timoio.ads, a-tiocst.adb,
23432         a-tiocst.ads, a-titest.adb, a-titest.ads, a-unccon.ads,
23433         a-uncdea.ads, a-witeio.adb, a-witeio.ads, a-wtcoau.adb,
23434         a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, a-wtcstr.adb,
23435         a-wtcstr.ads, a-wtdeau.adb, a-wtdeau.ads, a-wtdeio.adb,
23436         a-wtdeio.ads, a-wtedit.adb, a-wtedit.ads, a-wtenau.adb,
23437         a-wtenau.ads, a-wtenio.adb, a-wtenio.ads, a-wtfiio.adb,
23438         a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, a-wtflio.adb,
23439         a-wtflio.ads, a-wtgeau.adb, a-wtgeau.ads, a-wtinau.adb,
23440         a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb,
23441         a-wtmoau.ads, a-wtmoio.adb, a-wtmoio.ads, a-wttest.adb,
23442         a-wttest.ads, ada-tree.h, ada.ads, ada.h,
23443         adadecode.c, adadecode.h, ali-util.adb, ali-util.ads,
23444         ali.adb, ali.ads, alloc.ads, argv.c,
23445         atree.adb, atree.ads, atree.h, aux-io.c,
23446         back_end.adb, back_end.ads, bcheck.adb, bcheck.ads,
23447         binde.adb, binde.ads, binderr.adb, binderr.ads,
23448         bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads,
23449         butil.adb, butil.ads, cal.c, calendar.ads,
23450         casing.adb, casing.ads, ceinfo.adb, checks.adb,
23451         checks.ads, cio.c, comperr.adb, comperr.ads,
23452         config-lang.in, csets.adb, csets.ads, csinfo.adb,
23453         cstand.adb, cstand.ads, cuintp.c, debug.adb,
23454         debug.ads, debug_a.adb, debug_a.ads, dec-io.adb,
23455         dec-io.ads, dec.ads, deftarg.c, directio.ads,
23456         einfo.adb, einfo.ads, elists.adb, elists.ads,
23457         elists.h, errno.c, errout.adb, errout.ads,
23458         eval_fat.adb, eval_fat.ads, exit.c, exp_aggr.adb,
23459         exp_aggr.ads, exp_attr.adb, exp_attr.ads, exp_ch10.ads,
23460         exp_ch11.adb, exp_ch11.ads, exp_ch12.adb, exp_ch12.ads,
23461         exp_ch13.adb, exp_ch13.ads, exp_ch2.adb, exp_ch2.ads,
23462         exp_ch3.adb, exp_ch3.ads, exp_ch4.adb, exp_ch4.ads,
23463         exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads,
23464         exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads,
23465         exp_ch9.adb, exp_ch9.ads, exp_code.adb, exp_code.ads,
23466         exp_dbug.adb, exp_dbug.ads, exp_disp.adb, exp_disp.ads,
23467         exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads,
23468         exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads,
23469         exp_pakd.adb, exp_pakd.ads, exp_prag.adb, exp_prag.ads,
23470         exp_smem.adb, exp_smem.ads, exp_strm.adb, exp_strm.ads,
23471         exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads,
23472         exp_vfpt.adb, exp_vfpt.ads, expander.adb, expander.ads,
23473         fmap.adb, fmap.ads, fname-sf.adb, fname-sf.ads,
23474         fname-uf.adb, fname-uf.ads, fname.adb, fname.ads,
23475         freeze.adb, freeze.ads, frontend.adb, frontend.ads,
23476         g-awk.adb, g-awk.ads, g-busora.adb, g-busora.ads,
23477         g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads,
23478         g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads,
23479         g-cgi.adb, g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads,
23480         g-cgideb.adb, g-cgideb.ads, g-comlin.adb, g-comlin.ads,
23481         g-crc32.adb, g-crc32.ads, g-curexc.ads, g-debpoo.adb,
23482         g-debpoo.ads, g-debuti.adb, g-debuti.ads, g-diopit.adb,
23483         g-diopit.ads, g-dirope.adb, g-dirope.ads, g-dyntab.adb,
23484         g-dyntab.ads, g-enblsp.adb, g-except.ads, g-exctra.adb,
23485         g-exctra.ads, g-expect.adb, g-expect.ads, g-flocon.ads,
23486         g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads,
23487         g-htable.adb, g-htable.ads, g-io.adb, g-io.ads,
23488         g-io_aux.adb, g-io_aux.ads, g-locfil.ads, g-md5.adb,
23489         g-md5.ads, g-moreex.adb, g-moreex.ads, g-os_lib.adb,
23490         g-os_lib.ads, g-regexp.adb, g-regexp.ads, g-regist.ads,
23491         g-regpat.adb, g-regpat.ads, g-soccon.ads, g-socket.adb,
23492         g-socket.ads, g-socthi.adb, g-socthi.ads, g-soliop.ads,
23493         g-souinf.ads, g-speche.adb, g-speche.ads, g-spipat.adb,
23494         g-spipat.ads, g-spitbo.adb, g-spitbo.ads, g-sptabo.ads,
23495         g-sptain.ads, g-sptavs.ads, g-table.adb, g-table.ads,
23496         g-tasloc.adb, g-tasloc.ads, g-thread.adb, g-thread.ads,
23497         g-traceb.adb, g-traceb.ads, g-trasym.adb, g-trasym.ads,
23498         get_targ.adb, get_targ.ads, gnat-style.texi, gnat.ads,
23499         gnat1drv.adb, gnat1drv.ads, gnatbind.adb, gnatbind.ads,
23500         gnatbl.c, gnatchop.adb, gnatcmd.adb, gnatcmd.ads,
23501         gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads,
23502         gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb,
23503         gnatls.ads, gnatmake.adb, gnatmake.ads, gnatmem.adb,
23504         gnatname.adb, gnatname.ads, gnatprep.adb, gnatprep.ads,
23505         gnatpsta.adb, gnatvsn.adb, gnatvsn.ads, gnatxref.adb,
23506         hlo.adb, hlo.ads, hostparm.ads, i-c.adb,
23507         i-c.ads, i-cexten.ads, i-cobol.adb, i-cobol.ads,
23508         i-cpoint.adb, i-cpoint.ads, i-cpp.adb, i-cpp.ads,
23509         i-cstrea.adb, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads,
23510         i-fortra.adb, i-fortra.ads, i-os2err.ads, i-os2lib.adb,
23511         i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, i-pacdec.adb,
23512         i-pacdec.ads, i-vxwork.ads, impunit.adb, impunit.ads,
23513         inline.adb, inline.ads, interfac.ads, ioexcept.ads,
23514         itypes.adb, itypes.ads, krunch.adb, krunch.ads,
23515         layout.adb, layout.ads, lib-list.adb, lib-load.adb,
23516         lib-load.ads, lib-sort.adb, lib-util.adb, lib-util.ads,
23517         lib-writ.adb, lib-writ.ads, lib-xref.adb, lib-xref.ads,
23518         lib.adb, lib.ads, live.adb, live.ads,
23519         machcode.ads, make.adb, make.ads, makeusg.adb,
23520         makeusg.ads, math_lib.adb, mdll-fil.adb, mdll-fil.ads,
23521         mdll-utl.adb, mdll-utl.ads, mdll.adb, mdll.ads,
23522         memroot.adb, memroot.ads, memtrack.adb, mlib-fil.adb,
23523         mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb,
23524         mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, mlib.adb,
23525         mlib.ads, namet.adb, namet.ads, nlists.adb,
23526         nlists.ads, opt.adb, opt.ads, osint-b.adb,
23527         osint-b.ads, osint-c.adb, osint-c.ads, osint-l.adb,
23528         osint-l.ads, osint-m.adb, osint-m.ads, osint.adb,
23529         osint.ads, output.adb, output.ads, par-ch10.adb,
23530         par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch2.adb,
23531         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb,
23532         par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb,
23533         par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb,
23534         par-tchk.adb, par-util.adb, par.adb, par.ads,
23535         prj-attr.adb, prj-attr.ads, prj-com.adb, prj-com.ads,
23536         prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads,
23537         prj-ext.adb, prj-ext.ads, prj-makr.adb, prj-makr.ads,
23538         prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads,
23539         prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads,
23540         prj-proc.adb, prj-proc.ads, prj-strt.adb, prj-strt.ads,
23541         prj-tree.adb, prj-tree.ads, prj-util.adb, prj-util.ads,
23542         prj.adb, prj.ads, repinfo.adb, repinfo.ads,
23543         restrict.adb, restrict.ads, rident.ads, rtsfind.adb,
23544         rtsfind.ads, s-addima.adb, s-addima.ads, s-arit64.adb,
23545         s-arit64.ads, s-assert.adb, s-assert.ads, s-asthan.adb,
23546         s-asthan.ads, s-atacco.adb, s-atacco.ads, s-auxdec.adb,
23547         s-auxdec.ads, s-bitops.adb, s-bitops.ads, s-chepoo.ads,
23548         s-crc32.adb, s-crc32.ads, s-direio.adb, s-direio.ads,
23549         s-errrep.adb, s-errrep.ads, s-except.ads, s-exctab.adb,
23550         s-exctab.ads, s-exnflt.ads, s-exngen.adb, s-exngen.ads,
23551         s-exnint.ads, s-exnlfl.ads, s-exnlin.ads, s-exnllf.ads,
23552         s-exnlli.ads, s-exnsfl.ads, s-exnsin.ads, s-exnssi.ads,
23553         s-expflt.ads, s-expgen.adb, s-expgen.ads, s-expint.ads,
23554         s-explfl.ads, s-explin.ads, s-expllf.ads, s-explli.ads,
23555         s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads,
23556         s-expsfl.ads, s-expsin.ads, s-expssi.ads, s-expuns.adb,
23557         s-expuns.ads, s-fatflt.ads, s-fatgen.adb, s-fatgen.ads,
23558         s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads, s-ficobl.ads,
23559         s-fileio.adb, s-fileio.ads, s-finimp.adb, s-finimp.ads,
23560         s-finroo.adb, s-finroo.ads, s-fore.adb, s-fore.ads,
23561         s-gloloc.adb, s-gloloc.ads, s-imgbiu.adb, s-imgbiu.ads,
23562         s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads,
23563         s-imgdec.adb, s-imgdec.ads, s-imgenu.adb, s-imgenu.ads,
23564         s-imgint.adb, s-imgint.ads, s-imgllb.adb, s-imgllb.ads,
23565         s-imglld.adb, s-imglld.ads, s-imglli.adb, s-imglli.ads,
23566         s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads,
23567         s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads,
23568         s-imgwch.adb, s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads,
23569         s-inmaop.ads, s-interr.adb, s-interr.ads, s-intman.ads,
23570         s-io.adb, s-io.ads, s-maccod.ads, s-mantis.adb,
23571         s-mantis.ads, s-mastop.adb, s-mastop.ads, s-memory.adb,
23572         s-memory.ads, s-osprim.ads, s-pack03.adb, s-pack03.ads,
23573         s-pack05.adb, s-pack05.ads, s-pack06.adb, s-pack06.ads,
23574         s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads,
23575         s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads,
23576         s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads,
23577         s-pack14.adb, s-pack14.ads, s-pack15.adb, s-pack15.ads,
23578         s-pack17.adb, s-pack17.ads, s-pack18.adb, s-pack18.ads,
23579         s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads,
23580         s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads,
23581         s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads,
23582         s-pack25.adb, s-pack25.ads, s-pack26.adb, s-pack26.ads,
23583         s-pack27.adb, s-pack27.ads, s-pack28.adb, s-pack28.ads,
23584         s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads,
23585         s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads,
23586         s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads,
23587         s-pack36.adb, s-pack36.ads, s-pack37.adb, s-pack37.ads,
23588         s-pack38.adb, s-pack38.ads, s-pack39.adb, s-pack39.ads,
23589         s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads,
23590         s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads,
23591         s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads,
23592         s-pack46.adb, s-pack46.ads, s-pack47.adb, s-pack47.ads,
23593         s-pack48.adb, s-pack48.ads, s-pack49.adb, s-pack49.ads,
23594         s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads,
23595         s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads,
23596         s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads,
23597         s-pack56.adb, s-pack56.ads, s-pack57.adb, s-pack57.ads,
23598         s-pack58.adb, s-pack58.ads, s-pack59.adb, s-pack59.ads,
23599         s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads,
23600         s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads,
23601         s-parame.adb, s-parame.ads, s-parint.adb, s-parint.ads,
23602         s-pooglo.adb, s-pooglo.ads, s-pooloc.adb, s-pooloc.ads,
23603         s-poosiz.adb, s-poosiz.ads, s-powtab.ads, s-proinf.adb,
23604         s-proinf.ads, s-rpc.adb, s-rpc.ads, s-scaval.ads,
23605         s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads,
23606         s-shasto.adb, s-shasto.ads, s-soflin.adb, s-soflin.ads,
23607         s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads,
23608         s-sopco5.adb, s-sopco5.ads, s-stache.adb, s-stache.ads,
23609         s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads,
23610         s-stopoo.ads, s-stratt.adb, s-stratt.ads, s-strops.adb,
23611         s-strops.ads, s-taasde.adb, s-taasde.ads, s-tadeca.adb,
23612         s-tadeca.ads, s-tadert.adb, s-tadert.ads, s-taenca.adb,
23613         s-taenca.ads, s-taprob.adb, s-taprob.ads, s-taprop.ads,
23614         s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads,
23615         s-tasinf.adb, s-tasinf.ads, s-tasini.adb, s-tasini.ads,
23616         s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads,
23617         s-tasren.adb, s-tasren.ads, s-tasres.ads, s-tassta.adb,
23618         s-tassta.ads, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
23619         s-tataat.ads, s-tpinop.adb, s-tpinop.ads, s-tpoben.adb,
23620         s-tpoben.ads, s-tpobop.adb, s-tpobop.ads, s-tposen.adb,
23621         s-tposen.ads, s-traceb.adb, s-traceb.ads, s-traces.adb,
23622         s-traces.ads, s-tratas.adb, s-tratas.ads, s-unstyp.ads,
23623         s-vaflop.adb, s-vaflop.ads, s-valboo.adb, s-valboo.ads,
23624         s-valcha.adb, s-valcha.ads, s-valdec.adb, s-valdec.ads,
23625         s-valenu.adb, s-valenu.ads, s-valint.adb, s-valint.ads,
23626         s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads,
23627         s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
23628         s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads,
23629         s-valwch.adb, s-valwch.ads, s-vercon.adb, s-vercon.ads,
23630         s-vmexta.adb, s-vmexta.ads, s-wchcnv.adb, s-wchcnv.ads,
23631         s-wchcon.ads, s-wchjis.adb, s-wchjis.ads, s-wchstw.adb,
23632         s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb,
23633         s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb,
23634         s-widenu.ads, s-widlli.adb, s-widlli.ads, s-widllu.adb,
23635         s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb,
23636         s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb,
23637         s-wwdwch.ads, scans.adb, scans.ads, scn-nlit.adb,
23638         scn-slit.adb, scn.adb, scn.ads, sdefault.ads,
23639         sem.adb, sem.ads, sem_aggr.adb, sem_aggr.ads,
23640         sem_attr.adb, sem_attr.ads, sem_case.adb, sem_case.ads,
23641         sem_cat.adb, sem_cat.ads, sem_ch10.adb, sem_ch10.ads,
23642         sem_ch11.adb, sem_ch11.ads, sem_ch12.adb, sem_ch12.ads,
23643         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch2.ads,
23644         sem_ch3.adb, sem_ch3.ads, sem_ch4.adb, sem_ch4.ads,
23645         sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads,
23646         sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads,
23647         sem_ch9.adb, sem_ch9.ads, sem_disp.adb, sem_disp.ads,
23648         sem_dist.adb, sem_dist.ads, sem_elab.adb, sem_elab.ads,
23649         sem_elim.adb, sem_elim.ads, sem_eval.adb, sem_eval.ads,
23650         sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads,
23651         sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads,
23652         sem_res.adb, sem_res.ads, sem_smem.adb, sem_smem.ads,
23653         sem_type.adb, sem_type.ads, sem_util.adb, sem_util.ads,
23654         sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, sem_warn.ads,
23655         sequenio.ads, sfn_scan.adb, sfn_scan.ads, sinfo-cn.adb,
23656         sinfo-cn.ads, sinfo.adb, sinfo.ads, sinput-d.adb,
23657         sinput-d.ads, sinput-l.adb, sinput-l.ads, sinput-p.adb,
23658         sinput-p.ads, sinput.adb, sinput.ads, snames.adb,
23659         snames.ads, sprint.adb, sprint.ads, stand.adb,
23660         stand.ads, stringt.adb, stringt.ads, style.adb,
23661         style.ads, stylesw.adb, stylesw.ads, switch-b.adb,
23662         switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb,
23663         switch-m.ads, switch.adb, switch.ads, system.ads,
23664         table.adb, table.ads, targparm.adb, targparm.ads,
23665         tbuild.adb, tbuild.ads, text_io.ads, trans.c,
23666         tree_gen.adb, tree_gen.ads, tree_in.adb, tree_in.ads,
23667         tree_io.adb, tree_io.ads, treepr.adb, treepr.ads,
23668         ttypef.ads, ttypes.ads, types.adb, types.ads,
23669         uintp.adb, uintp.ads, uname.adb, uname.ads,
23670         unchconv.ads, unchdeal.ads, urealp.adb, urealp.ads,
23671         usage.adb, usage.ads, validsw.adb, validsw.ads,
23672         widechar.adb, widechar.ads, xeinfo.adb, xnmake.adb,
23673         xr_tabls.adb, xr_tabls.ads, xref_lib.adb, xref_lib.ads,
23674         xsinfo.adb, xsnames.adb, xtreeprs.adb : Merge header,
23675         formatting and other trivial changes from ACT.
23676
23677 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
23678
23679         * gigi.h, utils2.c (build_constructor):
23680         Rename gnat_build_constructor. Use build_constructor.
23681         * decl.c (gnat_to_gnu_entity)
23682         * trans.c (tree_transform, pos_to_constructor, extract_values)
23683         * ada/utils.c (build_template, convert_to_fat_pointer, convert)
23684         (unchecked_convert)
23685         * ada/utils2.c (build_binary_op, build_call_raise, build_allocator)
23686         (fill_vms_descriptor):
23687         Update to match.
23688
23689 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
23690
23691         * ada-tree.def: Make fourth element for GNAT_LOOP_ID zero.
23692         * misc.c (gnat_tree_size): New function.
23693         (LANG_HOOKS_TREE_SIZE): Override.
23694
23695 2003-04-03  Jason Merrill  <jason@redhat.com>
23696
23697         * misc.c (gnat_adjust_rli): #if 0.
23698
23699 2003-03-31   Geert Bosch <bosch@gnat.com>
23700
23701         PR ada/10020
23702         * link.c : Fix misspelled "const" keyword
23703
23704 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
23705
23706         PR c++/7086
23707         * utils2.c: Adjust calls to put_var_into_stack.
23708
23709 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
23710
23711         * Make-lang.in, Makefile.in, config-lang.in: GCC, not GNU CC.
23712
23713 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
23714
23715         * misc.c (gnat_init): Update for new prototype.
23716
23717 2003-03-05  Olivier Hainque  <hainque@gnat.com>
23718
23719         ada/9961
23720         * raise.c (__gnat_Unwind_RaiseException): Add prototype to avoid
23721         warning, and fix return type for the IN_RTS && !SJLJ case.
23722
23723 2003-03-04  Tom Tromey  <tromey@redhat.com>
23724
23725         * Make-lang.in (ada.tags): New target.
23726
23727 2003-03-04  Olivier Hainque  <hainque@act-europe.fr>
23728
23729         ada/9911
23730         * a-except.adb (Unwind_RaiseException): Import a GNAT specific
23731         wrapper, which name remains constant whatever underlying GCC
23732         scheme.
23733
23734         * raise.c (__gnat_Unwind_RaiseException): New wrappers, providing
23735         the stable interface needed for a-except.
23736
23737 2003-03-02  Andreas Jaeger  <aj@suse.de>
23738
23739         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23740         gnat_ug_wnt.texi: Regenerate.
23741
23742 2003-03-02  Laurent Guerby <guerby@acm.org>
23743
23744         * Makefile.in (install-gnatlib): Match previous change there
23745         so it works.
23746
23747 2003-02-28  Andreas Schwab  <schwab@suse.de>
23748
23749         * Make-lang.in (install-gnatlib): Change to ada directory before
23750         running make instead of using ada/Makefile directly.
23751
23752 2003-02-18  Ben Elliston  <bje@redhat.com>
23753
23754         Part of fix for PR ada/9406
23755         * gnat_ug.texi (Binder output file): Grammar fix.
23756
23757 2003-02-18  Ben Elliston  <bje@redhat.com>
23758
23759         PR other/7350
23760         * 5qtaprop.adb (Sleep): Fix typo in comment.
23761
23762 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
23763
23764         * gnat_rm.texi, gnat_ug.texi: Update to GFDL 1.2.
23765         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23766         gnat_ug_wnt.texi: Regenerate.
23767
23768 2003-02-03  Christian Cornelssen <ccorn@cs.tu-berlin.de>
23769
23770         * Make-lang.in (ada.install-info): Let $(DESTDIR)$(infodir)
23771         be created if necessary.
23772         (ada.install-common): Let $(DESTDIR)$(bindir) be created
23773         if necessary.  Remove erroneous and redundant gnatchop
23774         installation commands.  Test for gnatdll before attempting
23775         to install it.
23776         (ada.uninstall): Also uninstall gnatfind, gnatxref, gnatlbr,
23777         and gnatdll from all plausible locations.
23778
23779 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
23780
23781         * utils2.c (build_unary_op): Don't check flag_volatile.
23782         * gnat_ug.texi: Remove -fvolatile from example.
23783         * gnat_ug_vxw.texi: Likewise.
23784
23785 2003-01-29  Laurent Guerby <guerby@acm.org>
23786
23787         PR ada/8344
23788         * final.c: rename to adafinal.c to avoid file name conflicts with gcc file.
23789         * Makefile.in: match previous change.
23790         * Make-lang.in: match previous change.
23791
23792 2003-01-29      Joel Sherrill <joel@OARcorp.com>
23793
23794         * 5rosinte.ads: Add SIGXCPU.
23795         * 5rtpopsp.adb: New file.
23796         * Make-lang.in: Do not build gnatpsta and gnatpsys when cross.
23797         * Makefile.in: Recognize more RTEMS targets and add the RTEMS
23798         specific file 5rtpopsp.adb.
23799         * adaint.h: Add include of <stdio.h> when target is RTEMS.  This
23800         is likely needed for all newlib targets.
23801         * init.c: Add RTEMS specific version of __gnat_initialize().
23802
23803 2003-01-28  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23804
23805         * adaint.c, adaint.h, gmem.c, init.c: Update copyright year.
23806
23807 2003-01-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
23808
23809         * init.c (__gnat_error_handler): Make msg const.
23810
23811         * gmem.c (convert_addresses): Move declaration ...
23812         * adaint.h: ... here.
23813         * adaint.c (convert_addresses): Adapt addrs type to match
23814         prototype.
23815
23816         * adaint.c (__gnat_try_lock): Cast pid_t to long, adapt format.
23817
23818 2003-01-24  Andreas Schwab  <schwab@suse.de>
23819
23820         * ada-tree.h (SET_TYPE_DIGITS_VALUE): Add intermediate cast to
23821         size_t to avoid warning.
23822
23823 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
23824
23825         * Make-lang.in: Disable -Werror for tracebak.c and b_gnatb.c.
23826
23827 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
23828
23829         * gnat_rm.texi: Remove RCS version number.
23830
23831         * ada-tree.h (union lang_tree_node): Add chain_next option.
23832
23833 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
23834
23835         * Make-lang.in (ada.install-info, ada.install-common,
23836         ada.uninstall): Prepend $(DESTDIR) to the destination
23837         directory in all (un)installation commands.
23838         * Makefile.in (install-gnatlib, install-rts): Ditto.
23839
23840 2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
23841
23842         * gnat_rm.texi, gnat_ug.texi: Use @copying.
23843         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
23844         gnat_ug_wnt.texi: Regenerate.
23845
23846 2002-12-23  Joseph S. Myers  <jsm@polyomino.org.uk>
23847
23848         * gnat_rm.texi: Include gcc-common.texi.  Use GCC version number
23849         only.
23850         * Make-lang.in ($(srcdir)/ada/gnat_ug_unx.info,
23851         $(srcdir)/ada/gnat_ug_vms.info, $(srcdir)/ada/gnat_ug_vxw.info,
23852         $(srcdir)/ada/gnat_ug_wnt.info, $(srcdir)/ada/gnat_rm.info,
23853         ada/gnat_ug_unx.dvi, ada/gnat_ug_vms.dvi, ada/gnat_ug_vxw.dvi,
23854         ada/gnat_ug_wnt.dvi, ada/gnat_rm.dvi): Depend on
23855         $(srcdir)/doc/include/gcc-common.texi.
23856
23857 2002-12-15   Geert Bosch <bosch@gnat.com>
23858
23859         * sem_ch6.adb (Analyze_Subprogram_Body): Fix typo and formatting
23860
23861 2002-12-14   Geert Bosch <bosch@gnat.com>
23862
23863         * sem_ch6.adb (Analyze_Subprogram_Body): Recognize additional
23864         case of a body created for a Renaming_As_Body, on which
23865         conformance checks are not performed. Fixes PR ada/5690.
23866
23867 2002-11-30  Zack Weinberg  <zack@codesourcery.com>
23868
23869         * cuintp.c, decl.c, deftarg.c, misc.c, targtyps.c, trans.c,
23870         utils.c, utils2.c: Include coretypes.h and tm.h, and system.h when
23871         not already included.
23872         * Make-lang.in: Update dependencies.
23873
23874 2002-11-18  Nathanael Nerode  <neroden@gcc.gnu.org>
23875         * adaint.c (__gnat_tmp_name): Better, but good enough for now,
23876         solution to buffer overflow bug on GNU/Linux.
23877
23878 2002-11-14  Nathanael Nerode  <neroden@gcc.gnu.org>
23879         Closes PR ada/5856 and PR ada/6919 !
23880         * bindgen.adb: Remove all references to Public_Version.
23881         * comperr.adb: Remove all references to Public_Version and
23882         GNATPRO_Version; correct bug reporting instructions.
23883         * comperr.ads: Change to match bug box.
23884         * gnatvsn.ads: Remove all references to Public version and
23885         GNATPRO version.
23886
23887 2002-11-13  Nathanael Nerode  <neroden@gcc.gnu.org>
23888         PR ada/6919
23889         * adaint.c (__gnat_tmp_name): Remove buffer overflow bug on
23890         GNU/Linux.
23891
23892         PR ada/6558
23893         * config-lang.in: Remove diff_excludes.
23894
23895 2002-11-05  Graham Stott  <graham.stott@btinternet.com>
23896         PR ada/8358
23897         * trans.c (gnu_pending_elaboration_lists): New GC root.
23898         (build_unit_elab): Use..
23899
23900 2002-10-30   Geert Bosch <bosch@gnat.com>
23901         PR ada/6558
23902         * misc.c : Include optabs.h
23903
23904         * Make-lang.in (misc.o): Add dependency on optabs.h
23905
23906 2002-10-29   Geert Bosch <bosch@gnat.com>
23907         PR ada/6558
23908         * Make-lang.in (gnatbind): Depend on CONFIG_H
23909
23910 2002-10-29  Geert bosch  <bosch@gnat.com>
23911         PR ada/6558
23912         * misc.c: Unrevert misc.c (1.13)
23913
23914 2002-10-28  Nathanael Nerode  <neroden@gcc.gnu.org>
23915
23916         * a-chlat9.ads a-cwila9.ads a-dynpri.adb a-retide.adb: Update
23917         maintainership comments.
23918
23919 2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
23920         PR ada/5904
23921         * 5ataprop.adb 5atpopsp.adb 5bosinte.adb 5ftaprop.adb
23922         5gtaprop.adb 5htaprop.adb 5rosinte.ads 5staprop.adb
23923         5stpopse.adb 5vtaspri.ads 5zintman.adb 5ztaprop.adb
23924         7staprop.adb: Correct statements in comments about
23925         maintainership of GNAT.
23926
23927         PR ada/5904
23928         * 1ssecsta.adb 1ssecsta.ads adadecode.c adadecode.h aux-io.c
23929         gnatname.adb gnatname.ads mkdir.c osint-b.adb osint-b.ads
23930         osint-c.adb osint-c.ads osint-l.adb osint-l.ads osint-m.adb
23931         osint-m.ads prj-makr.adb prj-makr.ads prj-pp.adb prj-pp.ads
23932         s-atacco.ads s-traceb.adb s-traceb.ads s-traces.adb
23933         s-traces.ads s-tratas.adb s-tratas.ads sinput-d.adb
23934         sinput-d.ads switch-b.adb switch-b.ads switch-c.adb
23935         switch-c.ads switch-m.adb switch-m.ads: Correct statements in
23936         comments about maintainership of GNAT.
23937
23938         PR ada/6919 (forward port of patch for PR ada/5904)
23939         * 1aexcept.adb 1aexcept.ads 41intnam.ads 42intnam.ads
23940         4aintnam.ads 4cintnam.ads 4dintnam.ads 4hexcpol.adb
23941         4lintnam.ads 4mintnam.ads 4nintnam.ads 4onumaux.ads
23942         4pintnam.ads 4rintnam.ads 4sintnam.ads 4uintnam.ads
23943         4vcalend.adb 4vintnam.ads 4wcalend.adb 4wexcpol.adb
23944         4wintnam.ads 4zintnam.ads 4znumaux.ads 4zsytaco.adb
23945         4zsytaco.ads 51osinte.adb 51osinte.ads 52osinte.adb
23946         52osinte.ads 52system.ads 53osinte.ads 5aosinte.ads
23947         5asystem.ads 5atasinf.ads 5ataspri.ads 5avxwork.ads
23948         5bosinte.ads 5bsystem.ads 5cosinte.ads 5dosinte.ads
23949         5esystem.ads 5fosinte.ads 5fsystem.ads 5ftasinf.ads
23950         5ginterr.adb 5gmastop.adb 5gosinte.ads 5gproinf.adb
23951         5gproinf.ads 5gsystem.ads 5gtasinf.adb 5gtasinf.ads
23952         5gtpgetc.adb 5hparame.ads 5hsystem.ads 5htaspri.ads
23953         5iosinte.ads 5itaspri.ads 5ksystem.ads 5kvxwork.ads
23954         5losinte.ads 5lsystem.ads 5mosinte.ads 5mvxwork.ads
23955         5ninmaop.adb 5nintman.adb 5nosinte.ads 5ntaspri.ads
23956         5oosprim.adb 5oparame.adb 5osystem.ads 5posinte.ads
23957         5posprim.adb 5pvxwork.ads 5rosinte.ads 5rparame.adb
23958         5sintman.adb 5sosinte.ads 5sparame.adb 5ssystem.ads
23959         5stasinf.adb 5stasinf.ads 5staspri.ads 5svxwork.ads
23960         5tosinte.ads 5uosinte.ads 5vasthan.adb 5vinterr.adb
23961         5vintman.ads 5vosinte.ads 5vosprim.adb 5vosprim.ads
23962         5vparame.ads 5vsystem.ads 5vtaspri.ads 5vtpopde.adb
23963         5vtpopde.ads 5vvaflop.adb 5wintman.adb 5wmemory.adb
23964         5wosinte.ads 5wosprim.adb 5wsystem.ads 5wtaprop.adb
23965         5wtaspri.ads 5ysystem.ads 5zinterr.adb 5zosinte.adb
23966         5zosinte.ads 5zosprim.adb 5zsystem.ads 6vcpp.adb 6vcstrea.adb
23967         7sosprim.adb 86numaux.adb 86numaux.ads 9drpc.adb a-astaco.adb
23968         a-caldel.ads a-calend.adb a-calend.ads a-chahan.adb
23969         a-chahan.ads a-colien.adb a-colien.ads a-colire.adb
23970         a-colire.ads a-comlin.adb a-comlin.ads a-cwila1.ads
23971         a-decima.adb a-decima.ads a-diocst.adb a-diocst.ads
23972         a-direio.adb a-direio.ads a-einuoc.adb a-einuoc.ads
23973         a-except.adb a-except.ads a-excpol.adb a-exctra.adb
23974         a-exctra.ads a-filico.adb a-filico.ads a-finali.adb
23975         a-finali.ads a-interr.ads a-intsig.adb a-intsig.ads
23976         a-ngcefu.adb a-ngcoty.adb a-ngcoty.ads a-ngelfu.adb
23977         a-nudira.adb a-nudira.ads a-nuflra.adb a-nuflra.ads
23978         a-numaux.ads a-reatim.ads a-retide.ads a-sequio.adb
23979         a-sequio.ads a-siocst.adb a-siocst.ads a-ssicst.adb
23980         a-ssicst.ads a-stmaco.ads a-storio.adb a-strbou.adb
23981         a-strbou.ads a-stream.ads a-strfix.adb a-strfix.ads
23982         a-strmap.adb a-strmap.ads a-strsea.adb a-strsea.ads
23983         a-strunb.adb a-strunb.ads a-ststio.adb a-ststio.ads
23984         a-stunau.adb a-stunau.ads a-stwibo.adb a-stwibo.ads
23985         a-stwifi.adb a-stwima.adb a-stwima.ads a-stwise.adb
23986         a-stwise.ads a-stwiun.adb a-stwiun.ads a-suteio.adb
23987         a-suteio.ads a-swmwco.ads a-swuwti.adb a-swuwti.ads
23988         a-sytaco.adb a-sytaco.ads a-tags.adb a-tags.ads a-tasatt.ads
23989         a-taside.adb a-taside.ads a-teioed.adb a-teioed.ads
23990         a-textio.adb a-textio.ads a-ticoau.adb a-ticoau.ads
23991         a-ticoio.adb a-ticoio.ads a-tideau.adb a-tideau.ads
23992         a-tideio.adb a-tideio.ads a-tienau.adb a-tienau.ads
23993         a-tienio.adb a-tienio.ads a-tifiio.adb a-tifiio.ads
23994         a-tiflau.adb a-tiflau.ads a-tiflio.adb a-tiflio.ads
23995         a-tigeau.adb a-tigeau.ads a-tiinau.adb a-tiinau.ads
23996         a-tiinio.adb a-tiinio.ads a-timoau.adb a-timoau.ads
23997         a-timoio.adb a-timoio.ads a-tiocst.adb a-tiocst.ads
23998         a-titest.adb a-witeio.adb a-witeio.ads a-wtcoau.adb
23999         a-wtcoau.ads a-wtcoio.adb a-wtcstr.adb a-wtcstr.ads
24000         a-wtdeau.adb a-wtdeau.ads a-wtdeio.adb a-wtdeio.ads
24001         a-wtedit.adb a-wtedit.ads a-wtenau.adb a-wtenau.ads
24002         a-wtenio.adb a-wtenio.ads a-wtfiio.adb a-wtfiio.ads
24003         a-wtflau.adb a-wtflau.ads a-wtflio.adb a-wtflio.ads
24004         a-wtgeau.adb a-wtgeau.ads a-wtinau.adb a-wtinau.ads
24005         a-wtinio.adb a-wtmoau.adb a-wtmoau.ads a-wtmoio.adb
24006         a-wtmoio.ads a-wttest.adb ada-tree.def ada-tree.h ada.h
24007         adaint.c adaint.h ali-util.adb ali-util.ads ali.adb ali.ads
24008         alloc.ads argv.c atree.adb atree.ads atree.h back_end.adb
24009         back_end.ads bcheck.adb bcheck.ads binde.adb binde.ads
24010         binderr.adb binderr.ads bindgen.adb bindgen.ads bindusg.adb
24011         bindusg.ads butil.adb butil.ads cal.c casing.adb casing.ads
24012         ceinfo.adb checks.adb checks.ads cio.c comperr.adb comperr.ads
24013         csets.adb csets.ads csinfo.adb cstand.adb cstand.ads
24014         cstreams.c cuintp.c debug.adb debug.ads debug_a.adb
24015         debug_a.ads dec-io.adb dec-io.ads dec.ads decl.c deftarg.c
24016         einfo.adb einfo.ads einfo.h elists.adb elists.ads elists.h
24017         errno.c errout.adb errout.ads eval_fat.adb eval_fat.ads exit.c
24018         exp_aggr.adb exp_aggr.ads exp_attr.adb exp_attr.ads
24019         exp_ch10.ads exp_ch11.adb exp_ch11.ads exp_ch12.adb
24020         exp_ch12.ads exp_ch13.adb exp_ch13.ads exp_ch2.adb exp_ch2.ads
24021         exp_ch3.adb exp_ch3.ads exp_ch4.adb exp_ch4.ads exp_ch5.adb
24022         exp_ch5.ads exp_ch6.adb exp_ch6.ads exp_ch7.adb exp_ch7.ads
24023         exp_ch8.adb exp_ch8.ads exp_ch9.adb exp_ch9.ads exp_code.adb
24024         exp_code.ads exp_dbug.adb exp_dbug.ads exp_disp.adb
24025         exp_disp.ads exp_dist.adb exp_dist.ads exp_fixd.adb
24026         exp_fixd.ads exp_imgv.adb exp_imgv.ads exp_intr.adb
24027         exp_intr.ads exp_pakd.adb exp_pakd.ads exp_prag.adb
24028         exp_prag.ads exp_smem.adb exp_smem.ads exp_strm.adb
24029         exp_strm.ads exp_tss.adb exp_tss.ads exp_util.adb exp_util.ads
24030         exp_vfpt.adb exp_vfpt.ads expander.adb expander.ads fe.h
24031         final.c fmap.adb fmap.ads fname-sf.adb fname-sf.ads
24032         fname-uf.adb fname-uf.ads fname.adb fname.ads freeze.adb
24033         freeze.ads frontend.adb frontend.ads g-calend.ads g-comlin.adb
24034         g-debpoo.adb g-debpoo.ads g-locfil.adb g-os_lib.ads
24035         g-regist.adb g-regist.ads get_targ.adb get_targ.ads gigi.h
24036         gmem.c gnat1drv.adb gnat1drv.ads gnat_ug.texi gnatbind.adb
24037         gnatbind.ads gnatbl.c gnatcmd.adb gnatcmd.ads gnatdll.adb
24038         gnatfind.adb gnatkr.adb gnatkr.ads gnatlbr.adb gnatlink.adb
24039         gnatlink.ads gnatls.adb gnatls.ads gnatmake.adb gnatmake.ads
24040         gnatmem.adb gnatprep.adb gnatprep.ads gnatpsta.adb gnatvsn.ads
24041         gnatxref.adb hlo.adb hlo.ads hostparm.ads i-c.adb i-cexten.ads
24042         i-cobol.adb i-cobol.ads i-cpoint.adb i-cpoint.ads i-cpp.adb
24043         i-cpp.ads i-cstrea.adb i-cstrea.ads i-cstrin.adb i-cstrin.ads
24044         i-fortra.adb i-os2err.ads i-os2lib.adb i-os2lib.ads
24045         i-os2syn.ads i-os2thr.ads i-pacdec.adb i-pacdec.ads
24046         impunit.adb impunit.ads init.c inline.adb inline.ads io-aux.c
24047         itypes.adb itypes.ads krunch.adb krunch.ads lang-options.h
24048         lang-specs.h layout.adb layout.ads lib-list.adb lib-load.adb
24049         lib-load.ads lib-sort.adb lib-util.adb lib-util.ads
24050         lib-writ.adb lib-writ.ads lib-xref.adb lib-xref.ads lib.adb
24051         lib.ads link.c live.adb live.ads make.adb make.ads makeusg.adb
24052         makeusg.ads math_lib.adb mdll.adb mdll.ads memtrack.adb misc.c
24053         namet.adb namet.ads namet.h nlists.adb nlists.ads nlists.h
24054         nmake.adb nmake.ads nmake.adt opt.adb opt.ads osint.adb
24055         osint.ads output.adb output.ads par-ch10.adb par-ch11.adb
24056         par-ch12.adb par-ch13.adb par-ch2.adb par-ch3.adb par-ch4.adb
24057         par-ch5.adb par-ch6.adb par-ch7.adb par-ch8.adb par-ch9.adb
24058         par-endh.adb par-labl.adb par-load.adb par-prag.adb
24059         par-sync.adb par-tchk.adb par-util.adb par.adb par.ads
24060         prj-attr.adb prj-attr.ads prj-com.adb prj-com.ads prj-dect.adb
24061         prj-dect.ads prj-env.adb prj-env.ads prj-ext.adb prj-ext.ads
24062         prj-nmsc.adb prj-nmsc.ads prj-pars.adb prj-pars.ads
24063         prj-part.adb prj-part.ads prj-proc.adb prj-proc.ads
24064         prj-strt.adb prj-strt.ads prj-tree.adb prj-tree.ads
24065         prj-util.adb prj-util.ads prj.adb prj.ads raise.c raise.h
24066         repinfo.adb repinfo.ads repinfo.h restrict.adb restrict.ads
24067         rident.ads rtsfind.adb rtsfind.ads s-addima.adb s-addima.ads
24068         s-arit64.adb s-arit64.ads s-assert.adb s-assert.ads
24069         s-asthan.adb s-asthan.ads s-atacco.adb s-auxdec.adb
24070         s-auxdec.ads s-bitops.adb s-bitops.ads s-chepoo.ads
24071         s-direio.adb s-direio.ads s-except.ads s-exctab.adb
24072         s-exctab.ads s-exnflt.ads s-exngen.adb s-exngen.ads
24073         s-exnint.ads s-exnlfl.ads s-exnlin.ads s-exnllf.ads
24074         s-exnlli.ads s-exnsfl.ads s-exnsin.ads s-exnssi.ads
24075         s-expflt.ads s-expgen.adb s-expgen.ads s-expint.ads
24076         s-explfl.ads s-explin.ads s-expllf.ads s-explli.ads
24077         s-expllu.adb s-expllu.ads s-expmod.adb s-expmod.ads
24078         s-expsfl.ads s-expsin.ads s-expssi.ads s-expuns.adb
24079         s-expuns.ads s-fatflt.ads s-fatgen.adb s-fatgen.ads
24080         s-fatlfl.ads s-fatllf.ads s-fatsfl.ads s-ficobl.ads
24081         s-fileio.adb s-fileio.ads s-finimp.adb s-finimp.ads
24082         s-finroo.adb s-finroo.ads s-fore.adb s-fore.ads s-imgbiu.adb
24083         s-imgbiu.ads s-imgboo.adb s-imgboo.ads s-imgcha.adb
24084         s-imgcha.ads s-imgdec.adb s-imgdec.ads s-imgenu.adb
24085         s-imgenu.ads s-imgint.adb s-imgint.ads s-imgllb.adb
24086         s-imgllb.ads s-imglld.adb s-imglld.ads s-imglli.adb
24087         s-imglli.ads s-imgllu.adb s-imgllu.ads s-imgllw.adb
24088         s-imgllw.ads s-imgrea.adb s-imgrea.ads s-imguns.adb
24089         s-imguns.ads s-imgwch.adb s-imgwch.ads s-imgwiu.adb
24090         s-imgwiu.ads s-inmaop.ads s-interr.adb s-interr.ads
24091         s-intman.ads s-io.adb s-io.ads s-maccod.ads s-mantis.adb
24092         s-mantis.ads s-memory.adb s-memory.ads s-osprim.ads
24093         s-pack03.adb s-pack03.ads s-pack05.adb s-pack05.ads
24094         s-pack06.adb s-pack06.ads s-pack07.adb s-pack07.ads
24095         s-pack09.adb s-pack09.ads s-pack10.adb s-pack10.ads
24096         s-pack11.adb s-pack11.ads s-pack12.adb s-pack12.ads
24097         s-pack13.adb s-pack13.ads s-pack14.adb s-pack14.ads
24098         s-pack15.adb s-pack15.ads s-pack17.adb s-pack17.ads
24099         s-pack18.adb s-pack18.ads s-pack19.adb s-pack19.ads
24100         s-pack20.adb s-pack20.ads s-pack21.adb s-pack21.ads
24101         s-pack22.adb s-pack22.ads s-pack23.adb s-pack23.ads
24102         s-pack24.adb s-pack24.ads s-pack25.adb s-pack25.ads
24103         s-pack26.adb s-pack26.ads s-pack27.adb s-pack27.ads
24104         s-pack28.adb s-pack28.ads s-pack29.adb s-pack29.ads
24105         s-pack30.adb s-pack30.ads s-pack31.adb s-pack31.ads
24106         s-pack33.adb s-pack33.ads s-pack34.adb s-pack34.ads
24107         s-pack35.adb s-pack35.ads s-pack36.adb s-pack36.ads
24108         s-pack37.adb s-pack37.ads s-pack38.adb s-pack38.ads
24109         s-pack39.adb s-pack39.ads s-pack40.adb s-pack40.ads
24110         s-pack41.adb s-pack41.ads s-pack42.adb s-pack42.ads
24111         s-pack43.adb s-pack43.ads s-pack44.adb s-pack44.ads
24112         s-pack45.adb s-pack45.ads s-pack46.adb s-pack46.ads
24113         s-pack47.adb s-pack47.ads s-pack48.adb s-pack48.ads
24114         s-pack49.adb s-pack49.ads s-pack50.adb s-pack50.ads
24115         s-pack51.adb s-pack51.ads s-pack52.adb s-pack52.ads
24116         s-pack53.adb s-pack53.ads s-pack54.adb s-pack54.ads
24117         s-pack55.adb s-pack55.ads s-pack56.adb s-pack56.ads
24118         s-pack57.adb s-pack57.ads s-pack58.adb s-pack58.ads
24119         s-pack59.adb s-pack59.ads s-pack60.adb s-pack60.ads
24120         s-pack61.adb s-pack61.ads s-pack62.adb s-pack62.ads
24121         s-pack63.adb s-pack63.ads s-parame.adb s-parame.ads
24122         s-parint.adb s-parint.ads s-pooglo.adb s-pooglo.ads
24123         s-pooloc.adb s-pooloc.ads s-poosiz.adb s-poosiz.ads
24124         s-powtab.ads s-proinf.adb s-proinf.ads s-rpc.adb s-rpc.ads
24125         s-scaval.ads s-secsta.adb s-secsta.ads s-sequio.adb
24126         s-sequio.ads s-shasto.adb s-shasto.ads s-soflin.adb
24127         s-soflin.ads s-sopco3.adb s-sopco3.ads s-sopco4.adb
24128         s-sopco4.ads s-sopco5.adb s-sopco5.ads s-stache.adb
24129         s-stache.ads s-stalib.adb s-stalib.ads s-stoele.adb
24130         s-stopoo.ads s-stratt.adb s-stratt.ads s-strops.adb
24131         s-strops.ads s-taprob.ads s-taprop.ads s-tarest.ads
24132         s-tasdeb.adb s-tasdeb.ads s-tasinf.adb s-tasinf.ads
24133         s-tasini.ads s-taskin.ads s-tasren.ads s-tasres.ads
24134         s-tassta.ads s-tpinop.adb s-tpinop.ads s-tpoben.ads
24135         s-tpobop.ads s-unstyp.ads s-vaflop.adb s-vaflop.ads
24136         s-valboo.adb s-valboo.ads s-valcha.adb s-valcha.ads
24137         s-valdec.adb s-valdec.ads s-valenu.adb s-valenu.ads
24138         s-valint.adb s-valint.ads s-vallld.adb s-vallld.ads
24139         s-vallli.adb s-vallli.ads s-valllu.adb s-valllu.ads
24140         s-valrea.adb s-valrea.ads s-valuns.adb s-valuns.ads
24141         s-valuti.adb s-valuti.ads s-valwch.adb s-valwch.ads
24142         s-vercon.adb s-vercon.ads s-vmexta.adb s-vmexta.ads
24143         s-wchcnv.adb s-wchcnv.ads s-wchcon.ads s-wchjis.adb
24144         s-wchjis.ads s-wchstw.adb s-wchstw.ads s-wchwts.adb
24145         s-wchwts.ads s-widboo.adb s-widboo.ads s-widcha.adb
24146         s-widcha.ads s-widenu.adb s-widenu.ads s-widlli.adb
24147         s-widlli.ads s-widllu.adb s-widllu.ads s-widwch.adb
24148         s-widwch.ads s-wwdcha.adb s-wwdcha.ads s-wwdenu.adb
24149         s-wwdenu.ads s-wwdwch.adb s-wwdwch.ads scans.adb scans.ads
24150         scn-nlit.adb scn-slit.adb scn.adb scn.ads sdefault.ads sem.adb
24151         sem.ads sem_aggr.adb sem_aggr.ads sem_attr.adb sem_attr.ads
24152         sem_case.adb sem_case.ads sem_cat.adb sem_cat.ads sem_ch10.adb
24153         sem_ch10.ads sem_ch11.adb sem_ch11.ads sem_ch12.adb
24154         sem_ch12.ads sem_ch13.adb sem_ch13.ads sem_ch2.adb sem_ch2.ads
24155         sem_ch3.adb sem_ch3.ads sem_ch4.adb sem_ch4.ads sem_ch5.adb
24156         sem_ch5.ads sem_ch6.adb sem_ch6.ads sem_ch7.adb sem_ch7.ads
24157         sem_ch8.adb sem_ch8.ads sem_ch9.adb sem_ch9.ads sem_disp.adb
24158         sem_disp.ads sem_dist.adb sem_dist.ads sem_elab.adb
24159         sem_elab.ads sem_elim.adb sem_elim.ads sem_eval.adb
24160         sem_eval.ads sem_intr.adb sem_intr.ads sem_maps.adb
24161         sem_maps.ads sem_mech.adb sem_mech.ads sem_prag.adb
24162         sem_prag.ads sem_res.adb sem_res.ads sem_smem.adb sem_smem.ads
24163         sem_type.adb sem_type.ads sem_util.adb sem_util.ads
24164         sem_vfpt.adb sem_vfpt.ads sem_warn.adb sem_warn.ads
24165         sfn_scan.adb sfn_scan.ads sinfo-cn.adb sinfo-cn.ads sinfo.adb
24166         sinfo.ads sinfo.h sinput-l.adb sinput-l.ads sinput-p.adb
24167         sinput-p.ads sinput.adb sinput.ads snames.adb snames.ads
24168         snames.h sprint.adb sprint.ads stand.adb stand.ads stringt.adb
24169         stringt.ads stringt.h style.adb style.ads stylesw.adb
24170         stylesw.ads switch.adb switch.ads sysdep.c system.ads
24171         table.adb table.ads targparm.adb targparm.ads targtyps.c
24172         tbuild.adb tbuild.ads trans.c tree_gen.adb tree_gen.ads
24173         tree_in.adb tree_in.ads tree_io.adb tree_io.ads treepr.adb
24174         treepr.ads treeprs.ads treeprs.adt ttypef.ads ttypes.ads
24175         types.adb types.ads types.h uintp.adb uintp.ads uintp.h
24176         uname.adb uname.ads urealp.adb urealp.ads urealp.h usage.adb
24177         usage.ads utils.c utils2.c validsw.adb validsw.ads
24178         widechar.adb widechar.ads xeinfo.adb xnmake.adb xr_tabls.adb
24179         xr_tabls.ads xref_lib.adb xref_lib.ads xsinfo.adb xsnames.adb
24180         xtreeprs.adb: Correct statements in comments about maintainership
24181         of GNAT.
24182
24183 2002-09-23  Zack Weinberg  <zack@codesourcery.com>
24184
24185         * Make-lang.in (EXTRA_GNATBIND_OBJS): Add version.o.
24186         * Makefile.in (TOOLS_LIBS): Add ../../version.o.
24187         * gnatvsn.ads: Gnat_Version_String is now a function.
24188         * gnatvsn.adb: New file.  When asked for Gnat_Version_String,
24189         copy the C version_string into a String and return it.
24190         * gnatcmd.adb, gnatkr.adb, gnatlbr.adb, gnatlink.adb,
24191         gnatls.adb,gnatmake.adb, gnatprep.adb, gnatpsta.adb:
24192         Remove pragma Ident (Gnat_Version_String).  If this was the
24193         sole use of package Gnatvsn, remove the with statement too.
24194         * gnat1drv.adb: Tweak -gnatv output.
24195
24196 2002-09-17  Richard Henderson  <rth@redhat.com>
24197
24198         * trans.c (tree_transform): Use real_ldexp not REAL_VALUE_LDEXP.
24199         * config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2): Use real_2expN.
24200         * config/mips/mips.md (fixuns_truncdfsi2): Likewise.
24201         (fixuns_truncdfdi2, fixuns_truncsfsi2, fixuns_truncsfdi2): Likewise.
24202         * config/m68k/m68k.c (floating_exact_log2): Use real_exponent
24203         and real_2expN instead of a loop.
24204         * doc/tm.texi (REAL_VALUE_LDEXP): Remove.
24205         (REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT): Remove.
24206
24207 2002-08-25  Andre Leis <a.leis@gmx.net>
24208             David Billinghurst (David.Billinghurst@riotinto.com>
24209
24210         * sysdep.c (__gnat_ttyname): include <termios.h> on cygwin
24211
24212 2002-08-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24213
24214         * Make-lang.in (gnatbind$(exeext)): Link with $(SYSLIBS).
24215         Remove $(CONFIG_H) dependency.
24216
24217 2002-08-08  Nathan Sidwell  <nathan@codesourcery.com>
24218
24219         * ada/Make-lang.in (ada.mostlyclean): Remove coverage files.
24220
24221 2002-07-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24222
24223         * adadecode.c (ada_demangle): Use xstrdup in lieu of
24224         xmalloc/strcpy.
24225         * misc.c (gnat_decode_option): Likewise.
24226
24227 2002-07-15  Florian Weimer  <fw@deneb.enyo.de>
24228
24229         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24230         function approach did not work well because of a side effect (the
24231         function call could reallocate the table which was being indexed
24232         using its result). Fixes ada/4851. [RESURRECTED]
24233
24234 2002-07-01  Roger Sayle  <roger@eyesopen.com>
24235
24236         * ada/utils.c (builtin_function): Accept an additional parameter.
24237
24238 2002-06-28  Andreas Jaeger  <aj@suse.de>
24239
24240         PR ada/7144
24241         * Makefile.in: Fix typo in comment, patch by Adrian Knoth
24242         <adi@thur.de>.
24243
24244 2002-06-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24245
24246         * Makefile.in (SHELL): Set to @SHELL@.
24247
24248 2002-06-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24249
24250         * utils.c (init_gigi_decls): Use ARRAY_SIZE in lieu of explicit
24251         array size calculation.
24252
24253 2002-06-04  Andreas Jaeger  <aj@suse.de>
24254
24255         * Make-lang.in (gnatbind): Readd rule that has been lost in last
24256         patch.
24257
24258 2002-06-03  Geoffrey Keating  <geoffk@redhat.com>
24259
24260         Merge from pch-branch:
24261
24262         * config-lang.in (gtfiles): Add ada-tree.h.
24263         * ada-tree.h (SET_TYPE_CI_CO_LIST): New.
24264         (SET_TYPE_MODULUS): New.
24265         (SET_TYPE_INDEX): New.
24266         (SET_TYPE_DIGITS_VALUE): New.
24267         (SET_TYPE_RM_SIZE): New.
24268         (SET_TYPE_UNCONSTRAINED_ARRAY): New.
24269         (SET_TYPE_ADA_SIZE): New.
24270         (SET_TYPE_ACTUAL_BOUNDS): New.
24271         (SET_DECL_CONST_CORRESPONDING_VAR): New.
24272         (SET_DECL_ORIGINAL_FIELD): New.
24273         (TREE_LOOP_ID): Correct typo.
24274         * decl.c: Use new macros.
24275         * utils.c: Include debug.h, use new macros.
24276         * utils2.c: Use new macros.
24277
24278         * ada-tree.h: Update all macros for new tree description.
24279         (struct tree_loop_id): New.
24280         (union lang_tree_node): New.
24281         (struct lang_decl): New.
24282         (struct lang_type): New.
24283         * misc.c (gnat_mark_tree): Delete.
24284         (LANG_HOOKS_MARK_TREE): Delete.
24285         * trans.c (tree_transform): No longer any need to cast
24286         for TREE_LOOP_ID.
24287
24288         * utils.c (struct language_function): New dummy structure.
24289
24290         * Makefile.in (decl.o): gt-ada-<filename.h> is in objdir, not srcdir.
24291         (misc.o): Likewise.
24292         (utils.o): Likewise; also gtype-ada.h.
24293         * Make-lang.in (gnat1): Add dependency on s-gtype.
24294         (gnatbind): Add dependency on $(CONFIG_H).
24295         * utils.c: Correct last #include.
24296         (stuct e_stack): Remove unnecessary 'static'.
24297         (mark_e_stack): Remove unused prototype.
24298
24299         * scn-nlit.adb: Remove whitespace after version number to
24300         keep lines under 80 chars.
24301         * snames.adb: Likewise.
24302         * treepr.ads: Likewise.
24303
24304         * Makefile.in (decl.o): Include gt-ada-<filename>.h.
24305         (misc.o): Likewise.
24306         (utils.o): Include gt-ada-<filename>.h and gtype-ada.h.
24307         * config-lang.in (gtfiles): New.
24308         * decl.c: Use gengtype for roots.
24309         * gigi.h: Use gengtype for roots.
24310         * trans.c: Use gengtype for roots.
24311         * utils.c: Use gengtype for roots, marking.  Include gtype-ada.h.
24312
24313 2002-06-02  Gabriel Dos Reis  <gdr@codesourcery.com>
24314
24315         * misc.c (gnat_init): Adjust setting of internal_error_function.
24316
24317 2002-06-01  Joseph S. Myers  <jsm28@cam.ac.uk>
24318
24319         * gnat_ug.texi: Use @ifnottex instead of @ifinfo.
24320         * gnat_ug_unx.texi, gnat_ug_vms.texi, gnat_ug_vxw.texi,
24321         gnat_ug_wnt.texi: Regenerate.
24322
24323 2002-05-31  Florian Weimer  <fw@deneb.enyo.de>
24324
24325         * 5ntaprop.adb (with System.OS_Primitives): Remove.
24326
24327         * cstreams.c (max_path_len): Move from here ...
24328         * adaint.c (__gnat_max_path_len): ... to here.
24329         * adaint.c (__gnat_max_path_len): Declare.
24330         * g-dirope.adb (Max_Path): Adjust.
24331         * g-os_lib.adb (Normalize_Pathname.Max_Path): Adjust.
24332         * i-cstrea.ads (max_path_len): Adjust.
24333         * osint.adb (Get_RTS_Search_Dir.Max_Path): Adjust.
24334         * xr_tabls.adb (Dir_Name.Max_Path: Adjust.
24335
24336         * Makefile.in, Make-lang.in: Documentation is now built in
24337         Make-lang.in.  Store Info and generated Texinfo files in the
24338         source directory.
24339         * gnat_ug.texi: Remove CVS keywords, correct version number.
24340         Set file name correctly.
24341
24342         * gnat_ug_*.texi: Add.
24343         * .cvsignore: Ignore generated Texinfo files.
24344
24345 2002-05-30  Zack Weinberg  <zack@codesourcery.com>
24346
24347         * ada.h: Add MI guard macro.
24348         (SUBTYPE): Define constants with an anonymous enum, not static
24349         const variables.
24350         (IN): Cast constants to appropriate type before use.
24351
24352 2002-05-26  Joseph S. Myers  <jsm28@cam.ac.uk>
24353
24354         * gnatvsn.ads (Gnat_Version_String): Change to "3.2 20020526
24355         (experimental)".
24356
24357 2002-05-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24358
24359         * Make-lang.in (CP, ECHO): Copy from Makefile.in.
24360         (X_ADA_CFLAGS, T_ADA_CFLAGS, X_ADAFLAGS, T_ADAFLAGS): Likewise.
24361         (ALL_ADAFLAGS, FORCE_DEBUG_ADAFLAGS, ADA_CFLAGS): Likewise.
24362         (ALL_ADA_CFLAGS): Likewise.
24363         (ADA_INCLUDES): Likewise.
24364         Adapt for new working dir.
24365         (GNATBIND): Use Makefile.in version.
24366         (.SUFFIXES): Copy from Makefile.in.
24367         (ada-warn): Define.
24368         (.adb.o, .ads.o): Copy from Makefile.in.
24369         Added $(OUTPUT_OPTION).
24370         (GNAT1_C_OBJS): Moved from Makefile.in.
24371         Prefix with ada subdir.
24372         (GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS, GNATBIND_OBJS): Likewise.
24373         (EXTRA_GNAT1_OBJS): Moved from Makefile.in.
24374         Adapt for new working dir.
24375         (EXTRA_GNATBIND_OBJS): Likewise.
24376         (ADA_BACKEND): Moved from Makefile.in.
24377         Renamed to avoid conflict with global BACKEND.
24378         Use that one.
24379         (TARGET_ADA_SRCS): Moved from Makefile.in.
24380         (gnat1$(exeext)): Replaced recursive rule with Makefile.in version.
24381         Use ADA_BACKEND.
24382         (gnatbind$(exeext)): Replaced recursive rule with Makefile.in version.
24383         (ada_extra_files): Moved from Makefile.in.
24384         Prefix with ada subdir.
24385         (ada/b_gnat1.c, ada/b_gnat1.o, ada/b_gnatb.c, ada/b_gnatb.o): Likewise.
24386         (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, ada/nmake.adb): Likewise.
24387         (ada/nmake.ads): Likewise.
24388         (update-sources): Moved from Makefile.in.
24389         Prefix with ada subdir.
24390         (ada/sdefault.adb, ada/stamp-sdefault, ada/sdefault.o): Likewise.
24391         (ADA_TREE_H): Likewise.
24392         (ada/a-except.o, ada/s-assert.o, ada/s-memory.o): Likewise.
24393         (ada/memtrack.o): Likewise.
24394         (ada/adadecode.o): Likewise.
24395         Update dependencies.
24396         (ada/adaint.o): New.
24397         (ada/argv.o): Moved from Makefile.in.
24398         Prefix with ada subdir.
24399         Update dependencies.
24400         (ada/cstreams.o, ada/exit.o, ada/final.o, ada/link.o): Likewise.
24401         (ada/cio.o, ada/init.o, ada/raise.o, ada/tracebak.o): Likewise.
24402         (ada/cuintp.o, ada/decl.o, ada/misc.o): Moved from Makefile.in.
24403         Prefix with ada subdir.
24404         (ada/targtyps.o, ada/trans.o, ada/utils.o, ada/utils2.o): Likewise.
24405         (GNAT DEPENDENCIES): Regenerate.
24406         * Makefile.in (MACHMODE_H, RTL_H, TREE_H): Removed, provided by
24407         toplevel Makefile.in.
24408         (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Removed.
24409         (TARGET_ADA_SRCS): Removed.
24410         (GNAT1_C_OBJS, GNAT_ADA_OBJS, GNAT1_ADA_OBJS, GNAT1_OBJS): Likewise.
24411         (GNATBIND_OBJS): Likewise.
24412         (ADA_INCLUDE_DIR, ADA_RTL_OBJ_DIR): Moved here.
24413         (BACKEND): Removed.
24414         (../gnat1$(exeext), ../gnatbind$(exeext)): Likewise.
24415         (TREE_H): Likewise.
24416         (ada_extra_files): Likewise.
24417         (b_gnat1.c, b_gnat1.o, b_gnatb.c, b_gnatb.o): Likewise.
24418         (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads): Likewise.
24419         (update-sources): Likewise.
24420         (sdefault.adb, stamp-sdefault, sdefault.o): Likewise
24421         (ADA_TREE_H): Likewise.
24422         (adadecoce.o): Likewise.
24423         (cuintp.o, decl.o, misc.o, trans.o, utils.o, utils2.o): Likewise.
24424         (GNAT DEPENDENCIES): Likewise.
24425
24426 2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24427
24428         * Makefile.adalib: Allow for PWDCMD to override hardcoded pwd.
24429         * Makefile.in: Likewise.
24430
24431 2002-05-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
24432
24433         * Make-lang.in (gnat1$(exeext), gnatbind$(exeext), gnattools):
24434         Restore $(CONFIG_H) and prefix.o dependencies.
24435         (ada.stage[1-4]): Depend on stage?-start.
24436
24437         * Makefile.in (b_gnatb.c): Depend on interfac.o.
24438
24439 2002-05-02  Jim Wilson  <wilson@redhat.com>
24440
24441         * utils.c (finish_record_type): Change record_size to record_type.
24442
24443 2001-05-02  John David Anglin  <dave@hiauly1.hia.nrc.ca>
24444
24445         * ada/Makefile.in (X_ADA_CFLAGS, T_ADA_CFLAGS): New fragment overrides.
24446         (ALL_ADA_CFLAGS): Define.  Replace ADA_CFLAGS with ALL_ADA_CFLAGS in
24447         ALL_ADAFLAGS, MOST_ADAFLAGS, and all compilations using CC.
24448
24449 2002-04-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24450
24451         * misc.c (gnat_parse_file): Update.
24452
24453 2002-04-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24454
24455         * misc.c (gnat_init): Don't set lang_attribute_common.
24456
24457 2002-04-21  Joseph S. Myers  <jsm28@cam.ac.uk>
24458
24459         * gnat_rm.texi: Use @ifnottex instead of @ifinfo.
24460
24461 2002-04-21  Florian Weimer  <fw@deneb.enyo.de>
24462
24463         * gnat_ug.texi: New file.
24464
24465         * gnat_rm.texi: Do not include texiplus.texi.  Include fdl.texi
24466         instead of gfdl.texi
24467
24468         * xgnatug.adb, ug_words: New files.
24469
24470         * Makefile.in (doc, dvi): New targets.  Build gnat_ug_*,
24471         gnat_rm and gnat-style manuals.
24472
24473 2002-04-18  Neil Booth  <neil@daikokuya.demon.co.uk>
24474
24475         * gigi.h (incomplete_type_error): Remove.
24476         * utils.c (incomplete_type_error): Remove.
24477
24478 2002-04-16  Mark Mitchell  <mark@codesourcery.com>
24479
24480         * trans.c (tree_transform): Add has_scope argument to
24481         expand_start_stmt_expr.
24482
24483 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24484
24485         * gigi.h (truthvalue_conversion): Rename.
24486         * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
24487         * trans.c (tree_transform): Update.
24488         * utils2.c (truthvalue_conversion): Rename, update.
24489         (build_binary_op, build_unary_op): Update.
24490
24491 2002-04-04  Laurent Guerby  <guerby@acm.org>
24492
24493         * make.adb: Implement -margs, remove restriction about file name placement.
24494         * makeusg.adb: Documentation update.
24495         * Makefile.in (TOOLS_FLAGS_TO_PASS): Add VPATH=$(fsrcdir).
24496         * Makefile.in (gnattools3): Comment out, gnatmem does not build without libaddr2line.
24497
24498 2002-04-04  Neil Booth  <neil@daikokuya.demon.co.uk>
24499
24500         * utils.c (create_subprog_decl): Use SET_DECL_ASSEMBLER_NAME.
24501         (builtin_function): Similarly.
24502
24503 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24504
24505         * decl.c (gnat_to_gnu_entity): Update.
24506         * gigi.h (mark_addressable): Rename.
24507         * misc.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
24508         * trans.c (tree_transform): Update.
24509         * utils.c (create_var_decl): Update.
24510         * util2.c (build_binary_op, build_unary_op,
24511         fill_vms_descriptor): Update.
24512         (mark_addressable): Rename, update.
24513
24514 2002-04-01  Neil Booth  <neil@daikokuya.demon.co.uk>
24515
24516         * gigi.h (unsigned_type, signed_type, signed_or_unsigned_type):
24517         Rename.
24518         * misc.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
24519         LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
24520         * trans.c (tree_transform, convert_with_check): Update.
24521         * utils.c (unsigned_type, signed_type, signed_or_unsigned_type):
24522         Rename.
24523
24524 2002-03-31  Neil Booth  <neil@daikokuya.demon.co.uk>
24525
24526         * gigi.h (finish_incomplete_decl): Rename.
24527         * misc.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL): Redefine.
24528         * utils.c (gnat_init_decl_processing): Don't set hook.
24529         (finish_incomplete_decl): Rename.
24530
24531 2002-03-29  Andreas Schwab  <schwab@suse.de>
24532
24533         * Makefile.in: Pass VPATH=$(fsrcdir) when calling make in rts
24534         directory.
24535
24536 2001-03-28  Robert Dewar <dewar@gnat.com>
24537
24538         * checks.ads:
24539         (Remove_Checks): New procedure
24540
24541         * checks.adb:
24542         (Remove_Checks): New procedure
24543
24544         * exp_util.adb:
24545         Use new Duplicate_Subexpr functions
24546         (Duplicate_Subexpr_No_Checks): New procedure
24547         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24548         (Duplicate_Subexpr): Restore original form (checks duplicated)
24549         (Duplicate_Subexpr): Call Remove_Checks
24550
24551         * exp_util.ads:
24552         (Duplicate_Subexpr_No_Checks): New procedure
24553         (Duplicate_Subexpr_No_Checks_Orig): New procedure
24554         Add 2002 to copyright notice
24555
24556         * sem_util.adb: Use new Duplicate_Subexpr functions
24557
24558         * sem_eval.adb:
24559         (Eval_Indexed_Component): This is the place to call
24560         Constant_Array_Ref and to replace the value. We simply merge
24561         the code of this function in here, since it is now no longer
24562         used elsewhere. This fixes the problem of the back end not
24563         realizing we were clever enough to see that this was
24564         constant.
24565         (Expr_Val): Remove call to Constant_Array_Ref
24566         (Expr_Rep_Val): Remove call to Constant_Array_Ref
24567         Minor reformatting
24568         (Constant_Array_Ref): Deal with string literals (patch
24569         suggested by Zack Weinberg on the gcc list)
24570
24571 2001-03-28  Ed Schonberg <schonber@gnat.com>
24572
24573         * exp_util.adb: Duplicate_Subexpr_No_Checks_Orig =>
24574         Duplicate_Subexpr_Move_Checks.
24575
24576         * exp_util.ads: Duplicate_Subexpr_No_Checks_Orig =>
24577         Duplicate_Subexpr_Move_Checks.
24578
24579         * sem_eval.adb: (Constant_Array_Ref): Verify that constant
24580         value of array exists before retrieving it (it may a private
24581         protected component in a function).
24582
24583 2002-03-28   Geert Bosch <bosch@gnat.com>
24584
24585         * prj-pp.adb : New file.
24586
24587         * prj-pp.ads : New file.
24588
24589 2002-03-28  Andreas Jaeger  <aj@suse.de>
24590
24591         * Makefile.in (stamp-sdefault): Fix path for Makefile.
24592
24593 2002-03-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24594
24595         * misc.c (gnat_expand_expr): Move prototype.
24596
24597 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24598
24599         * misc.c (insert_default_attributes): Remove.
24600
24601 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24602
24603         * misc.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
24604         (gnat_init): Don't set hook.
24605         (gnat_expand_expr): Fix prototype.
24606
24607 2002-03-27  Neil Booth  <neil@daikokuya.demon.co.uk>
24608
24609         * misc.c (ggc_p): Remove.
24610
24611 2002-03-27  Geert Bosch  <bosch@gnat.com>
24612
24613         * prj-makr.ads, prj-makr.adb : New files.
24614
24615 2002-03-26  Neil Booth  <neil@daikokuya.demon.co.uk>
24616
24617         * misc.c (LANG_HOOKS_MARK_TREE): Redefine.
24618         (lang_mark_tree): Make static, rename.
24619
24620 2002-03-25  Neil Booth  <neil@daikokuya.demon.co.uk>
24621
24622         * misc.c (maybe_build_cleanup): Remove.
24623
24624 2002-03-24  Neil Booth  <neil@daikokuya.demon.co.uk>
24625
24626         * gigi.h (yyparse): Remove.
24627
24628 2002-03-23  Florian Weimer  <fw@deneb.enyo.de>
24629
24630         * gnat_rm.texi: Sync with ACT version.
24631           (From Ben Brosgol <brosgol@gnat.com>)
24632
24633 2002-03-20  Neil Booth  <neil@daikokuya.demon.co.uk>
24634
24635         * misc.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
24636         (gnat_init): Remove old hook.
24637
24638 2002-03-17  Neil Booth  <neil@daikokuya.demon.co.uk>
24639
24640         * misc.c (LANG_HOOKS_PARSE_FILE): Redefine.
24641         (yyparse): Rename gnat_parse_file.
24642
24643 2002-03-14  Geoffrey Keating  <geoffk@redhat.com>
24644
24645         Delete all lines containing "$Revision:".
24646         * xeinfo.adb: Don't look for revision numbers.
24647         * xnmake.adb: Likewise.
24648         * xsinfo.adb: Likewise.
24649         * xsnames.adb: Likewise.
24650         * xtreeprs.adb: Likewise.
24651
24652 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24653
24654         * misc.c (gnat_tree_code_type, gnat_tree_code_length,
24655         gnat_tree_code_name): Delete.
24656         (tree_code_type, tree_code_length, tree_code_name): Define.
24657         (gnat_init): Don't try to copy into the various tree_code
24658         arrays.
24659
24660 2002-03-11  Richard Henderson  <rth@redhat.com>
24661
24662         * Makefile.in (.NOTPARALLEL): Add fake tag.
24663
24664 2002-03-07  Geert Bosch  <bosch@gnat.com>
24665
24666         * adadecode.c, adadecode.h, aux-io.c, s-traces.adb, s-traces.ads,
24667         s-tratas.adb, s-tratas.ads, sinput-d.adb, sinput-d.ads,
24668         switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads,
24669         switch-m.adb, switch-m.ads : New files.
24670
24671 2002-03-07  Geert Bosch  <bosch@gnat.com>
24672
24673         * 41intnam.ads, 42intnam.ads, 4aintnam.ads, 4cintnam.ads,
24674         4dintnam.ads, 4gintnam.ads, 4hintnam.ads, 4lintnam.ads,
24675         4mintnam.ads, 4pintnam.ads, 4rintnam.ads, 4sintnam.ads,
24676         4uintnam.ads, 4vcalend.adb, 4zintnam.ads, 52system.ads,
24677         5amastop.adb, 5asystem.ads, 5ataprop.adb, 5atpopsp.adb,
24678         5avxwork.ads, 5bosinte.adb, 5bsystem.ads, 5esystem.ads,
24679         5fsystem.ads, 5ftaprop.adb, 5ginterr.adb, 5gmastop.adb,
24680         5gsystem.ads, 5gtaprop.adb, 5gtasinf.adb, 5gtasinf.ads,
24681         5hparame.ads, 5hsystem.ads, 5htaprop.adb, 5htraceb.adb,
24682         5itaprop.adb, 5ksystem.ads, 5kvxwork.ads, 5lintman.adb,
24683         5lsystem.ads, 5mvxwork.ads, 5ninmaop.adb, 5nosinte.ads,
24684         5ntaprop.adb, 5ointerr.adb, 5omastop.adb, 5oosinte.adb,
24685         5osystem.ads, 5otaprop.adb, 5otaspri.ads, 5pvxwork.ads,
24686         5qtaprop.adb, 5sintman.adb, 5ssystem.ads, 5staprop.adb,
24687         5stpopse.adb, 5svxwork.ads, 5tosinte.ads, 5uintman.adb,
24688         5vasthan.adb, 5vinmaop.adb, 5vinterr.adb, 5vintman.adb,
24689         5vmastop.adb, 5vparame.ads, 5vsystem.ads, 5vtaprop.adb,
24690         5vtpopde.adb, 5wmemory.adb, 5wsystem.ads, 5wtaprop.adb,
24691         5ysystem.ads, 5zinterr.adb, 5zintman.adb, 5zosinte.adb,
24692         5zosinte.ads, 5zsystem.ads, 5ztaprop.adb, 6vcpp.adb, 6vcstrea.adb,
24693         7sintman.adb, 7staprop.adb, 7stpopsp.adb, 9drpc.adb,
24694         Make-lang.in, Makefile.in, a-caldel.adb, a-comlin.ads,
24695         a-dynpri.adb, a-except.adb, a-except.ads, a-finali.adb,
24696         a-ncelfu.ads, a-reatim.adb, a-retide.adb, a-stream.ads,
24697         a-ststio.adb, a-ststio.ads, a-stwifi.adb, a-tags.adb, a-tasatt.adb,
24698         a-textio.adb, a-tideau.adb, a-tiflau.adb, a-tigeau.adb,
24699         a-tigeau.ads, a-tiinau.adb, a-timoau.adb, a-witeio.adb,
24700         a-wtdeau.adb, a-wtenau.adb, a-wtflau.adb, a-wtgeau.adb,
24701         a-wtgeau.ads, a-wtinau.adb, a-wtmoau.adb, ada-tree.def, ada-tree.h,
24702         adaint.c, adaint.h, ali-util.adb, ali.adb, ali.ads, atree.adb,
24703         atree.ads, atree.h, back_end.adb, bcheck.adb, bindgen.adb,
24704         bindusg.adb, checks.adb, comperr.adb, config-lang.in, csets.adb,
24705         csets.ads, cstand.adb, cstreams.c, debug.adb, debug.ads, decl.c,
24706         einfo.adb, einfo.ads, einfo.h, elists.h, errout.adb, errout.ads,
24707         eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb,
24708         exp_ch12.adb, exp_ch13.adb, exp_ch2.adb, exp_ch3.adb, exp_ch3.ads,
24709         exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch7.adb, exp_ch7.ads,
24710         exp_ch9.adb, exp_ch9.ads, exp_dbug.adb, exp_dbug.ads, exp_disp.ads,
24711         exp_dist.adb, exp_fixd.adb, exp_intr.adb, exp_pakd.adb,
24712         exp_prag.adb, exp_strm.adb, exp_util.adb, exp_util.ads,
24713         expander.adb, expect.c, fe.h, fmap.adb, fmap.ads, fname-uf.adb,
24714         freeze.adb, frontend.adb, g-awk.adb, g-cgideb.adb, g-comlin.adb,
24715         g-comlin.ads, g-debpoo.adb, g-dirope.adb, g-dirope.ads,
24716         g-dyntab.adb, g-expect.adb, g-expect.ads, g-io.ads, g-io_aux.adb,
24717         g-io_aux.ads, g-locfil.adb, g-locfil.ads, g-os_lib.adb,
24718         g-os_lib.ads, g-regexp.adb, g-regpat.adb, g-socket.adb,
24719         g-socket.ads, g-spipat.adb, g-table.adb, g-trasym.adb,
24720         g-trasym.ads, gigi.h, gmem.c, gnat1drv.adb, gnatbind.adb, gnatbl.c,
24721         gnatchop.adb, gnatcmd.adb, gnatdll.adb, gnatfind.adb, gnatlbr.adb,
24722         gnatlink.adb, gnatls.adb, gnatmem.adb, gnatprep.adb, gnatvsn.ads,
24723         gnatxref.adb, hlo.adb, hostparm.ads, i-cobol.adb, i-cpp.adb,
24724         i-cstrea.ads, i-cstrin.adb, i-pacdec.adb, i-vxwork.ads,
24725         impunit.adb, init.c, inline.adb, io-aux.c, layout.adb, lib-load.adb,
24726         lib-util.adb, lib-writ.adb, lib-writ.ads, lib-xref.adb,
24727         lib-xref.ads, lib.adb, lib.ads, make.adb, makeusg.adb, mdll.adb,
24728         memroot.adb, misc.c, mlib-tgt.adb, mlib-utl.adb, mlib-utl.ads,
24729         mlib.adb, namet.adb, namet.ads, namet.h, nlists.h, nmake.adb,
24730         nmake.ads, nmake.adt, opt.adb, opt.ads, osint.adb, osint.ads,
24731         output.adb, output.ads, par-ch2.adb, par-ch3.adb, par-ch5.adb,
24732         par-prag.adb, par-tchk.adb, par-util.adb, par.adb, prj-attr.adb,
24733         prj-dect.adb, prj-env.adb, prj-env.ads, prj-nmsc.adb, prj-part.adb,
24734         prj-proc.adb, prj-strt.adb, prj-tree.adb, prj-tree.ads, prj.adb,
24735         prj.ads, raise.c, raise.h, repinfo.adb, restrict.adb, restrict.ads,
24736         rident.ads, rtsfind.adb, rtsfind.ads, s-arit64.adb, s-asthan.adb,
24737         s-atacco.adb, s-atacco.ads, s-auxdec.adb, s-crc32.adb, s-crc32.ads,
24738         s-direio.adb, s-fatgen.adb, s-fileio.adb, s-finimp.adb,
24739         s-gloloc.adb, s-gloloc.ads, s-interr.adb, s-mastop.adb,
24740         s-mastop.ads, s-memory.adb, s-parame.ads, s-parint.adb,
24741         s-pooglo.adb, s-pooloc.adb, s-rpc.adb, s-secsta.adb, s-sequio.adb,
24742         s-shasto.adb, s-soflin.adb, s-soflin.ads, s-stache.adb,
24743         s-taasde.adb, s-taasde.ads, s-tadeca.adb, s-tadeca.ads,
24744         s-tadert.adb, s-tadert.ads, s-taenca.adb, s-taenca.ads,
24745         s-taprob.adb, s-taprop.ads, s-tarest.adb, s-tasdeb.adb,
24746         s-tasini.adb, s-tasini.ads, s-taskin.adb, s-taskin.ads,
24747         s-tasque.adb, s-tasque.ads, s-tasren.adb, s-tasren.ads,
24748         s-tassta.adb, s-tasuti.adb, s-tasuti.ads, s-tataat.adb,
24749         s-tataat.ads, s-tpoben.adb, s-tpoben.ads, s-tpobop.adb,
24750         s-tposen.adb, s-tposen.ads, s-traceb.adb, s-traceb.ads,
24751         s-unstyp.ads, s-widenu.adb, scn-nlit.adb, scn.adb, sem.adb,
24752         sem_aggr.adb, sem_attr.adb, sem_attr.ads, sem_case.adb,
24753         sem_ch10.adb, sem_ch11.adb, sem_ch11.ads, sem_ch12.adb,
24754         sem_ch13.adb, sem_ch13.ads, sem_ch2.adb, sem_ch3.adb, sem_ch3.ads,
24755         sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch6.ads, sem_ch7.adb,
24756         sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, sem_disp.adb, sem_dist.adb,
24757         sem_elab.adb, sem_elim.adb, sem_elim.ads, sem_eval.adb,
24758         sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb,
24759         sem_type.adb, sem_util.adb, sem_util.ads, sem_vfpt.adb,
24760         sem_warn.adb, sinfo.adb, sinfo.ads, sinfo.h, sinput-l.adb,
24761         sinput-l.ads, sinput.adb, sinput.ads, snames.adb, snames.ads,
24762         snames.h, sprint.adb, sprint.ads, stringt.adb, stringt.ads,
24763         stringt.h, style.adb, switch.adb, switch.ads, sysdep.c, system.ads,
24764         table.adb, targparm.adb, targparm.ads, targtyps.c, tbuild.adb,
24765         tbuild.ads, tracebak.c, trans.c, tree_gen.adb, tree_io.adb,
24766         treepr.adb, treepr.ads, treeprs.ads, treeprs.adt, ttypes.ads,
24767         types.adb, types.ads, types.h, uintp.ads, urealp.ads, usage.adb,
24768         utils.c, utils2.c, validsw.adb, xnmake.adb, xr_tabls.adb,
24769         xr_tabls.ads, xref_lib.adb, xref_lib.ads : Merge in ACT changes.
24770
24771         * 1ssecsta.adb, 1ssecsta.ads, a-chlat9.ads, a-cwila9.ads,
24772         g-enblsp.adb, g-md5.adb, g-md5.ads, gnatname.adb, gnatname.ads,
24773         mkdir.c, osint-b.adb, osint-b.ads, osint-c.adb, osint-c.ads,
24774         osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads : New files
24775
24776         * 3lsoccon.ads, 5qparame.ads, 5qvxwork.ads, 5smastop.adb,
24777         5zparame.ads, gnatmain.adb, gnatmain.ads, gnatpsys.adb : Removed
24778
24779         * mdllfile.adb, mdllfile.ads, mdlltool.adb, mdlltool.ads : Renamed
24780         to mdll-fil.ad[bs] and mdll-util.ad[bs]
24781
24782         * mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, mdll-utl.ads : Renamed
24783         from mdllfile.ad[bs] and mdlltool.ad[bs]
24784
24785 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
24786
24787         * utils.c (init_gnat_to_gnu, init_gigi_decls): Use ARRAY_SIZE in
24788         lieu of explicit sizeof/sizeof.
24789
24790 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
24791
24792         * misc.c (copy_lang_decl): Remove.
24793
24794 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
24795
24796         * misc.c: Delete traditional-mode-related code copied from the
24797         C front end but not used, or used only to permit the compiler
24798         to link.
24799
24800 2002-02-07  Richard Henderson  <rth@redhat.com>
24801
24802         * adaint.c (__gnat_to_gm_time): First arg is int, not time_t.
24803         * adaint.h (__gnat_to_gm_time): Update prototype.
24804
24805 2002-01-30  Richard Henderson  <rth@redhat.com>
24806
24807         * trans.c (tree_transform) [N_Loop_Statement]: Use
24808         expand_exit_loop_top_cond.
24809
24810 2001-12-23  Richard Henderson  <rth@redhat.com>
24811
24812         * utils.c (end_subprog_body): Push GC context around
24813         rest_of_compilation for nested functions.
24814
24815 2001-12-23  Richard Henderson  <rth@redhat.com>
24816
24817         * 5nosinte.ads: Get definition of "int" from Interfaces.C.
24818
24819 2001-12-23  Florian Weimer  <fw@deneb.enyo.de>
24820
24821         * gnat-style.texi (Declarations and Types): Remove ancient style
24822         rule which was mandated by code generation issues.
24823
24824         * gnat-style.texi (header): Add @dircategory, @direntry.
24825         (title page): Remove date.
24826         (general) Add @./@: where approriate, and two spaces after the
24827         full stop at the end of a sentence.  Use @samp markup when
24828         referring concrete lexical entities (keywords, attribute names
24829         etc.), and @syntax for ARM grammar elements. Use @r for English
24830         text in comments.  Use @emph for emphasis.  Change "if-statements"
24831         etc. to "if statements" (without @samp). Break long lines.  Make
24832         casing of section names consistent.
24833         (Identifiers): Use @samp markup for variable names.
24834         (Comments): Use @samp markup for comment characters. Line-end
24835         comments may follow any Ada code, not just statements.  Fix
24836         misspelling of "Integer" as "integer".
24837         (Loop statements): Do not use variable name "I", use "J".
24838         (Subprogram Declarations): Document alignment.
24839         (Subprogram Bodies, Block statements): Document empty line before
24840         "begin".
24841
24842 2001-12-22  Florian Weimer  <fw@deneb.enyo.de>
24843
24844         * make.adb (Add_Switch): Make Generic_Position a procedure.  The
24845         function approach did not work well because of a side effect (the
24846         function call could reallocate the table which was being indexed
24847         using its result). Fixes ada/4851.
24848
24849 2001-12-19  Robert Dewar <dewar@gnat.com>
24850
24851         * bindgen.adb: Minor reformatting
24852
24853         * cstand.adb: Minor reformatting
24854
24855         * fmap.adb: Minor reformatting
24856         Change name from Add for Add_To_File_Map (Add is much too generic)
24857         Change Path_Name_Of to Mapped_Path_Name
24858         Change File_Name_Of to Mapped_File_Name
24859         Fix copyright dates in header
24860
24861         * fmap.ads:
24862         Change name from Add for Add_To_File_Map (Add is much too generic)
24863         Change Path_Name_Of to Mapped_Path_Name
24864         Change File_Name_Of to Mapped_File_Name
24865         Fix copyright dates in header
24866
24867         * fname-uf.adb: Minor reformatting.  New names of stuff in Fmap.
24868         Add use clause for Fmap.
24869
24870         * make.adb: Minor reformatting
24871
24872         * osint.adb: Minor reformatting.  Change of names in Fmap.
24873         Add use clause for Fmap.
24874
24875         * prj-env.adb: Minor reformatting
24876
24877         * prj-env.ads: Minor reformatting
24878
24879         * switch.adb: Minor reformatting.  Do proper raise of Bad_Switch if
24880         error found (there were odd exceptions to this general rule in
24881         -gnatec/-gnatem processing)
24882
24883 2001-12-19  Olivier Hainque <hainque@gnat.com>
24884
24885         * raise.c (__gnat_eh_personality): Exception handling personality
24886         routine for Ada.  Still in rough state, inspired from the C++ version
24887         and still containing a bunch of debugging artifacts.
24888         (parse_lsda_header, get_ttype_entry): Local (static) helpers, also
24889         inspired from the C++ library.
24890
24891         * raise.c (eh_personality): Add comments. Part of work for the GCC 3
24892         exception handling integration.
24893
24894 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24895
24896         * Makefile.in: Remove use of 5smastop.adb which is obsolete.
24897         (HIE_SOURCES): Add s-secsta.ad{s,b}.
24898         (HIE_OBJS): Add s-fat*.o
24899         (RAVEN_SOURCES): Remove files that are no longer required. Add
24900         interrupt handling files.
24901         (RAVEN_MOD): Removed, no longer needed.
24902
24903 2001-12-19  Robert Dewar <dewar@gnat.com>
24904
24905         * a-ngelfu.adb: Remove ??? comment for inappropriate Inline_Always
24906         Add 2001 to copyright date
24907
24908         * g-regpat.adb: Change pragma Inline_Always to Inline. There is no
24909         need to force universal inlining for these cases.
24910
24911 2001-12-19  Arnaud Charlet <charlet@gnat.com>
24912
24913         * s-taprob.adb: Minor clean ups so that this unit can be used in
24914         Ravenscar HI.
24915
24916         * exp_ch7.adb: Allow use of secondary stack in HI mode.
24917         Disallow it when pragma Restrictions (No_Secondary_Stack) is specified.
24918
24919 2001-12-19  Vincent Celier <celier@gnat.com>
24920
24921         * prj-tree.ads (Project_Node_Record): Add comments for components
24922         Pkg_Id and Case_Insensitive.
24923
24924 2001-12-19  Pascal Obry <obry@gnat.com>
24925
24926         * g-socket.adb: Minor reformatting. Found while reading code.
24927
24928 2001-12-19  Robert Dewar <dewar@gnat.com>
24929
24930         * prj-tree.ads: Minor reformatting
24931
24932 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
24933
24934         * config-lang.in (diff_excludes): Remove.
24935
24936 2001-12-17  Ed Schonberg <schonber@gnat.com>
24937
24938         * sem_res.adb (Resolve_Selected_Component): do not generate a
24939         discriminant check if the selected component is a component of
24940         the argument of an initialization procedure.
24941
24942         * trans.c (tree_transform, case of arithmetic operators): If result
24943         type is private, the gnu_type is the base type of the full view,
24944         given that the full view itself may be a subtype.
24945
24946 2001-12-17  Robert Dewar <dewar@gnat.com>
24947
24948         * sem_res.adb: Minor reformatting
24949
24950         * trans.c (tree_transform, case N_Real_Literal): Add missing third
24951         parameter in call to Machine (unknown horrible effects from this
24952         omission).
24953
24954         * urealp.h: Add definition of Round_Even for call to Machine
24955         Add third parameter for Machine
24956
24957 2001-12-17  Ed Schonberg <schonber@gnat.com>
24958
24959         * sem_warn.adb (Check_One_Unit): Suppress warnings completely on
24960         predefined units in No_Run_Time mode.
24961
24962 2001-12-17  Richard Kenner <kenner@gnat.com>
24963
24964         * misc.c (insn-codes.h): Now include.
24965
24966 2001-12-17  Olivier Hainque <hainque@gnat.com>
24967
24968         * a-except.adb: Preparation work for future integration of the GCC 3
24969         exception handling mechanism
24970         (Notify_Handled_Exception, Notify_Unhandled_Exception): New routines
24971         to factorize previous code sequences and make them externally callable,
24972         e.g. for the Ada personality routine when the GCC 3 mechanism is used.
24973         (Propagate_Exception, Raise_Current_Excep, Raise_From_Signal_Handler):
24974         Use the new notification routines.
24975
24976 2001-12-17  Emmanuel Briot <briot@gnat.com>
24977
24978         * prj-tree.ads (First_Choice_Of): Document the when others case
24979
24980 2001-12-17  Arnaud Charlet <charlet@gnat.com>
24981
24982         * bindgen.adb (Gen_Ada_Init_*): Set priority of environment task in
24983         HI-E mode, in order to support Ravenscar profile properly.
24984
24985         * cstand.adb (Create_Standard): Duration is a 32 bit type in HI-E
24986         mode on 32 bits targets.
24987
24988 2001-12-17  Vincent Celier <celier@gnat.com>
24989
24990         * fmap.adb: Initial version.
24991
24992         * fmap.ads: Initial version.
24993
24994         * fname-uf.adb (Get_File_Name): Use mapping if unit name mapped.
24995         If search is successfully done, add to mapping.
24996
24997         * frontend.adb: Initialize the mapping if a -gnatem switch was used.
24998
24999         * make.adb:
25000         (Gnatmake): Add new local variable Mapping_File_Name.
25001          Create mapping file when using project file(s).
25002          Delete mapping file before exiting.
25003
25004         * opt.ads (Mapping_File_Name): New variable
25005
25006         * osint.adb (Find_File): Use path name found in mapping, if any.
25007
25008         * prj-env.adb (Create_Mapping_File): New procedure
25009
25010         * prj-env.ads (Create_Mapping_File): New procedure.
25011
25012         * switch.adb (Scan_Front_End_Switches): Add processing for -gnatem
25013         (Mapping_File)
25014
25015         * usage.adb: Add entry for new switch -gnatem.
25016
25017         * Makefile.in: Add dependencies for fmap.o.
25018
25019 2001-12-17  Ed Schonberg <schonber@gnat.com>
25020
25021         * sem_ch10.adb (Analyze_With_Clause): Retrieve proper entity when unit
25022         is a package instantiation rewritten as a package body.
25023         (Install_Withed_Unit): Undo previous change, now redundant.
25024
25025 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25026
25027         * layout.adb:
25028         (Compute_Length): Move conversion to Unsigned to callers.
25029         (Get_Max_Size): Convert Len expression to Unsigned after calls to
25030         Compute_Length and Determine_Range.
25031         (Layout_Array_Type): Convert Len expression to Unsigned after calls to
25032         Compute_Length and Determine_Range.
25033         Above changes fix problem with length computation for supernull arrays
25034         where Max (Len, 0) wasn't getting applied due to the Unsigned
25035         conversion used by Compute_Length.
25036
25037 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25038
25039         * rtsfind.ads:
25040         (OK_To_Use_In_No_Run_Time_Mode): Allow Ada.Exceptions and
25041          System.Secondary_Stack.
25042         (OK_To_Use_In_Ravenscar_Mode): New table needed to implement Ravenscar
25043          in HI-E mode.
25044         Remove unused entity RE_Exception_Data.
25045
25046         * rtsfind.adb (RTE): Allow Ravenscar Profile in HI mode.
25047
25048         * rident.ads (No_Secondary_Stack): New restriction.
25049
25050 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25051
25052         * gnat_rm.texi: Fix minor typos. Found while reading the section
25053         regarding "Bit_Order Clauses" that was sent to a customer.
25054         Very interesting documentation!
25055
25056 2001-12-17  Robert Dewar <dewar@gnat.com>
25057
25058         * sem_case.adb (Choice_Image): Avoid creating improper character
25059         literal names by using the routine Set_Character_Literal_Name. This
25060         fixes bombs in certain error message cases.
25061
25062 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25063
25064         * a-reatim.adb: Minor reformatting.
25065
25066 2001-12-17  Ed Schonberg <schonber@gnat.com>
25067
25068         * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly the
25069         case where the formal is an extension of another formal in the current
25070         unit or in a parent generic unit.
25071
25072 2001-12-17  Arnaud Charlet <charlet@gnat.com>
25073
25074         * s-tposen.adb: Update comments.  Minor reformatting.
25075         Minor code clean up.
25076
25077         * s-tarest.adb: Update comments.  Minor code reorganization.
25078
25079 2001-12-17  Gary Dismukes <dismukes@gnat.com>
25080
25081         * exp_attr.adb (Attribute_Tag): Suppress expansion of <type_name>'Tag
25082         when Java_VM.
25083
25084 2001-12-17  Robert Dewar <dewar@gnat.com>
25085
25086         * exp_attr.adb: Minor reformatting
25087
25088 2001-12-17  Ed Schonberg <schonber@gnat.com>
25089
25090         * sem_ch3.adb (Build_Derived_Private_Type): Refine check to handle
25091         derivations nested within a child unit: verify that the parent
25092         type is declared in an outer scope.
25093
25094 2001-12-17  Robert Dewar <dewar@gnat.com>
25095
25096         * sem_ch12.adb: Minor reformatting
25097
25098 2001-12-17  Ed Schonberg <schonber@gnat.com>
25099
25100         * sem_warn.adb (Check_One_Unit): In No_Run_Time mode, do not post
25101         warning if current unit is a predefined one, from which bodies may
25102         have been deleted.
25103
25104 2001-12-17  Robert Dewar <dewar@gnat.com>
25105
25106         * eval_fat.ads: Add comment that Round_Even is referenced in Ada code
25107         Fix header format. Add 2001 to copyright date.
25108
25109         * exp_dbug.adb (Get_Encoded_Name): Fix out of bounds reference,
25110         which caused CE during compilation if checks were enabled.
25111
25112 2001-12-17  Vincent Celier <celier@gnat.com>
25113
25114         * make.adb:
25115         (Switches_Of): New function
25116         (Test_If_Relative_Path): New procedure
25117         (Add_Switches): Use new function Switches_Of
25118         (Collect_Arguments_And_Compile): Use new function Switches_Of.
25119         When using a project file, test if there are any relative
25120         search path. Fail if there are any.
25121         (Gnatmake): Only add switches for the primary directory when not using
25122         a project file. When using a project file, change directory to the
25123         object directory of the main project file. When using a project file,
25124         test if there are any relative search path. Fail if there are any.
25125         When using a project file, fail if specified executable is relative
25126         path with directory information, and prepend executable, if not
25127         specified as an absolute path, with the exec directory.  Make sure
25128         that only one -o switch is transmitted to the linker.
25129
25130         * prj-attr.adb (Initialization_Data): Add project attribute Exec_Dir
25131
25132         * prj-nmsc.adb:
25133         (Ada_Check): Get Spec_Suffix_Loc and Impl_Suffix_Loc,
25134         when using a non standard naming scheme.
25135         (Check_Ada_Naming_Scheme): Make sure that error messages
25136         do not raise exceptions.
25137         (Is_Illegal_Append): Return True if there is no dot in the suffix.
25138         (Language_Independent_Check): Check the exec directory.
25139
25140         * prj.adb (Project_Empty): Add new component Exec_Directory
25141
25142         * prj.ads:
25143         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Add defaults.
25144         (Project_Data): Add component Exec_Directory
25145
25146         * snames.adb: Updated to match snames.ads revision 1.215
25147
25148         * snames.ads: Added Exec_Dir
25149
25150 2001-12-17  Robert Dewar <dewar@gnat.com>
25151
25152         * make.adb: Minor reformatting
25153
25154         * prj-nmsc.adb: Minor reformatting
25155
25156         * snames.adb: Updated to match snames.ads
25157
25158         * snames.ads: Alphebetize entries for project file
25159
25160 2001-12-17  Ed Schonberg <schonber@gnat.com>
25161
25162         * trans.c (process_freeze_entity): Do nothing if the entity is a
25163         subprogram that was already elaborated.
25164
25165 2001-12-17  Richard Kenner <kenner@gnat.com>
25166
25167         * decl.c (gnat_to_gnu_entity, object): Do not back-annotate Alignment
25168         and Esize if object is referenced via pointer.
25169
25170 2001-12-17  Ed Schonberg <schonber@gnat.com>
25171
25172         * sem_ch3.adb (Analyze_Variant_Part): check that type of discriminant
25173         is discrete before analyzing choices.
25174
25175 2001-12-17  Joel Brobecker <brobecke@gnat.com>
25176
25177         * bindgen.adb (Gen_Output_File_Ada): Generate a new C-like string
25178         containing the name of the Ada Main Program. This string is mainly
25179         intended for the debugger.
25180         (Gen_Output_File_C): Do the equivalent change when generating a C file.
25181
25182 2001-12-17  Robert Dewar <dewar@gnat.com>
25183
25184         * ali.adb: Set new Dummy_Entry field in dependency entry
25185
25186         * ali.ads: Add Dummy_Entry field to source dependency table
25187
25188         * bcheck.adb (Check_Consistency): Ignore dummy D lines
25189
25190         * lib-writ.adb (Writ_ALI): Write dummy D lines for missing source files
25191
25192         * lib-writ.ads: Document dummy D lines for missing files.
25193
25194         * types.ads: (Dummy_Time_Stamp): New value for non-existant files
25195
25196 2001-12-17  Robert Dewar <dewar@gnat.com>
25197
25198         * ali.adb: Type reference does not reset current file.
25199
25200         * ali.adb: Recognize and scan renaming reference
25201
25202         * ali.ads: Add spec for storing renaming references.
25203
25204         * lib-xref.ads: Add documentation for handling of renaming references
25205
25206         * lib-xref.adb: Implement output of renaming reference.
25207
25208         * checks.adb:
25209         (Determine_Range): Document local variables
25210         (Determine_Range): Make sure Hbound is initialized. It looks as though
25211          there could be a real problem here with an uninitialized reference
25212          to Hbound, but no actual example of failure has been found.
25213
25214 2001-12-17  Laurent Pautet <pautet@gnat.com>
25215
25216         * g-socket.ads:
25217         Fix comment of Shutdown_Socket and Close_Socket. These functions
25218         should not fail silently because if they are called twice, this
25219         probably means that there is a race condition in the user program.
25220         Anyway, this behaviour is consistent with the rest of this unit.
25221         When an error occurs, an exception is raised with the error message
25222         as exception message.
25223
25224 2001-12-17  Robert Dewar <dewar@gnat.com>
25225
25226         * frontend.adb: Move call to Check_Unused_Withs from Frontend, so
25227         that it happens before modification of Sloc values for -gnatD.
25228
25229         * gnat1drv.adb: Move call to Check_Unused_Withs to Frontend,
25230         so that it happens before modification of Sloc values for -gnatD.
25231
25232         * switch.adb: Minor reformatting
25233
25234 2001-12-15  Richard Henderson  <rth@redhat.com>
25235
25236         * sem_ch7.adb: Wrap comment.
25237
25238 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25239
25240         * 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
25241         5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
25242         5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
25243         5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
25244         5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
25245         7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
25246         a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
25247         a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
25248         cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
25249         exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
25250         exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
25251         g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
25252         gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
25253         make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
25254         par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
25255         repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
25256         s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
25257         s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
25258         s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
25259         s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
25260         sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
25261         sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
25262         sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
25263         sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
25264         spelling errors.
25265
25266 2001-12-14  Vincent Celier <celier@gnat.com>
25267
25268         * osint.adb(Create_Debug_File): When an object file is specified,
25269         put the .dg file in the same directory as the object file.
25270
25271 2001-12-14  Robert Dewar <dewar@gnat.com>
25272
25273         * osint.adb: Minor reformatting
25274
25275         * lib-xref.adb (Output_Instantiation): New procedure to generate
25276         instantiation references.
25277
25278         * lib-xref.ads: Add documentation of handling of generic references.
25279
25280         * ali.adb (Read_Instantiation_Ref): New procedure to read
25281         instantiation references
25282
25283         * ali.ads: Add spec for storing instantiation references
25284
25285         * bindusg.adb: Minor reformatting
25286
25287         * switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25288
25289         * usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25290
25291         * gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25292
25293         * csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
25294
25295         * csets.ads:
25296         Fix header format
25297         Add 2001 to copyright date
25298         Add entry for Latin-5 (Cyrillic ISO-8859-5)
25299
25300 2001-12-14  Matt Gingell <gingell@gnat.com>
25301
25302         * adaint.c: mktemp is a macro on Lynx and can not be used as an
25303         expression.
25304
25305 2001-12-14  Richard Kenner <kenner@gnat.com>
25306
25307         * misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
25308         if operand is CONSTRUCTOR.
25309
25310 2001-12-14  Ed Schonberg <schonber@gnat.com>
25311
25312         * trans.c (tree_transform, case N_Assignment_Statement): Set lineno
25313         before emiting check on right-hand side, so that exception information
25314         is correct.
25315
25316 2001-12-14  Richard Kenner <kenner@gnat.com>
25317
25318         * utils.c (create_var_decl): Throw away initializing expression
25319         if just annotating types and non-constant.
25320
25321 2001-12-14  Vincent Celier <celier@gnat.com>
25322
25323         * prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
25324         Default_Ada_...
25325
25326         * prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25327         Remove functions.
25328         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
25329
25330         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
25331         Remove functions.
25332         (Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
25333
25334 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
25335
25336         * ChangeLog: Remove piece of diff output.
25337
25338 2001-12-14  Geert Bosch <bosch@gnat.com>
25339
25340         * config-lang.in: Update copyright notice
25341
25342         * layout.adb: Remove commented out code.
25343
25344         * mdllfile.ads: Update copyright notice. Fix header format.
25345
25346         * sem_case.ads: Likewise.
25347
25348         * sem_ch3.adb: Minor reformatting.
25349
25350 2001-12-12  Geert Bosch <bosch@gnat.com>
25351
25352         * freeze.ads: Update copyright date.
25353
25354         * g-comlin.ads: Minor reformatting.
25355
25356         * gnat-style.texi: Fix typo.
25357
25358 2001-12-12  Geert Bosch <bosch@gnat.com>
25359
25360         *  einfo.h: Regenerate.
25361
25362 2001-12-12  Ed Schonberg <schonber@gnat.com>
25363
25364         * sem_ch12.adb (Save_Entity_Descendant): Use syntactic field names
25365         on known node types, rather than untyped fields. Further cleanups.
25366
25367 2001-12-12  Robert Dewar <dewar@gnat.com>
25368
25369         * sem_ch12.adb:
25370         (Save_Entity_Descendant): Minor comment update.
25371         (Copy_Generic_Node): Deal with incorrect reference to Associated_Node
25372          of an N_Attribute_Reference node. As per note below, this does not
25373         eliminate need for Associated_Node in attribute ref nodes.
25374         (Associated_Node): Documentation explicitly mentions attribute
25375         reference nodes, since this field is used in such nodes.
25376
25377         * sem_ch12.adb (Associated_Node): Minor documentation cleanup.
25378
25379 2001-12-12  Robert Dewar <dewar@gnat.com>
25380
25381         * s-stalib.adb: Add more comments on with statements being needed
25382
25383         * par-ch12.adb: Minor reformatting
25384
25385         * prj-dect.ads: Fix copyright header
25386
25387         * s-arit64.adb (Multiply_With_Ovflo_Check): Fix case where both
25388         inputs fit in 32 bits, but the result still overflows.
25389
25390         * s-fatgen.ads: Minor comment improvement
25391
25392 2001-12-12  Ed Schonberg <schonber@gnat.com>
25393
25394         * sem_ch4.adb (Analyze_Selected_Component): If the prefix is of a
25395         formal derived type, look for an inherited component from the full
25396         view of the parent, if any.
25397
25398 2001-12-12  Robert Dewar <dewar@gnat.com>
25399
25400         * checks.ads (Apply_Alignment_Check): New procedure.
25401
25402         * exp_ch13.adb (Expand_N_Freeze_Entity): Generate dynamic check to
25403         ensure that the alignment of objects with address clauses is
25404         appropriate, and raise PE if not.
25405
25406         * exp_util.ads (Must_Be_Aligned): Removed, replaced by
25407         Exp_Pakd.Known_Aligned_Enough
25408
25409         * mdllfile.ads: Minor reformatting
25410
25411         * mlib-fil.ads: Minor reformatting
25412
25413 2001-12-12  Ed Schonberg <schonber@gnat.com>
25414
25415         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Extend previous
25416         fix to any component reference if enclosing record has non-standard
25417         representation.
25418
25419 2001-12-12  Vincent Celier <celier@gnat.com>
25420
25421         * g-dirope.ads (Find, Wildcard_Iterator): Moved to child package
25422         Iteration
25423
25424 2001-12-12  Ed Schonberg <schonber@gnat.com>
25425
25426         * freeze.ads: Make Freeze_Fixed_Point_Type visible, for use in
25427         sem_attr.
25428
25429 2001-12-12  Robert Dewar <dewar@gnat.com>
25430
25431         * impunit.adb: Add entry for GNAT.Directory_Operations.Iteration
25432
25433 2001-12-12  Emmanuel Briot <briot@gnat.com>
25434
25435         * g-regexp.adb: Remove all debug code, since it isn't required anymore,
25436         and it adds dependencies to system.io.
25437
25438 2001-12-12  Pascal Obry <obry@gnat.com>
25439
25440         * g-dirope.adb (Expand_Path.Var): Correctly detect end of
25441         variable name.
25442
25443 2001-12-11  Ed Schonberg <schonber@gnat.com>
25444
25445         * sem_ch10.adb (Install_Withed_Unit): If the unit is a generic instance
25446         that is the parent of other generics, the instance body replaces the
25447         instance node.  Retrieve the instance of the spec, which is the one
25448         that is visible in clients and within the body.
25449
25450 2001-12-11  Vincent Celier <celier@gnat.com>
25451
25452         * gnatmain.adb: Initial version.
25453
25454         * gnatmain.ads: Initial version.
25455
25456         * prj-attr.adb (Initialisation_Data): Add package Gnatstub.
25457
25458         * snames.adb: Updated to match snames.ads.
25459
25460         * snames.ads: Added Gnatstub.
25461
25462 2001-12-11  Vincent Celier <celier@gnat.com>
25463
25464         * prj-attr.adb (Initialization_Data): Change name from
25465         Initialisation_Data.
25466
25467 2001-12-11  Emmanuel Briot <briot@gnat.com>
25468
25469         * g-regpat.adb (Parse_Literal): Properly handle simple operators ?,
25470         + and * applied to backslashed expressions like \r.
25471
25472 2001-12-11  Vasiliy Fofanov <fofanov@gnat.com>
25473
25474         * g-os_lib.ads: String_List type added, Argument_List type is now
25475         subtype of String_List.
25476
25477 2001-12-11  Robert Dewar <dewar@gnat.com>
25478
25479         * g-os_lib.ads: Change copyright to FSF
25480         Add comments for String_List type
25481
25482 2001-12-11  Vincent Celier <celier@gnat.com>
25483
25484         * g-dirope.adb (Expand_Path): Fix bug. (wrong length when adding a
25485         string to the buffer).
25486
25487 2001-12-11  Ed Schonberg <schonber@gnat.com>
25488
25489         * freeze.adb: Make Freeze_Fixed_Point_Type visible, for use in
25490         sem_attr.
25491
25492         * sem_attr.adb: Simplify previous fix for Address.
25493         (Set_Bounds): If prefix is a non-frozen fixed-point type, freeze now,
25494         to avoid anomalies where the bound of the type appears to raise
25495         constraint error.
25496
25497 2001-12-11  Robert Dewar <dewar@gnat.com>
25498
25499         * lib-xref.adb (Output_Refs): Make sure pointers are always properly
25500         handled.
25501
25502 2001-12-11  Ed Schonberg <schonber@gnat.com>
25503
25504         * sem_ch12.adb (Analyze_Subprogram_Instantiation): Check for a
25505         renamed unit before checking for recursive instantiations.
25506
25507 2001-12-11  Emmanuel Briot <briot@gnat.com>
25508
25509         * prj.ads: Add comments for some of the fields.
25510
25511 2001-12-11  Robert Dewar <dewar@gnat.com>
25512
25513         * lib-xref.adb (Output_Refs): Don't output type references outside
25514         the main unit if they are not otherwise referenced.
25515
25516 2001-12-11  Ed Schonberg <schonber@gnat.com>
25517
25518         * sem_attr.adb (Analyze_attribute, case Address and Size): Simplify
25519         code and diagnose additional illegal uses
25520
25521         * sem_util.adb (Is_Object_Reference): An indexed component is an
25522         object only if the prefix is.
25523
25524 2001-12-11  Vincent Celier <celier@gnat.com>
25525
25526         * g-diopit.adb: Initial version.
25527
25528         * g-diopit.ads: Initial version.
25529
25530         * g-dirope.adb:
25531         (Expand_Path): Avoid use of Unbounded_String
25532         (Find, Wildcard_Iterator): Moved to child package Iteration
25533
25534         * Makefile.in: Added g-diopit.o to GNATRTL_NONTASKING_OBJS
25535
25536 2001-12-11  Robert Dewar <dewar@gnat.com>
25537
25538         * sem_attr.adb: Minor reformatting
25539
25540 2001-12-11  Ed Schonberg <schonber@gnat.com>
25541
25542         * sem_ch3.adb: Clarify some ???.
25543
25544 2001-12-11  Robert Dewar <dewar@gnat.com>
25545
25546         * exp_util.adb (Must_Be_Aligned): Removed, replaced by
25547         Exp_Pakd.Known_Aligned_Enough
25548
25549         * sem_ch13.adb (Check_Address_Alignment): Removed, extended
25550         version is moved to Exp_Ch13.
25551
25552 2001-12-11  Robert Dewar <dewar@gnat.com>
25553
25554         * einfo.ads: Minor reformatting
25555
25556         * exp_ch5.adb: Add comment for previous.change
25557
25558         * ali.adb: New interface for extended typeref stuff.
25559
25560         * ali.ads: New interface for typeref stuff.
25561
25562         * checks.adb (Apply_Alignment_Check): New procedure.
25563
25564         * debug.adb: Add -gnatdM for modified ALI output
25565
25566         * exp_pakd.adb (Known_Aligned_Enough): Replaces Known_Aligned_Enough.
25567
25568         * lib-xref.adb: Extend generation of <..> notation to cover
25569         subtype/object types. Note that this is a complete rewrite,
25570         getting rid of the very nasty quadratic algorithm previously
25571         used for derived type output.
25572
25573         * lib-xref.ads: Extend description of <..> notation to cover
25574         subtype/object types. Uses {..} for these other cases.
25575         Also use (..) for pointer types.
25576
25577         * sem_util.adb (Check_Potentially_Blocking_Operation): Slight cleanup.
25578
25579         * exp_pakd.adb: Minor reformatting.  Note that prevous RH should say:
25580         (Known_Aligned_Enough): Replaces Must_Be_Aligned.
25581
25582 2001-12-11  Vincent Celier <celier@gnat.com>
25583
25584         * gnatcmd.adb:
25585         Changed /COMPILE_ONLY to /ACTIONS=COMPILE
25586         Changed /BIND_ONLY to /ACTIONS=BIND
25587         Changed /LINK_ONLY to /ACTIONS=LINK
25588
25589 2001-12-11  Ed Schonberg  <schonber@gnat.com>
25590
25591         * sem_ch8.adb (Find_Selected_Component): improved search for a
25592         candidate package in case of error.
25593
25594         * sem_ch12.adb (Inline_Instance_Body): place head of use_clause
25595         chain back on scope stack before reinstalling use clauses.
25596
25597         * exp_ch5.adb (Expand_N_If_Statement): if Constant_Condition_Warnings
25598         is enabled, do not kill the code for the condition, to preserve
25599         warning.
25600
25601 2001-12-11  Robert Dewar <dewar@gnat.com>
25602
25603         * checks.adb (Insert_Valid_Check): Apply validity check to expression
25604         of conversion, not to result of conversion.
25605
25606 2001-12-11  Ed Schonberg <schonber@gnat.com>
25607
25608         * sem_ch3.adb (Build_Derived_Record_Type): set Controlled flag
25609         before freezing parent. If the declarations are mutually recursive,
25610         an access to the current record type may be frozen before the
25611         derivation is complete.
25612
25613 2001-12-05  Vincent Celier <celier@gnat.com>
25614
25615         * gnatcmd.adb: (MAKE): Add new translations: -b /BIND_ONLY,
25616         -c /COMPILE_ONLY, -l /LINK_ONLY
25617
25618         * opt.ads:
25619         (Bind_Only): New Flag
25620         (Link_Only): New flag
25621
25622         * switch.adb (Scan_Make_Switches): Add processing for -b (Bind_Only)
25623         and -l (Link_Only)
25624
25625         * makeusg.adb: Add new switches -b and -l. Update Copyright notice.
25626
25627         * make.adb:
25628         (Do_Compile_Step, Do_Bind_Step, Do_Link_Step): New flags.
25629         (Gnatmake): Set the step flags. Only perform a step if the
25630         corresponding step flag is True.
25631         (Scan_Make_Arg): Reset the bind and link step flags when -u
25632         or -gnatc has been specified.
25633
25634 2001-12-05  Ed Schonberg <schonber@gnat.com>
25635
25636         * sem_eval.adb (Eval_Concatenation): If left operand is a null string,
25637         get bounds from right operand.
25638
25639         * sem_eval.adb: Minor reformatting
25640
25641         * exp_util.adb (Make_Literal_Range): use bound of literal rather
25642         than Index'First, its lower bound may be different from 1.
25643
25644         * exp_util.adb: Undo earlier change, fixes ACVC regressions C48009B
25645         and C48009J
25646
25647 2001-12-05  Vincent Celier <celier@gnat.com>
25648
25649         * prj-nmsc.adb Minor reformatting
25650
25651         * prj-nmsc.adb (Language_Independent_Check): Reset Library flag if
25652         set and libraries are not supported.
25653
25654 2001-12-05  Ed Schonberg <schonber@gnat.com>
25655
25656         * sem_ch3.adb (Build_Derived_Private_Type): set Public status of
25657         private view explicitly, so the back-end can treat as a global
25658         when appropriate.
25659
25660 2001-12-05  Ed Schonberg <schonber@gnat.com>
25661
25662         * sem_ch12.adb (Instantiate_Package_Body): if instance is a compilation
25663          unit, always replace instance node with new body, for ASIS use.
25664
25665 2001-12-05  Vincent Celier <celier@gnat.com>
25666
25667         * prj-nmsc.adb (Language_Independent_Check): Issue a warning if
25668         libraries are not supported and both attributes Library_Name and
25669         Library_Dir are specified.
25670
25671         * prj-proc.adb (Expression): Set location of Result to location of
25672         first term.
25673
25674         * Makefile.in: Add mlib.o, mlib-fil.o, mlib-tgt and mlib-utl to GNATLS.
25675         (prj-nmsc is now importing MLib.Tgt)
25676
25677         * prj-proc.adb: Put the change indicated above that was forgotten.
25678
25679 2001-12-05  Robert Dewar <dewar@gnat.com>
25680
25681         * Makefile.in: Add dependencies for System.IO for GNAT.Regexp
25682
25683 2001-12-05  Ed Schonberg <schonber@gnat.com>
25684
25685         * sem_ch3.adb (Build_Derived_Concurrent_Type): If derivation imposes a
25686         constraint, introduce explicit subtype declaration and derive from it.
25687
25688         * sem_ch3.adb: Minor reformatting
25689
25690 2001-12-05  Robert Dewar <dewar@gnat.com>
25691
25692         * checks.adb (Determine_Range): Increase cache size for checks.
25693         Minor reformatting
25694
25695         * exp_ch6.adb: Minor reformatting
25696         (Expand_N_Subprogram_Body): Reset Is_Pure for any subprogram that has
25697         a parameter whose root type is System.Address, since treating such
25698         subprograms as pure in the code generator is almost surely a mistake
25699         that will lead to unexpected results.
25700
25701         * exp_util.adb (Remove_Side_Effects): Clean up old ??? comment and
25702         change handling of conversions.
25703
25704         * g-regexp.adb: Use System.IO instead of Ada.Text_IO.
25705
25706 2001-12-05  Ed Schonberg <schonber@gnat.com>
25707
25708         * sem_ch3.adb (Analyze_Object_Declaration): If expression is an
25709         aggregate with static wrong size, attach generated Raise node to
25710         declaration.
25711
25712 2001-12-05  Robert Dewar <dewar@gnat.com>
25713
25714         * sem_attr.adb (Analyze_Attribute): Defend against bad Val attribute.
25715         Fixes compilation abandoned bomb in B24009B.
25716
25717 2001-12-05  Ed Schonberg <schonber@gnat.com>
25718
25719         * sem_ch12.adb:
25720         Document use of Associated_Node on Selected_Components.
25721         (Save_Global_Operand_Descendants): Change to Save_Entity_Descendants,
25722         to clarify use of untyped descendant fields.
25723
25724 2001-12-05  Robert Dewar <dewar@gnat.com>
25725
25726         * prj-dect.ads: Add ??? comment
25727         Add 2001 to copyright notice (was not done in after all)
25728
25729         * prj-part.adb: Minor reformatting. Reword one awkward error message.
25730
25731         * prj.ads: Minor reformatting throughout, and add some ??? comments
25732
25733         * snames.ads: Minor reformatting
25734
25735 2001-12-05  Geert Bosch <bosch@gnat.com>
25736
25737         * snames.adb: Autoupdate
25738
25739 2001-12-05  Vincent Celier <celier@gnat.com>
25740
25741         * prj-dect.adb (Parse): Rename parameter Modifying to Extends.
25742
25743         * prj-dect.ads (Parse): Rename parameter Modifying to Extends.
25744
25745         * prj-env.adb: Minor comment changes (modifying -> extends).
25746
25747         * prj-nmsc.adb: Minor comment changes (modifying -> extends).
25748
25749         * prj-part.adb (Parse_Single_Project): Change Tok_Modifying to
25750         Tok_Extends.
25751
25752         * prj.adb (Initialize): Change Modifying to Extends.
25753
25754         * scans.ads (Token_Type): Change Tok_Modifying to Tok_Extends.
25755
25756         * prj.ads: Minor comment change (Modifying -> extending).
25757
25758         * snames.ads: Change modifying to extends.
25759
25760 2001-12-05  Robert Dewar <dewar@gnat.com>
25761
25762         * sem_warn.adb: Remove stuff for conditionals, we are not going to
25763         do this after all.
25764
25765         * sem_warn.ads: Remove stuff for conditionals, we are not going to
25766         do this after all.  Add 2001 to copyright notice
25767
25768 2001-12-04  Geert Bosch <bosch@gnat.com>
25769
25770         *  einfo.h, sinfo.h, treeprs.ads: Regenerate.
25771
25772 2001-12-04  Robert Dewar <dewar@gnat.com>
25773
25774         * errout.adb (Error_Msg): Ignore attempt to put error msg at junk
25775         location if we already have errors. Stops some cases of cascaded
25776         errors.
25777
25778         * errout.adb: Improve comment.
25779
25780 2001-12-04  Robert Dewar <dewar@gnat.com>
25781
25782         * sem_ch12.adb:
25783         (Analyze_Formal_Type_Definition): Defend against Error.
25784         (Analyze_Formal_Subprogram): Defend against Error.
25785
25786         * par-ch12.adb (F_Formal_Type_Declaration): In case of error,
25787         remove following semicolon if present. Removes cascaded error.
25788
25789 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25790
25791         * bindgen.adb:
25792         (Gen_Exception_Table_Ada): Write "begin" and then return if Num
25793          exceptions equals 0.
25794         (Gen_Exception_Table_C): Return if Num exceptions equals 0.
25795         Fixes PIWG E tests (which have to be run with -gnatL).
25796
25797 2001-12-04  Robert Dewar <dewar@gnat.com>
25798
25799         * einfo.ads: Minor reformatting
25800
25801 2001-12-04  Ed Schonberg <schonber@gnat.com>
25802
25803         * einfo.ads: Block_Node points to the identifier of the block, not to
25804         the block node itself, to preserve the link when the block is
25805         rewritten, e.g. within an if-statement with a static condition.
25806
25807         * inline.adb (Cleanup_Scopes): recover block statement from block
25808         entity using new meaning of Block_Node.
25809
25810         * sem_ch5.adb (Analyze_Block_Statement): set Block_Node to point to
25811         identifier of block node, rather than to node itself.
25812
25813 2001-12-04  Gary Dismukes <dismukes@gnat.com>
25814
25815         * layout.adb:
25816         (Get_Max_Size): Fix "start of processing" comment to say Get_Max_Size.
25817         (Discrimify): Go back to setting the Etypes of the selected component
25818         because the Vname component does not exist at this point and will
25819         fail name resolution. Also set Analyzed.
25820         Remove with and use of Sem_Res.
25821
25822 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25823
25824         * Makefile.in: (HIE_SOURCES): add s-fat*.
25825
25826 2001-12-04  Robert Dewar <dewar@gnat.com>
25827
25828         * sem_attr.adb:
25829         (Compile_Time_Known_Attribute): New procedure.
25830         (Eval_Attribute, case Size): Use Compile_Time_Known_Attribute to ensure
25831          proper range check.
25832
25833 2001-12-04  Ed Schonberg <schonber@gnat.com>
25834
25835         * sem_ch7.adb (New_Private_Type): Set Is_Tagged_Type flag before
25836         processing discriminants to diagnose illegal default values.
25837
25838 2001-12-04  Ed Schonberg <schonber@gnat.com>
25839
25840         * sem_attr.adb (Resolve_Attribute): Handle properly an non-classwide
25841         access discriminant within a type extension that constrains its
25842         parent discriminants.
25843
25844 2001-12-04  Ed Schonberg <schonber@gnat.com>
25845
25846         * sem_ch3.adb (Find_Type_Of_Subtype_Indic): If subtype indication
25847         is malformed, use instance of Any_Id to allow analysis to proceed.
25848
25849         * par-ch12.adb (P_Formal_Type_Declaration): Propagate Error if
25850         type definition is illegal.
25851         (P_Formal_Derived_Type_Definition): Better recovery when TAGGED is
25852         misplaced.
25853
25854 2001-12-04  Ed Schonberg <schonber@gnat.com>
25855
25856         * sem_warn.adb (Output_Unreferenced_Messages): Extend previous fix to
25857         constants.
25858
25859 2001-12-04  Robert Dewar <dewar@gnat.com>
25860
25861         * errout.adb: Minor reformatting
25862
25863 2001-12-04  Robert Dewar <dewar@gnat.com>
25864
25865         * exp_util.adb: Minor reformatting from last change
25866
25867         * errout.adb (Check_For_Warning): For a Raised_Constraint_Error node
25868         which is a rewriting of an expression, traverse the original
25869         expression to remove warnings that may have been posted on it.
25870
25871 2001-12-04  Ed Schonberg <schonber@gnat.com>
25872
25873         * exp_util.adb (Must_Be_Aligned): Return false for a component of a
25874         record that has other packed components.
25875
25876 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25877
25878         * adaint.c: Minor cleanups.
25879
25880 2001-12-04  Douglass B. Rupp <rupp@gnat.com>
25881
25882         * adaint.c: Do not use utime.h on vxworks.
25883
25884 2001-12-04  Arnaud Charlet <charlet@gnat.com>
25885
25886         * Makefile.adalib: Clarify step 3 (use of gnat.adc) as it causes
25887         more confusion than it solves.
25888
25889 2001-12-04  Geert bosch <bosch@gnat.com>
25890
25891         * einfo.h, nmake.adb, nmake.ads, sinfo.h treeprs.ads: Regenerate.
25892
25893 2001-12-04  Geert Bosch  <bosch@gnat.com>
25894
25895         * Makefile.in (update-sources): New target.
25896         For use by gcc_release script.
25897
25898 2001-12-04  Ed Schonberg <schonber@gnat.com>
25899
25900         * sem_prag.adb (Analyze_Pragma, case Validity_Checks): do not treat as
25901         a configuration pragma, it is now legal wherever a pragma can appear.
25902
25903 2001-12-04  Zack Weinberg  <zack@codesourcery.com>
25904
25905         * Makefile.in: Don't set ALL.  Delete @cross_defines@,
25906         @cross_overrides@, @build_overrides@ stanzas.  INTERNAL_CFLAGS
25907         is now @CROSS@ -DIN_GCC; update comment.
25908
25909 2001-12-04  Robert Dewar <dewar@gnat.com>
25910
25911         * einfo.adb (Has_Pragma_Pure_Function): New flag.
25912         Fix problem that stopped ceinfo from working
25913
25914         * einfo.ads (Has_Pragma_Pure_Function): New flag.
25915
25916         * sem_prag.adb (Pure_Function): Set new flag Has_Pragma_Pure_Function.
25917
25918 2001-12-04  Douglas B. Rupp <rupp@gnat.com>
25919
25920         * gnatchop.adb:
25921         (File_Time_Stamp): New procedure.
25922         (Preserve_Mode): New boolean.
25923         (Write_Unit): Pass time stamp.
25924         Implement -p switch (preserve time stamps).
25925
25926         * gnatcmd.adb (CHOP): Add translation for -p (/PRESERVE).
25927
25928         * gnatchop.adb: Do usage info for -p switch
25929
25930         * adaint.h (__gnat_set_file_time_name): New function
25931
25932         * adaint.c (__gnat_set_file_time_name): Implement
25933
25934         * adaint.h: Fix typo
25935
25936 2001-12-03  Robert Dewar <dewar@gnat.com>
25937
25938         * sinfo.ads: Minor reformatting. N_Freeze_Entity node does not
25939         have Associated_Node.
25940
25941 2001-12-03  Robert Dewar <dewar@gnat.com>
25942
25943         * prj-proc.adb: Minor reformatting
25944
25945         * make.adb: Minor reformatting
25946
25947 2001-12-03  Geert Bosch <bosch@gnat.com>
25948
25949         * make.adb: Minor reformatting.
25950
25951 2001-12-03 Robert Dewar  <dewar@gnat.com>
25952
25953         * sem_ch12.adb: Minor reformatting
25954
25955 2001-12-03  Ed Schonberg <schonber@gnat.com>
25956
25957         * sem_ch12.adb (Inline_Instance_Body): Use Save_Scope_Stack and
25958         push Standard on the stack before analyzing the instance body,
25959         in order to have a clean visibility environment.
25960
25961         * sem_ch12.adb (Inline_Instance_Body): Remove redundant code.
25962
25963 2001-12-03  Ed Schonberg <schonber@gnat.com>
25964
25965         * sem_ch12.adb (Instantiate_Package_Body): Protect against double
25966         instantiation of a body that contains an inlined body.
25967
25968 2001-12-03  Ed Schonberg <schonber@gnat.com>
25969
25970         * sem_ch12.adb:
25971         (Analyze_generic_subprogram_Declaration): Set outer_generic_scope,
25972         to prevent freezing within formal packages.
25973         (Freeze_Subprogram_Body): If body comes from another instance that
25974         appeared before its own body, place freeze node at end of current
25975         declarative part, to prevent a back-end crash.
25976         (Inline_Instance_Body): Handle properly a package instance within
25977         a subprogram instance that is a child unit.
25978
25979 2001-12-01  Graham Stott  <grahams@redhat.com>
25980
25981         * Makefile.in (misc.o): Add missing $(srcdir) prefix
25982         and add optabs.h dependency.
25983
25984         * misc.c: Include optabs.h
25985         (gnat_tree_code_type): Make static and const.
25986         (gnat_tree_code_length): Likewise.
25987         (gnat_tree_code_name): Likewise.
25988         (update_setjmp_buf): Obtain operands mode from insn_data.
25989
25990 2001-11-29  Richard Henderson  <rth@redhat.com>
25991
25992         * init.c: Remove obsolete dwarf2 frame.h section.
25993
25994 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
25995
25996         * Make-lang.in (ada.generated-manpages): New dummy target.
25997
25998 2001-11-29  Ed Schonberg <schonber@gnat.com>
25999
26000         * g-os_lib.adb (Add_To_Command): use explicit loop to move string
26001         into Command, an array conversion is illegal here. Uncovered by
26002         ACATS B460005.
26003
26004 2001-11-28  Geert Bosch <bosch@gnat.com>
26005
26006         * init.c: Minor whitespace changes.
26007
26008 2001-11-28  Doug Rupp <rupp@gnat.com>
26009
26010         * init.c: (__gnat_install_handler,VMS): Increase size of alternate
26011         signal stack.
26012
26013 2001-11-28  Zack Weinberg  <zack@codesourcery.com>
26014
26015         * misc.c (gnat_expand_constant): Move declaration above
26016         definition of lang_hooks.
26017         (LANG_HOOKS_EXPAND_CONSTANT): Set to gnat_expand_constant.
26018         (gnat_init): lang_expand_constant no longer exists.
26019
26020         (internal_error_function): Remove #ifdef HAVE_VPRINTF.  We
26021         always have vprintf.
26022         (gnat_init): Always call set_internal_error_function.
26023
26024 2001-11-27  Andreas Jaeger  <aj@suse.de>
26025
26026         * Makefile.in (stamp-tool_src_dir): Use symbolic link.
26027
26028 2001-11-27  Laurent Guerby  <guerby@acm.org>
26029
26030         * Makefile.in: Regenerate Ada dependencies.
26031
26032 2001-11-26  Richard Henderson  <rth@redhat.com>
26033
26034         * Make-lang.in (gnatbind, gnatmake, gnatbl, gnatchop, gnatcmd,
26035         gnatlink, gnatkr, gnatls, gnatmem, gnatprep, gnatpsta, gnatpsys,
26036         gnatxref, gnatfind, gnatlbr): Depend on CONFIG_H and prefix.o.
26037
26038 2001-11-25  Laurent Guerby  <guerby@acm.org>
26039
26040         * sysdep.c (rts_get_*): Fix style.
26041
26042 2001-11-19  Laurent Guerby  <guerby@acm.org>
26043
26044         * Makefile.in (INCLUDES_FOR_SUBDIR): Remove redundant system include
26045         since it is of no apparent use and cause warnings.
26046
26047 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
26048
26049         * misc.c (gnat_decode_option, gnat_init_options): Make definitions
26050         static too.
26051         (gnat_init): Don't return NULL.
26052         (finish_parse): Remove.
26053
26054 2001-11-17  Laurent Guerby  <guerby@acm.org>
26055
26056         * Make-lang.in (GNATLIBFLAGS): Add -W -Wall.
26057         * gigi.h (init_decl_processing): Rename to gnat_init_decl_processing.
26058         * io-aux.c: Provide K&R prototypes to all functions, reformat code.
26059         * lang-spec.h: Add missing struct field to silence warnings.
26060         * sysdep.c (rts_get_*): Provide K&R prototype.
26061         * sysdep.c (Unlock_Task, Lock_Task): Move to K&R prototype.
26062         * traceback.c (Unlock_Task, Lock_Task): Likewise.
26063         * tracebak.c (__gnat_backtrace): Remove unused variable.
26064         * utils.c (end_subprog_body): Move to K&R style.
26065
26066 Thu Nov 15 18:16:17 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26067
26068         * trans.c, utils2.c: Remove PALIGN parameter to get_inner_reference.
26069
26070 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
26071
26072         * misc.c (gnat_init): Change prototype.  Include the
26073         functionality of the old init_parse and init_decl_processing.
26074         (gnat_init_decl_processing): New prototype.
26075         (init_parse): Remove.
26076         * utils.c (init_decl_processing): Rename gnat_init_decl_processing.
26077
26078 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26079
26080         * misc.c (gnat_print_decl, gnat_print_type): Renamed.
26081         (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE): Override.
26082         (print_lang_statistics, lang_print_xnode, print_lang_identifier,
26083         set_yydebug): Remove.
26084
26085 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
26086
26087         * misc.c (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): Override.
26088         (struct lang_hooks): Constify.
26089         (language_string, lang_identify): Remove.
26090         * utils.c (init_decl_processing): Update.
26091
26092 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
26093
26094         * misc.c: Include langhooks-def.h.
26095         * Makefile.in: Update.
26096
26097 2001-10-30  Robert Dewar <dewar@gnat.com>
26098
26099         * style.adb:
26100         (Check_Identifier): Rewrite circuit to be compatible with use of letters
26101         in the upper half of ASCII.
26102         (Check_Identifier): Minor reformatting
26103
26104 2001-10-30  Geert Bosch <bosch@gnat.com>
26105
26106         * (Associated_Node, Set_Associated_Node): Do not check for
26107         Freeze_Entity.
26108
26109 2001-10-30  Robert Dewar <dewar@gnat.com>
26110
26111         * a-reatim.ads: Minor reformatting
26112
26113 2001-10-30  Robert Dewar <dewar@gnat.com>
26114
26115         * gnatdll.adb: Minor reformatting throughout. Many ??? added for
26116         undocumented declarations.
26117
26118 2001-10-30  Pascal Obry <obry@gnat.com>
26119
26120         * gnatdll.adb (Parse_Command_Line): handle -g option to be passed
26121         to the binder and linker.
26122         Minor style fix.
26123
26124         * mdll.ads: Fix layout.  Update copyright notice.
26125
26126         * mdll.adb: Fix layout.  Update copyright notice.
26127
26128 2001-10-30  Robert Dewar <dewar@gnat.com>
26129
26130         * usage.adb: Minor fix to output for -gnaty.
26131
26132 2001-10-30  Ed Schonberg <schonber@gnat.com>
26133
26134         * a-reatim.ads: Makes Seconds_Count into a 64-bit integer,
26135         to accommodate all its possible values.
26136
26137         * a-reatim.adb (Split): Special-case handling of Time_Span_First
26138         and of small absolute values of T.
26139
26140 2001-10-30  Richard Kenner <kenner@gnat.com>
26141
26142         * misc.c (gnat_expand_expr, case NULL_EXPR): Remove call to
26143         set_mem_attributes since not needed and wrong if RESULT if a REG;
26144         fixes ACATS failures.
26145
26146 2001-10-30  Geert Bosch <bosch@gnat.com>
26147
26148         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, fname-sf.ads, g-traceb.ads,
26149         s-tasdeb.ads, sem_maps.ads: Add 2001 to copyright notice.
26150
26151 2001-10-30  Robert Dewar <dewar@gnat.com>
26152
26153         * bindusg.adb: Undocument -f switch.
26154
26155         * gnatcmd.adb: Remove /FULL_ELABORATION.
26156
26157         * opt.ads (Force_RM_Elaboration_Order): Document that this is
26158         obsolescent.
26159
26160         * gnatbind.adb: Output new warning for use of obsolescent -f switch.
26161
26162         * gnatbind.adb: Minor update of warning msg.
26163
26164 2001-10-30  Vincent Celier <celier@gnat.com>
26165
26166         * gnatcmd.adb (MAKE, BIND, LINK, LIST, FIND, XREF): Add translations
26167         for project file switches (-P (/PROJECT_FILE=),
26168          -X (/EXTERNAL_REFERENCE=) and -vPx (/PROJECT_FILE_VERBOSITY=DEFAULT
26169         or MEDIUM or HIGH)
26170
26171 2001-10-30  Geert Bosch <bosch@gnat.com>
26172
26173         * decl.c: Minor whitespace fixes.
26174
26175 2001-10-30  Richard Kenner <kenner@gnat.com>
26176
26177         * utils2.c (build_allocator): Test for SIZE overflow in array case too
26178
26179 2001-10-30  Geert Bosch <bosch@gnat.com>
26180
26181         * ali-util.adb (Initialize_Checksum): Use out-mode instead of in out.
26182         Found due to GCC 3.0 warning of using uninitialized value.
26183
26184         * layout.adb:
26185         (Get_Max_Size): Use variant record for tracking value/expression.
26186          Makes logic clearer and prevents warnings for uninitialized variables.
26187         (Layout_Array_Type): Use variant record for tracking value/expression.
26188          Makes logic clearer and prevents warnings for uninitialized variables.
26189
26190 2001-10-30  Robert Dewar <dewar@gnat.com>
26191
26192         * lib.adb: Minor reformatting
26193
26194         * s-taprop.ads: Minor reformatting
26195
26196 2001-10-29  Laurent Guerby  <guerby@acm.org>
26197
26198         * init.c:
26199         (Raise_From_Signal_Handler, Propagate_Signal_Exception): Make arg
26200         const.
26201         (_gnat_error_handler): Make MSG const.
26202
26203 2001-10-29  Richard Kenner <kenner@gnat.com>
26204
26205         * sysdep.c: Fix localtime_r problem on LynxOS.
26206         Also remove #elif to avoid warnings.
26207
26208         * misc.c (yyparse): Don't set up and register jmpbuf; remove decls
26209         used by this.
26210
26211         * decl.c (annotate_value): Make SIZE unsigned to avoid warning.
26212
26213 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
26214
26215         * 86numaux.adb, a-tigeau.ads, a-wtgeau.ads, decl.c, exp_ch6.adb,
26216         exp_ch9.adb, exp_util.adb, fname-sf.ads, freeze.ads, g-awk.adb,
26217         g-comlin.ads, g-dirope.adb, g-dyntab.ads, g-socket.ads,
26218         g-table.ads, g-traceb.ads, gnat-style.texi, gnatchop.adb, init.c,
26219         layout.adb, layout.ads, mdllfile.ads, mlib-fil.ads, osint.ads,
26220         s-fatgen.adb, s-imgrea.adb, s-taprop.ads, s-tasdeb.ads,
26221         sem_aggr.adb, sem_attr.adb, sem_case.ads, sem_ch13.adb,
26222         sem_ch3.adb, sem_elab.adb, sem_maps.ads, sem_res.adb,
26223         sem_util.ads, sinfo.ads, sinput.ads, table.adb, table.ads,
26224         types.ads, urealp.adb: Fix spelling errors.
26225
26226 2001-10-27  Laurent Guerby <guerby@acm.org>
26227
26228         * trans.c (gigi): Fix non determinism leading to bootstrap
26229         comparison failures for debugging information.
26230
26231 2001-10-26  Florian Weimer  <fw@deneb.enyo.de>
26232
26233         * gnat_rm.texi: Use @./@: where appropriate.
26234
26235 2001-10-26  Robert Dewar <dewar@gnat.com>
26236
26237         * sinfo.adb: Define Associated_Node to overlap Entity field. Cleanup.
26238
26239 2001-10-26  Richard Kenner <kenner@gnat.com>
26240
26241         * gmem.c (__gnat_gmem_read_next): Properly check for EOF
26242
26243 2001-10-26  Richard Kenner <kenner@gnat.com>
26244
26245         * decl.c (validate_size): Modify message for bad size to avoid
26246         implication that compiler is modifying the size.
26247
26248 2001-10-26  Robert Dewar <dewar@gnat.com>
26249
26250         * prj-util.adb: Minor reformatting. Fix bad header format.
26251
26252 2001-10-26  Robert Dewar <dewar@gnat.com>
26253
26254         * sinfo.ads: Define Associated_Node to overlap Entity field. Cleanup.
26255
26256         * sinfo.ads: Clarify use of Associated_Node (documentation only).
26257
26258         * sem_ch12.adb: Change Node4 to Associated_Node. Change
26259         Associated_Node to Get_Associated_Node. Put use of Unchecked_Access
26260         much more narrowly in places where needed. These are cleanups.
26261
26262 2001-10-26  Joel Brobecker <brobecke@gnat.com>
26263
26264         * 5zosinte.ads (null_pthread): new constant.
26265
26266         * 5ztaprop.adb:
26267         (Initialize_TCB): Initialize thread ID to null, to be able to verify
26268          later that this field has been set.
26269         (Finalize_TCB): ditto.
26270         (Suspend_Task): Verify that the thread ID is not null before using it.
26271         (Resume_Task): ditto.
26272
26273         * s-tasdeb.adb:
26274         (Resume_All_Tasks): Lock the tasks list before using it.
26275         (Suspend_All_Tasks): ditto.
26276
26277 2001-10-26  Richard Kenner <kenner@gnat.com>
26278
26279         * decl.c (gnat_to_gnu_entity, case E_General_Access_Type):
26280         Make constant variant of designated type for Is_Access_Constant.
26281         Call update_pointer_to with main variant.
26282
26283         * trans.c (process_freeze_entity, process_type):
26284         Call update_pointer_to on main variant.
26285
26286         * utils.c (update_pointer_to): Make corresponding variant for NEW_TYPE.
26287         If main variant, update all other variants.
26288
26289         * utils2.c (build_unary_op, case INDIRECT_REF): No longer set
26290         TREE_STATIC.
26291
26292 2001-10-26  Robert Dewar <dewar@gnat.com>
26293
26294         * prj-util.adb: Minor reformatting
26295
26296 2001-10-26  Robert Dewar <dewar@gnat.com>
26297
26298         * prj-util.adb: Minor reformatting
26299
26300 2001-10-26  Robert Dewar <dewar@gnat.com>
26301
26302         * prj-attr.adb: Minor reformatting throughout
26303
26304 2001-10-26  Robert Dewar <dewar@gnat.com>
26305
26306         * prj-attr.ads: Minor reformatting
26307         Add ??? comment (this whole spec has almost no comments)
26308
26309 2001-10-26  Vincent Celier <celier@gnat.com>
26310
26311         * g-os_lib.adb (Normalize_Pathname): Preserve the double slash
26312         ("//") that precede the drive letter on Interix.
26313
26314 2001-10-26  Geert Bosch <bosch@gnat.com>
26315
26316         * gnat_rm.texi: Add GNAT Reference Manual.
26317
26318 2001-10-25  Robert Dewar <dewar@gnat.com>
26319
26320         * sem_ch8.adb (Analyze_Package_Renaming): Skip analysis if Name
26321         is Error. Similar change for other renaming cases.
26322
26323 2001-10-25  Robert Dewar <dewar@gnat.com>
26324
26325         * s-atacco.ads: Add pragma Inline_Always for functions.
26326         Fix header format. Add copyright 2001
26327
26328 2001-10-25  Ed Schonberg <schonber@gnat.com>
26329
26330         * par-ch3.adb (P_Subtype_Mark_Resync): for an anonymous array
26331         return Error rather than Empty so that analysis can proceed.
26332
26333 2001-10-25  Ed Schonberg <schonber@gnat.com>
26334
26335         * sem_util.adb (Enter_Name): better handling of cascaded error
26336         messages when a unit appears in its own context.
26337
26338 2001-10-25  Ed Schonberg <schonber@gnat.com>
26339
26340         * sem_util.adb (Defining_Entity): in case of error, attach created
26341         entity to specification, so that semantic analysis can proceed.
26342
26343 2001-10-25  Robert Dewar <dewar@gnat.com>
26344
26345         * sem_util.adb
26346         (Defining_Entity): Deal with Error.
26347         (Process_End_Label): Deal with bad end label for.
26348
26349 2001-10-25  Ed Schonberg <schonber@gnat.com>
26350
26351         * sem_elab.adb (Check_A_Call): refine message when call is in an
26352         instance but callee is not declared in the generic unit.
26353
26354 2001-10-25  Ed Schonberg <schonber@gnat.com>
26355
26356         * sem_elab.adb (Check_A_Call): check for renaming before finding the
26357         enclosing unit, which may already be different from the calling unit.
26358
26359 2001-10-25  Geert Bosch <bosch@gnat.com>
26360
26361         * 4gintnam.ads: fix header format.
26362
26363 2001-10-25  Ed Schonberg <schonber@gnat.com>
26364
26365         * sem_res.adb (Resolve_Call): if the call is actually an indexing
26366         operation on the result of a parameterless call, perform elaboration
26367         check after the node has been properly rewritten.
26368
26369         * sem_ch12.adb (Copy_Generic_Node): after the proper body has been
26370         inlined within the generic tree, the defining identifier is not a
26371         compilation_unit.
26372
26373 2001-10-25  Ed Schonberg <schonber@gnat.com>
26374
26375         * sem_res.adb (Resolve): special-case resolution of Null in an
26376          instance or an inlined body to avoid view conflicts.
26377
26378         * sem_ch12.adb (Copy_Generic_Node): for allocators, check for view
26379          compatibility by retrieving the access type of the generic copy.
26380
26381 2001-10-25  Robert Dewar <dewar@gnat.com>
26382
26383         * sem_ch3.adb:
26384         (Analyze_Number_Declaration): Handle error expression.
26385         (Signed_Integer_Type_Declaration): Handle error bound.
26386         (Analyze_Subtype_Indication): Handle error range.
26387
26388         * sem_util.adb (Get_Index_Bounds): Check for Error.
26389
26390 2001-10-25  Robert Dewar <dewar@gnat.com>
26391
26392         * restrict.adb (Set_No_Run_Time_Mode): Set Discard_Names as default
26393         in no run time mode.
26394
26395 2001-10-25  Pascal Obry <obry@gnat.com>
26396
26397         * gnatmem.adb (Read_Next): fix Curs2 value to properly handle quiet
26398         mode case for ALLOC case.
26399
26400         * gnatmem.adb (Read_Next): correctly fix parsing in Quiet mode on
26401         all platforms. Improvement of last change.
26402
26403 2001-10-25  Robert Dewar <dewar@gnat.com>
26404
26405         * exp_ch4.adb (Expand_N_Allocator): Minor reformatting.
26406
26407 2001-10-25  Geert Bosch  <bosch@gnat.com>
26408
26409         * osint.adb (Is_Relative): Remove duplicate.
26410
26411 2001-10-25  Pascal Obry <obry@gnat.com>
26412
26413         * osint.adb (Read_Default_Search_Dirs): correctly detect relative
26414         pathnames in UNIX and DOS style with drive letter.
26415         (Is_Relative): new routine.
26416
26417         * osint.adb: Minor reformatting
26418
26419         * osint.adb (Is_Relative): implementation using
26420         GNAT.OS_Lib.Is_Absolute_Path. Better fix.
26421
26422 2001-10-25  Pascal Obry <obry@gnat.com>
26423
26424         * g-dirope.adb (Basename): correctly compute offset between the
26425         original Path and the translated one.
26426
26427         * g-dirope.adb: (Base_Name): add some comments.
26428
26429 2001-10-25  Robert Dewar <dewar@gnat.com>
26430
26431         * exp_imgv.adb (Expand_Image_Attribute): Defend against bad use
26432         in HIE mode, avoids compilation abandoned message
26433
26434         * exp_imgv.adb: Correct typo in previous change
26435
26436         * exp_imgv.adb: Correct typo in previous change (not my day!)
26437
26438 2001-10-25  Robert Dewar <dewar@gnat.com>
26439
26440         * s-tpinop.ads: Add 2001 to copyright notice. Fix header format.
26441
26442 2001-10-25  Pascal Obry <obry@gnat.com>
26443
26444         * g-awk.ads: Move all pragma inlines next to the routine
26445          declarations. This is more uniform with other GNAT spec.
26446
26447 2001-10-22  Geert Bosch  <bosch@gnat.com>
26448
26449         * Make-lang.in (gnattools, cross-gnattools): Remove gnatmem.
26450
26451 2001-10-19  Geert Bosch  <bosch@gnat.com>
26452
26453         * Makefile.in (tools, gnattools): Remove gnatmem.
26454
26455 2001-10-17  Richard Henderson  <rth@redhat.com>
26456
26457         * Makefile.in (misc.o): Depend on langhooks.h.
26458         * misc.c: Include it.
26459         (LANG_HOOKS_INIT, LANG_HOOKS_INIT_OPTIONS): New.
26460         (LANG_HOOKS_DECODE_OPTION): New.
26461         (lang_hooks): Use LANG_HOOKS_INITIALIZER.
26462
26463 2001-10-16  Florian Weimer  <fw@deneb.enyo.de>
26464
26465         * trans.c (tree_transform): Adjust to recent change in
26466         expand_asm_operands to implement named asm operands.
26467
26468 2001-10-11  Ed Schonberg  <schonber@gnat.com>
26469
26470         * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Bugfix in
26471         renaming of discriminant for mutable record type.
26472
26473 2001-10-11  Robert Dewar  <dewar@gnat.com>
26474
26475         * validsw.adb: Properly save -gnatVn status.
26476
26477 2001-10-11  Robert Dewar <dewar@gnat.com>
26478
26479         * usage.adb: Add lines for V switch.
26480
26481         * gnatcmd.adb (COMPILE): Revise translations for -gnatV
26482         (/VALIDITY_CHECKING).
26483
26484 2001-10-11  Ed Schonberg <schonber@gnat.com>
26485
26486         * sem_type.adb (Add_One_Interp): an operator for a type declared in
26487         an extension of System is known to be visible.
26488
26489 2001-10-11  Ed Schonberg <schonber@gnat.com>
26490
26491         * sem_eval.adb (Compare_Fixup): get the bounds of a String_Literal
26492         properly. Fixes regression on ACATS C34005G.
26493
26494 2001-10-11  Robert Dewar <dewar@gnat.com>
26495
26496         * sem_ch5.adb (Analyze_Iteration_Scheme): Suppress warning on null
26497         loop in generic instance, since this is likely not very useful.
26498
26499 2001-10-11  Robert Dewar <dewar@gnat.com>
26500
26501         * restrict.adb (Disallow in No_Run_Time_Mode): Properly specialize
26502         the error message for high integrity mode.
26503
26504         * rtsfind.adb (RTE): Give message if we try to find an entity that
26505         is not available in high integrity mode.
26506
26507         * rtsfind.ads:
26508         (OK_To_Use_In_HIE_Mode): New array.
26509         (RTE): May return Empty in high integrity mode.
26510
26511         * rtsfind.ads (OK_To_Use_In_No_Run_Time_Mode): New name for
26512         OK_To_Use_In_HIE_Mode, now includes System_FAT_xxx.
26513
26514         * sem_ch6.adb (Analyze_Subprogram_Body): Kill body in predefined
26515         unit if not inlined always and in no runtime mode. Fixes problem
26516         caused by new Rtsfind changes.
26517
26518         * sem_ch6.adb (Analyze_Subrogram_Body): Do not Check_References if
26519         body is deleted.
26520
26521         * rtsfind.adb (RTE): Make sure we do not try to load unit after
26522         giving message for entity not available in high integrity mode.
26523
26524 2001-10-11  Pascal Obry <obry@gnat.com>
26525
26526         * impunit.adb: Add GNAT.CRC32.
26527
26528 2001-10-11  Ed Schonberg <schonber@gnat.com>
26529
26530         * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Fixed): handle
26531         properly the case where one universal operand in a non-static
26532         exponentiation of a real literal.
26533
26534 2001-10-11  Ed Schonberg <schonber@gnat.com>
26535
26536         * exp_ch7.adb (Find_Final_List): for a type appearing in a with_type
26537         clause, return the gobal finalization list, for lack of anthing else.
26538
26539 2001-10-11  Ed Schonberg <schonber@gnat.com>
26540
26541         * exp_ch7.adb (Make_Transient_Block): if statement is within
26542         exception handler, always use new transient scope to place Clean
26543         procedure.
26544
26545 2001-10-11  Pascal Obry <obry@gnat.com>
26546
26547         * Makefile.in:
26548         (GNAT_ADA_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26549         (GNATBIND_OBJS): add g-crc32.o, a-tags.o, a-stream.o
26550         (GNATLS_RTL_OBJS): add g-crc32.o
26551         (GNATMAKE_RTL_OBJS): add g-crc32.o
26552
26553         * ali-util.adb:
26554         (CRC_Match): new function.
26555         (Get_File_Checksum): renamed Get_File_CRC. Use the GNAT.CRC32 unit
26556         instead of the previous simple checksum algorithm.
26557         (Time_Stamp_Mismatch): use CRC_Match for comparison.
26558         (Set_Source_Table): idem.
26559
26560         * ali-util.ads:
26561         (Get_File_Checksum): renamed Get_File_CRC as now we compute CRC
26562         instead of simple checksum.
26563         (CRC_Match): new function.
26564         (CRC_Error): new constant.
26565
26566         * ali.adb (Scan_ALI): rename variable Chk to CRC as we are handling
26567         a CRC now and not a simple checksum. A CRC uses lower-case hex
26568         letters, fixes ambiguity in parsing.
26569
26570         * ali.ads (Sdep_Record.Checksum): renamed Sdep_Record.CRC as this
26571         is what this variable will store.
26572
26573         * bcheck.adb: Change reference to chechsum in comments by CRC.
26574         (Check_Consistency): Rename Get_File_Checksum to Get_File_CRC.
26575         rename All_Checksum_Match to All_CRC_Match. Change due to API
26576         renaming since now GNAT does not use a simple checksum but a
26577         CRC using GNAT.CRC32.
26578
26579         * gnatls.adb: Rename Checksum to CRC in many places, we use a CRC
26580         now and not anymore a simple checksum.
26581
26582         * lib-load.adb: Use Source_CRC instead of Source_Checksum in many
26583         places.
26584
26585         * lib-writ.adb (Write_ALI): Use Source_CRC instead of Source_Checksum.
26586
26587         * scans.adb:
26588         (Restore_Scan_State): rename Checksum to CRC.
26589         (Save_Scan_State): idem.
26590
26591         * scans.ads:
26592         With GNAT.CRC32.
26593         (Checksum): rename to CRC.
26594         (Saved_Scan_State): Save_Checksum field renamed to Save_CRC
26595
26596         * scn-nlit.adb: Rename many Accumulate_Checksum to Update (from
26597         GNAT.CRC32).  Update copyright notice.
26598
26599         * scn-slit.adb: Rename many Accumulate_Checksum to Update (from
26600         GNAT.CRC32).  Update copyright notice.
26601
26602         * scn.adb:
26603         (Accumulate_Checksum): removed.
26604         (Update): new procedure. Add a wide-character into the CRC.
26605
26606         * sinput-l.adb:
26607         (Complete_Source_File_Entry): use CRC32 instead of simple checksum.
26608         (Load_File): fix initialization of S (change Source_Checksum to
26609         Source_CRC)
26610
26611         * sinput-p.adb (Load_Project_File): rename Source_Checksum to
26612         Source_CRC in S initialization.
26613
26614         * sinput.adb (Source_Checksum): renamed to Source_CRC.
26615
26616         * sinput.ads (Source_Checksum): renamed to Source_CRC.
26617         Update comments for the CRC.
26618
26619         * types.adb (Hex): Use lowercase for the letter part.
26620
26621         * types.ads (Get_Hex_String): Returns the hexadecimal representation
26622         for a word. This is currently used only for CRC. In previous version,
26623         the checksum was using a representation with all letter being
26624         upper-case. With the new implementation (using CRC) we do not remove
26625         the 32th bit of the CRC, so we can have an upper-case starting letter
26626         in the CRC. This is not possible to parse in Scan_ALI (ali.adb).
26627         It is ambigous since the CRC was optional and could be followed by
26628         options like EB, EE. So now this routines uses lower-case letter for
26629         the hexadecimal representation. Strange enough only lower case letters
26630         where checked in Scan_ALI (even if this was not a possible case).
26631
26632         * gnatvsn.ads (Library_Version): changed to 3.15a.
26633
26634         * s-crc32.ads: Initial version from GNAT.CRC32. This is the version
26635         for the compiler.
26636
26637         * s-crc32.adb: Initial version from GNAT.CRC32. This is the version
26638         for the compiler.
26639
26640         * ali-util.adb: Redo previous change to avoid using word CRC everywhere
26641         Add 2001 to copyright notice
26642         (Accumulate_Checksum): Modify to use System.CRC32.
26643
26644         * ali-util.ads: Redo changes of previous revision to continue to use
26645         the word Checksum. Add 2001 to copyright notice.
26646
26647         * ali.adb: Undo some of previous changes, not needed.
26648         Keep the change for lower case letters in the checksum.
26649
26650         * ali.ads: Undo previous change not needed.
26651
26652         * bcheck.adb: Undo most of previous change, not needed.
26653         But do use Checksums_Match for checksum comparison.
26654
26655         * gnatls.adb: Undo most of previous change, not needed.
26656         But do use Checksums_Match for comparing checksums.
26657
26658         * lib-load.adb: Undo previous change, not needed.
26659
26660         * lib-writ.adb: Undo previous change, not needed.
26661
26662         * lib-writ.ads: Document that checksums use lower case,
26663         not upper case letters.
26664
26665         * scans.adb: Undo previous change, not needed
26666
26667         * scans.ads: Undo previous change, not needed.
26668
26669         * scn-nlit.adb: Undo previous changes, not needed.
26670
26671         * scn-slit.adb: Undo previous change, not needed.  Fix header format.
26672
26673         * scn.adb:
26674         (Accumulate_Checksum): Use System.CRC32.
26675         (Initialize_Checksum): New procedure.
26676         Remove other changes of previous revision.
26677
26678         * sinput-p.adb: Undo previous change, not needed.
26679
26680         * sinput.adb: Undo previous change, not needed.
26681
26682         * sinput-l.adb: Undo previous change, not needed.
26683
26684         * sinput.ads: Undo previous change, not needed.  Keep only comment
26685         on new checksum algorithm
26686
26687         * Makefile.in: Add s-crc32 as needed, remove g-crc32.
26688         Also remove a-tags and a-stream from GNAT sources.
26689
26690         * ali.adb (Scan_ALI): fix typo introduce in latest check-in.
26691
26692         * Makefile.in (GNATRTL_NONTASKING_OBJS): Add g-crc32.o.
26693
26694 2001-10-11  Geert Bosch  <bosch@gnat.com>
26695
26696         * einfo.h: Regenerate.
26697
26698         * nmake.ads: Regenerate.
26699
26700         * nmake.adb: Regenerate.
26701
26702         * sinfo.h: Regenerate.
26703
26704         * treeprs.adb: Regenerate.
26705
26706 2001-10-10  Geert Bosch  <bosch@gnat.com>
26707
26708         * gnat-style.texi: New file describing coding guidelines for Ada.
26709
26710 2001-10-10  Ed Schonberg <schonber@gnat.com>
26711
26712         * einfo.adb (Write_Entity_Flags): Elaboration_Entity_Required
26713         is Flag174.
26714
26715 2001-10-10  Geert Bosch  <bosch@gnat.com>
26716
26717         * snames.ads: Add new names for project facility.
26718
26719         * snames.adb: Update to reflect snames.ads changes.
26720
26721         * snames.h: Update to reflect snames.ads changes.
26722
26723 2001-10-10  Vincent Celier <celier@gnat.com>
26724
26725         * make.adb:
26726         (Add_Switches): reflect the changes for the switches attributes
26727         Default_Switches indexed by the programming language,
26728         Switches indexed by the file name.
26729         (Collect_Arguments_And_Compile): Idem.
26730         Reflect the attribute name changes.
26731
26732         * prj-attr.adb:
26733         (Initialisation_Data): Change the names of some packages and
26734         attributes.
26735         (Initialize): process case insensitive associative arrays.
26736
26737         * prj-attr.ads:
26738         (Attribute_Kind): Remove Both, add Case_Insensitive_Associative_Array.
26739
26740         * prj-dect.adb:
26741         (Parse_Attribute_Declaration): For case insensitive associative
26742          arrays, set the index string to lower case.
26743
26744         * prj-env.adb:
26745         Reflect the changes of the project attributes.
26746
26747         * prj-nmsc.adb:
26748         Replace Check_Naming_Scheme by Ada_Check and
26749         Language_Independent_Check.
26750
26751         * prj-nmsc.ads:
26752         Replaced Check_Naming_Scheme by 2 procedures:
26753         Ada_Check and Language_Independent_Check.
26754
26755         * prj-proc.adb:
26756         (Process_Declarative_Items): For case-insensitive associative
26757         arrays, set the index string to lower case.
26758         (Recursive_Check): Call Prj.Nmsc.Ada_Check, instead of
26759         Prj.Nmsc.Check_Naming_Scheme.
26760
26761         * prj-tree.adb:
26762         (Case_Insensitive): New function
26763         (Set_Case_Insensitive): New procedure
26764
26765         * prj-tree.ads:
26766         (Case_Insensitive): New function
26767         (Set_Case_Insensitive): New procedure
26768         (Project_Node_Record): New flag Case_Insensitive.
26769
26770         * prj-util.adb:
26771         (Value_Of): new function to get the string value of a single
26772         string variable or attribute.
26773
26774         * prj-util.ads:
26775         (Value_Of): new function to get the string value of a single
26776         string variable or attribute.
26777
26778         * prj.adb:
26779         (Ada_Default_Spec_Suffix): New function
26780         (Ada_Default_Impl_Suffix): New function
26781         Change definitions of several constants to reflect
26782         new components of record types.
26783
26784         * prj.ads:
26785         (Naming_Data): Change several components to reflect new
26786         elements of naming schemes.
26787         (Project_Data): New flags Sources_Present and
26788         Language_Independent_Checked.
26789         (Ada_Default_Spec_Suffix): New function.
26790         (Ada_Default_Impl_Suffix): New function.
26791
26792         * snames.ads:
26793         Modification of predefined names for project manager: added
26794         Implementation, Specification_Exceptions, Implementation_Exceptions,
26795         Specification_Suffix, Implementation_Suffix, Separate_Suffix,
26796         Default_Switches, _Languages, Builder, Cross_Reference,
26797         Finder. Removed Body_Part, Specification_Append, Body_Append,
26798         Separate_Append, Gnatmake, Gnatxref, Gnatfind, Gnatbind,
26799         Gnatlink.
26800
26801         * prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
26802         Add comments.
26803
26804         * prj-nmsc.adb (Ada_Check): Test that Separate_Suffix is defaulted,
26805         not that it is Nil_Variable_Value.
26806
26807         * prj.ads: Add ??? for uncommented declarations
26808
26809 2001-10-10  Ed Schonberg <schonber@gnat.com>
26810
26811         * sem_prag.adb: (Analyze_Pragma, case External): If entity is a
26812         constant, do not indicate possible modification, so that gigi can
26813         treat it as a bona fide constant.
26814
26815 2001-10-10  Robert Dewar <dewar@gnat.com>
26816
26817         * sem_prag.adb: Add processing for pragma External.
26818
26819         * snames.ads: Add entry for pragma External.
26820
26821         * par-prag.adb: Add pragma External.
26822
26823         * snames.adb: Updated to match snames.ads.
26824
26825 2001-10-10  Ed Schonberg <schonber@gnat.com>
26826
26827         * exp_ch4.adb (Expand_N_Allocator): Generate meaningful names for
26828         a dynamic task if the allocator appears in an indexed assignment
26829         or selected component assignment.
26830
26831         * exp_util.adb (Build_Task_Array_Image, Build_Task_Record_Image):
26832         For a dynamic task in an assignment statement, use target of
26833         assignment to generate meaningful name.
26834
26835 2001-10-10  Ed Schonberg <schonber@gnat.com>
26836
26837         * einfo.adb (Write_Field19_Name): Body_Entity is also defined for
26838         a generic package.
26839
26840         * einfo.ads: Body_Entity is also defined for generic package.
26841         Documentation change only
26842
26843         * exp_aggr.adb (Build_Array_Aggr_Code): When expanding an
26844         others_choice for a discriminated component initialization,
26845         convert discriminant references into the corresponding discriminals.
26846
26847         * exp_ch3.adb (Get_Simple_Init_Val): Add qualification to aggregate
26848         only if original type is private and expression has to be wrapped
26849         in a conversion.
26850
26851         * checks.adb:
26852         (Apply_Constraint_Check): Do not perform length check
26853         if expression is an aggregate with only an others_choice.
26854         (Length_N_Cond): two references to the same in_parameter
26855         (typically the discriminal in an init_proc) denote the same value.
26856         Two useful optimization uncovered by bugfixes above.
26857
26858 2001-10-10  Robert Dewar <dewar@gnat.com>
26859
26860         * xeinfo.adb: Change int to char in translation of enumeration types.
26861         This fixes a problem in the C representation of component alignment.
26862         Add 2001 to copyright notice
26863
26864 2001-10-10  Richard Kenner <kenner@gnat.com>
26865
26866         * decl.c: (validate_size): Do check size of object of integral type
26867         if it is a packed array type.
26868
26869 2001-10-10  Richard Kenner <kenner@gnat.com>
26870
26871         * decl.c: (gnat_to_gnu_entity, case object): Also materialize
26872         VAR_DECL for constant if not Is_Public but -O0.
26873
26874 2001-10-10  Richard Kenner  <kenner@gnat.com>
26875
26876         * misc.c (struct lang_hooks): Add new initializer to match GCC change.
26877
26878 2001-10-10  Geert Bosch  <bosch@gnat.com>
26879
26880         * xnmake.adb (XNmake): Fix handling of -s/-b options.  No longer
26881         use '/' as switch character, allowing for absolute file names.
26882
26883 2001-10-09  Joseph S. Myers  <jsm28@cam.ac.uk>
26884
26885         * 4gintnam.ads, Make-lang.in, Makefile.in, config-lang.in: Update
26886         FSF address.
26887
26888 2001-10-08  Geert Bosch  <bosch@gnat.com>
26889
26890         * Makefile.in (treeprs.ads, einfo.h, sinfo.h, nmake.adb, nmake.ads):
26891         Automatically build utilities when files need to be regenerated.
26892
26893 2001-10-08  Geert Bosch  <bosch@gnat.com>
26894
26895         * xsnames.adb: New utility for updating snames.ads and snames.adb
26896
26897 2001-10-08  Zack Weinberg  <zack@codesourcery.com>
26898
26899         * Make-lang.in (ADAFLAGS): Add -W -Wall.
26900         (ADA_FLAGS_TO_PASS): Set ADA_CFLAGS=$(CFLAGS) also.
26901         (gnat1): Also depend on attribs.o.
26902         (gnatlib, gnatlib-shared): Set CC and ADAC in recursive make.
26903         * Makefile.in (X_ADAFLAGS, T_ADAFLAGS): New.
26904         (ADAC): Set to @ADAC@ in stage1, $(CC) later.
26905         (ADAFLAGS): Add -W -Wall.
26906         (ALL_ADAFLAGS, MOST_ADAFLAGS): Add X_ADAFLAGS and T_ADAFLAGS;
26907         take out CFLAGS.
26908
26909         (.adb.o, .ads.o, a-numaux.o, a-teioed.o, s-interr.o,
26910         s-taskin.o, sdefault.o, s-tasdeb.o, s-vaflop.o, a-except.o,
26911         s-assert.o, s-stalib.o, s-memory.o, memtrack.o, mlib-tgt.o):
26912         Use $(ADAC), not $(CC), as compilation command.
26913
26914         (gnattools): Depend directly on tools to build, don't use
26915         recursive make.
26916         (gnatlib): Set ADA_CFLAGS=$(GNATLIBCFLAGS) in recursive make.
26917
26918         * einfo.h, sinfo.h: New files (autogenerated).
26919
26920 2001-10-08  Richard Henderson  <rth@redhat.com>
26921
26922         * comperr.adb (Abort_In_Progress): New.
26923         (Compiler_Abort): Use it to prevent recursion.
26924
26925 2001-10-08  Robert Dewar <dewar@gnat.com>
26926
26927         * atree.adb: Set Error_Posted in Error node, helps error recovery.
26928
26929         * par-endh.adb (Output_End_Expected): We should also not test
26930         Error_Posted on the Error node, since now it is always set.
26931
26932         * cstand.adb (Create_Standard): Set Etype of Error to Any_Type
26933         to help error recovery. Part of general work on 9407-004.
26934
26935         * par.adb: Add ??? for misuse of error
26936
26937         * sem_res.adb:
26938         (Resolve): Defend against Error, fixes 9407-003.
26939         (Resolve_Discrete_Subtype_Indication): Defend against Error.
26940
26941         * sinfo.ads (N_Error): Now has Etype field (which will be set
26942         to Any_Type to help error recovery).
26943
26944 2001-10-08  Richard Kenner (kenner@gnat.com)
26945
26946         * misc.c (gnat_expand_expr, case UNCHECKED_CONVERT_EXPR):
26947         Consistently set MEM attributes from expression; fixes
26948         bootstrap failure on x86.
26949
26950 2001-10-08  Geert Bosch  (bosch@gnat.com)
26951
26952         * 5oosinte.adb: Add 2001 to copyright notice.
26953
26954 2001-10-08  Geert Bosch  (bosch@gnat.com)
26955
26956         * ceinfo.adb: Add utility for consistency checking of einfo.ad[bs].
26957
26958         * csinfo.adb: Add utility for consistency checking of sinfo.ad[bs].
26959
26960 2001-10-07  Joseph S. Myers  <jsm28@cam.ac.uk>
26961
26962         * 5oosinte.adb: Fix spelling error of "separate" as "seperate".
26963
26964 2001-10-05  Geert Bosch  (bosch@gnat.com)
26965
26966         * adaint.h: Small formatting fix.
26967
26968 2001-10-04  Geert Bosch  <bosch@gnat.com>
26969
26970         * sysdep.c (__gnat_set_binary_mode, __gnat_set_text_mode):
26971         Arg is int, not FILE *, in dummy version of functions.
26972
26973         * adaint.h (__gnat_set_binary_mode, __gnat_set_text_mode):
26974         Arg is int, not FILE *.
26975
26976 2001-10-04  Geert Bosch  <bosch@gnat.com>
26977
26978         * 3lsoccon.ads: Added file, missed with initial check ins.
26979
26980         * 4lintnam.ads: Fix header format.
26981         Change Linux to GNU/Linux.
26982
26983         * 5iosinte.adb: Change Linux to GNU/Linux.
26984
26985         * 5iosinte.ads: Change Linux to GNU/Linux.
26986
26987         * 5itaprop.adb: Change Linux to GNU/Linux.
26988
26989         * 5itaspri.ads: Change Linux to GNU/Linux.
26990         Update copyright notice.
26991
26992         * 5lintman.adb: Change Linux to GNU/Linux.
26993
26994         * 5lml-tgt.adb: Change Linux to GNU/Linux.
26995
26996         * 5losinte.ads: Change Linux to GNU/Linux.
26997
26998         * 5lsystem.ads: Change Linux to GNU/Linux.
26999
27000         * 5qosinte.adb: Change Linux to GNU/Linux.
27001
27002         * 5qosinte.ads: Change Linux to GNU/Linux.
27003
27004         * 5qparame.ads: Change Linux to GNU/Linux.
27005
27006         * 5qtaprop.adb: Change Linux to GNU/Linux.
27007
27008         * 5qtaspri.ads: Change Linux to GNU/Linux.
27009         Add 2001 to copyright notice.
27010
27011         * 5vintman.ads: Change Linux to GNU/Linux.
27012         Fix header format.  Add 2001 to copyright notice.
27013
27014         * g-soccon.ads: Change Linux to GNU/Linux.
27015
27016         * g-trasym.ads: Change Linux to GNU/Linux.
27017         Add 2001 to copyright notice.
27018
27019         * memtrack.adb: Change Linux to GNU/Linux.
27020
27021         * s-intman.ads: Change Linux to GNU/Linux.
27022         Add 2001 to copyright notice.  Fix header format.
27023
27024         * s-stache.adb: Change Linux to GNU/Linux.
27025
27026         * adaint.c: Change Linux to GNU/Linux.
27027
27028         * cio.c: Change Linux to GNU/Linux.
27029
27030         * cstreams.c: Change Linux to GNU/Linux.
27031
27032         * init.c: Change Linux to GNU/Linux.
27033
27034         * gmem.c: Change Linux to GNU/Linux.
27035
27036         * tracebak.c: Change Linux to GNU/Linux.
27037
27038
27039 2001-10-02  Geert Bosch  <bosch@gnat.com>
27040
27041         * misc.c (insert_default_attributes): Add dummy version.